我想了解以下关于LLVM的Compiler-RT项目:从它调用的程序。根据我的理解,Compiler-RT是一组函数,它们处理LLVM中的指令,这些指令实际上没有硬件对应物(它还有更多的东西吗?)。因此,如果我在LLVM中使用除法,则应该用适当的Compiler-RT函数替换它。首先,如果这不正确,请纠正我!
其次,我很好奇谁生成了Compiler-RT用法。它是Clang还是LLVM直接。我可以为LLVM编写不同的前端,LLVM会在适当的时候自动处理Compiler-RT的使用吗?
答案 0 :(得分:7)
你的断言都是正确的。 LLVM后端必须将LLVM IR映射到本机特定于目标的指令。如果本地不支持指令,则必须替换它(合法化)。 您可以在TargetLowering中看到这种情况,它直接映射到Compiler RT中的运行时函数。
前端不参与。