[当我使用gcc -O2优化程序时,gcc更改寄存器RBP的值。但是我想将其保留为FRAME BASE REGISTER,如何执行此操作?
gcc -O2
与以下问题不同:GCC: Prohibit use of some registers
[-fomit-frame-pointer默认在优化级别-O,-O2,-O3,-Os下启用
-fomit-frame-pointer
您需要使用-fomit-frame-pointer
但是,除非您正在调试并且需要跟踪堆栈帧,否则没有太多理由保留帧指针。在这种情况下,请改用-fno-omit-frame-pointer
-fno-omit-frame-pointer