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

fla*_*urn 2 llvm stack-frame

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

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

任何帮助表示赞赏

Che*_*Sun 7

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

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