【问题标题】:Inlining functions from multiple assembly files in LLVMLLVM 中多个程序集文件的内联函数
【发布时间】:2020-06-20 12:46:38
【问题描述】:

我有多个 .s 文件,其中包含与相应的高级 Ada 代码分开生成的 LLVM IR 代码。这些文件中有函数调用。有没有办法在不同的 .s 文件中内联函数?

【问题讨论】:

  • 通常你通过链接时间优化来做到这一点。
  • 我需要对 .s 文件做一些分析。那么,有没有办法在 LLVM 中使用一些属性/传递来进行内联?
  • 我不知道有任何这样的方法。您可以将两者链接在一起,然后使用 llvm-opt 手动执行内联传递。

标签: function llvm llvm-ir inlining


【解决方案1】:

欢迎来到 SO,Ranjani!

您可以尝试使用llvm-link 将这些文件链接在一起,例如:

llvm-link -S -o merged.ll foo.ll bar.ll

该命令将链接两个文件foo.llbar.ll,并将结果写入merged.ll-S 选项告诉链接器以人类可读的形式发出位码。

【讨论】:

  • 好的,非常感谢。我会尝试一下,看看它是否符合我的目的。这种方式可以合并任意数量的文件吗?
  • 我现在试过了。即使我链接多个文件似乎也没有问题。谢谢!
猜你喜欢
  • 2011-02-11
  • 2012-08-17
  • 2013-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-27
  • 2020-05-19
  • 1970-01-01
相关资源
最近更新 更多