13

我想了解有关 LLVM 的 Compiler-RT 项目的以下信息:它是从哪个程序调用的。据我了解,Compiler-RT 是处理 LLVM 中的指令的函数集合,这些指令实际上没有硬件对应物(还有比这更多的吗?)。因此,如果我在 LLVM 中使用除法,则应将其替换为适当的 Compiler-RT 函数。首先,如果这不正确,请纠正我!

其次,我很好奇是谁生成了 Compiler-RT 用法。是 Clang 还是直接 LLVM。我可以为 LLVM 编写一个不同的前端,并且 LLVM 会在适当的时候自动处理 Compiler-RT 的使用吗?

4

1 回答 1

12

你的两个断言都是正确的。LLVM 后端必须将 LLVM IR 映射到本机特定于目标的指令。如果本机不支持指令,则必须将其替换(合法化)。您可以在TargetLowering中看到这一点,它直接映射到Compiler RT中的运行时函数。

前端不参与。

于 2013-09-05T21:13:28.570 回答