gpt4 book ai didi

LLVM 代码生成器 : is Machine code representation machine-agnostic?

转载 作者:行者123 更新时间:2023-12-03 07:29:42 29 4
gpt4 key购买 nike

请注意 : 这个问题不是关于 LLVM IR , 但 LLVM 的 MIR ,一种低于前一种的内部中间表示。

本文档关于 LLVM Machine code description classes ,说(突出显示我的):

At the high-level, LLVM code is translated to a machine specific representation formed out of MachineFunction , MachineBasicBlock , and MachineInstr instances...



然而,同一段继续说:

This representation is completely target agnostic, representing instructions in their most abstract form...



我的问题是,如何理解这一段?

我很难调和这种中间表示是特定于机器的并且同时与目标无关的说法。我认为“机器”和“目标”,在 LLVM 的上下文中,意思是一样的——编译的可执行文件使用的指令集架构(例如 x86_64、MIPS)。

欢迎举例。

最佳答案

有不同的方式来实现平台特定。例如,您可以为 add 使用不同名称的操作码。 ,或者可能具有不同的溢出语义,或者您可以使用相同的 add对于所有目标平台,操作数/标志由相同的参数指定,具有相同的默认值。

并且有许多特定于目标的细节,例如影响您的代码的指针的大小或对齐方式,即使它们不影响任何单个指令。

机器 IR 以最抽象的形式表示指令。它不会试图隐藏在这个目标上,指针有 32 位。

关于LLVM 代码生成器 : is Machine code representation machine-agnostic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52580284/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com