使 LLVM 内联库中的函数

发布于 2024-08-29 16:55:02 字数 207 浏览 8 评论 0原文

我正在尝试使 LLVM 内联库中的函数。

我有 LLVM 位码文件(手动生成),用 llvm-link 链接在一起,我还有一个库(用 C 语言编写)由 clang 编译成位码并存档与llvm-ar。我设法将所有内容链接在一起并执行,但无法设法让 LLVM 内联库中的函数。关于应该如何完成此操作的任何线索?

I am trying to make LLVM inline a function from a library.

I have LLVM bitcode files (manually generated) that I linked together with llvm-link, and I also have a library (written in C) compiled into bitcode by clang and archived with llvm-ar. I manage to link everything together and to execute but I can't manage to get LLVM to inline a function from the library. Any clue about how this should be done?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

離人涙 2024-09-05 16:55:02

将位码文件与库链接在一起后,是否对链接的位码运行Internalize pass?内部化过程使所有函数(除了main())静态化,并告诉优化器/代码生成器可以安全地内联函数,而无需为某些(不存在的)外部引用保留可用的副本。

我使用从 llvm-ld 借用的代码手动将我的位码文件和位码库链接在一起,并执行内部化传递,但我不确定 llvm-link 是否执行内化通过与否。

After you link the bitcode files together with the library, do you run an Internalize pass on the linked bitcode? The internalize pass makes all functions (besides main()) static and tells optimizer/code generator that the functions can be safely inlined without keeping a copy available for some (non-existent) external reference.

I manually link my bitcode files and bitcode libraries together using code borrowed from llvm-ld and I do the internalize pass, but I'm not sure if llvm-link does the internalize pass or not.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文