使用-O *时,GCC禁用RBP RSP寄存器优化?

时间:2014-11-27 03:26:54

标签: gcc optimization cpu-registers register-allocation

当我使用gcc -O2来优化我的程序时,gcc会更改寄存器RBP的值。但是我想把它保留为FRAME BASE REGISTER,怎么做?

GCC: Prohibit use of some registers

不同的问题

1 个答案:

答案 0 :(得分:1)

默认情况下,

-fomit-frame-pointer在优化级别-O,-O2,-O3,-Os

处启用

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

然而,除非您正在调试并需要跟踪堆栈帧,否则保留帧指针的理由并不多。在这种情况下,请改用-Og