当我使用gcc-O2优化我的程序时,gcc会更改寄存器RBP的值。但我想将其保留为FRAME BASE REGISTER,如何做到这一点?
gcc-O2
不是同一个问题:GCC:禁止使用某些寄存器
-fomit-frame-指针默认在优化级别-O、-O2、-O3、-Os启用
-fomit-frame-指针
您需要使用-fno-omit-frame-poster
-fno-omit-frame-poster
但是,除非您正在调试并且需要跟踪堆栈帧,否则没有太多理由保留帧指针。在这种情况下,请改用-Og
-Og