Lee*_*hai 6 llvm compiler-optimization
请注意:这个问题不是关于LLVM IR,而是LLVM的MIR,一个低于前者的内部中间表示.
在高级别,LLVM代码被转换为由MachineFunction,MachineBasicBlock和MachineInstr实例构成的机器特定表示...
然而,同一段落继续说:
这种表示完全是目标不可知的,以最抽象的形式表示指令......
我的问题是,如何理解这一段?
我很难协调这个中间表示是机器特定的并且同时与目标无关的声明.在LLVM的上下文中,我认为"机器"和"目标"意味着相同的东西 - 编译的可执行文件使用的指令集架构(例如x86_64,MIPS).
欢迎举例.
有不同的方法可以实现特定于平台的。例如,您可以为 拥有不同名称的操作码add,或者可能具有不同的溢出语义,或者您可以对所有操作码使用相同的操作码add,其中操作数/标志由所有目标平台的相同参数指定,并具有相同的默认值。
还有许多特定于目标的细节,例如指针的大小或对齐方式,即使它们不影响任何单个指令,也会影响您的代码。
机器 IR 以最抽象的形式表示指令。它不会尝试隐藏该目标上的指针具有 32 位。
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |