:这个问题不是关于 LLVM IR ,但LLVM的 MIR ,比前一个更低的内部中间表示。
关于LLVM的文档 Machine code description classes ,说(突出我的):
在高层,LLVM代码被转换为 特定于机器 由MachineFunction、MachineBasicBlock和MachineInstr实例形成的表示。。。
然而,同一段接着说:
这个陈述完全 目标不可知论
我的问题是,如何理解这一段?
我很难调和这种中间陈述是 和 目标不可知论 同时。我认为在LLVM的上下文中,“machine”和“target”的意思是相同的——编译后的可执行文件使用的指令集架构(例如x86_64,MIPS)。
欢迎举例子。
有不同的方法可以针对特定的平台。例如,您可以为 add ,或者使用不同的溢出语义,或者可以使用相同的 对于所有对象,使用由所有目标平台的相同参数指定的操作数/标志,使用相同的默认值。
add
机器IR以最抽象的形式表示指令。它不试图在这个目标上隐藏,指针有32位。