提问者:小点点

如何禁用RBP帧指针寄存器优化GCC时使用-O*?


当我使用gcc-O2优化我的程序时,gcc会更改寄存器RBP的值。但我想将其保留为FRAME BASE REGISTER,如何做到这一点?

不是同一个问题:GCC:禁止使用某些寄存器


共1个答案

匿名用户

-fomit-frame-指针默认在优化级别-O、-O2、-O3、-Os启用

您需要使用-fno-omit-frame-poster

但是,除非您正在调试并且需要跟踪堆栈帧,否则没有太多理由保留帧指针。在这种情况下,请改用-Og