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

问题描述 投票:0回答:1

[当我使用gcc -O2优化程序时,gcc更改寄存器RBP的值。但是我想将其保留为FRAME BASE REGISTER,如何执行此操作?

与以下问题不同:GCC: Prohibit use of some registers

gcc optimization x86-64 stackframe register-allocation
1个回答
2
投票

[-fomit-frame-pointer默认在优化级别-O,-O2,-O3,-Os下启用

您需要使用-fomit-frame-pointer

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

© www.soinside.com 2019 - 2024. All rights reserved.