我想了解有关LLVM的Compiler-RT项目的以下信息:它是从什么程序调用的。据我了解,Compiler-RT是处理LLVM中实际上没有硬件对应项的指令的功能集合(它还有更多功能吗?)。因此,如果我在LLVM中使用除法,则应将其替换为适当的Compiler-RT函数。首先,如果这不正确,请纠正我!
其次,我对谁生成Compiler-RT用法感到好奇。是Clang还是直接LLVM。我可以为LLVM写一个不同的前端吗?在适当的时候LLVM会自动处理Compiler-RT的使用吗?
最佳答案
您的两个主张都是正确的。 LLVM后端必须将LLVM IR映射到特定于 native 目标的指令。如果 native 不支持某条指令,则必须将其替换(合法)。
您可以在TargetLowering中看到它的发生,它直接映射到Compiler RT中的运行时函数。
不涉及前端。
关于compiler-construction - 从什么地方调用Compiler-RT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18644104/