2

我正在使用 LLVM 并且对它有些陌生。

我无法弄清楚 LLVM 降低堆栈帧的含义。有人可以解释它是什么吗?

任何帮助表示赞赏

4

1 回答 1

8

当一个函数运行时,它会在堆栈上获得一些空间来存储堆栈变量和被调用者保存的寄存器 (CSR) 等内容。堆栈帧降低是计算空间量和所需布局的过程,然后在函数的序言和结尾(开始和结束)中发出所需的机器指令。

当在序言-结尾插入 (PEI) 步骤之前引用堆栈上的变量时,它们使用“帧索引”来寻址,该位置的任意名称最终将解析为堆栈指针的相对偏移量。请注意,PEI 发生得相当晚(在寄存器分配之后)。

于 2015-09-30T23:26:33.100 回答