什么是llvm中的堆栈帧降低?

时间:2015-09-30 18:10:09

标签: llvm stackframe

我正在使用LLVM并且对它有些新意。

我无法通过降低堆栈帧来确定LLVM的含义。有人可以解释它是什么吗?

感谢任何帮助

1 个答案:

答案 0 :(得分:6)

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

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