omit-frame-pointer 开启该选项,主要是用于去掉所有函数SFP(Stack Frame Pointer)的,即在函数调用时不保存栈帧指针SFP,代价是不能通过backtrace进行调试根据堆栈信息了。通过去掉SFP,可以提高程序运行速度,达到优化程序的目的。如果要打开栈指针,使用-fno-omit-frame-pointer。 另外一个类似选项-fomit-leaf-frame-pointer...
默认值为-ffp-contract=fast。 -fomit-frame-pointer 在不需要的函数中省略帧指针。 这样就避免了保存、设置和恢复帧指针的指令; 在许多目标上,它还提供了一个额外的寄存器。 在某些目标上,此标志无效,因为标准调用序列始终使用帧指针,因此不能省略。 请注意,-fno-omit-frame-pointer 并不保证在所有函数中都使用...
omit- frame-pointer:可能的情况下不产生栈帧; -O2:以下是-O2在-O1基础上增加的优化选项: -falign-functions -falign-jumps -falign-loops -falign-labels -fcaller-saves -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fdelete-null-pointer-checks -fexpensive-optimizations -fgcse -fgcse-lm -...
// 4. 测试帧指针(fp/s0)和栈指针(sp)的使用 // 加上 -fno-omit-frame-pointer 可以看到 fp 被设置为当前栈帧基地址 // === int test_frame_pointer(int a, int b) { int local = a + b; return local * 2; } // ===
omit-frame-pointer:可能的情况下不产生栈帧;-O2:以下是-O2在-O1基础上增加的优化选项: -falign-functions -falign-jumps -falign-loops -falign-labels -fcaller-saves -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fdelete-null-pointer-checks -fexpensive-optimizations -fgcse -fgcse-lm -f...
omit- frame-pointer:可能的情况下不产生栈帧; -O2:以下是-O2在-O1基础上增加的优化选项: -falign-functions -falign-jumps -falign-loops -falign-labels -fcaller-saves -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fdelete-null-pointer-checks -fexpensive-optimizations -fgcse ...
exceptions -Wpacked -fno-omit-frame-pointer -Wno-error=strict-overflow -Wextra -Wbad-function-cast -Wpointer-arith -Wmissing-format-attribute -Wcast-align -DHAVE_STDCXX0X -std=c++0x -o CMakeFiles/cmTC_0a678.dir/src.cxx.o -c /usr/src/db/mariadb-10.1.10/CMakeFiles/CMakeTmp/src.cxx...
--enable-omitfp 编译时忽略帧指示器(使用 -fomit-frame-pointer 编译),并采取一些其他优化措施。忽略帧指示器可以提高运行效率,但是调试将变得不可用,并且可能生成含有 bug 的代码。使用这个选项还将导致额外编译带有调试信息的非优化版本的静态库(库名称以"_g"结尾)。
比如x86平台就使用ebp作为帧指针。省略掉帧指针的好处是可以多出一个可用的寄存器,坏处是不利于栈回溯。值得注意的是,有些平台的过程调用规范指定必须使用帧指针,此时该选项无效;同时,与该选项对应的-fno-omit-frame-pointer也不保证帧指针一定会被使用。
exceptions -Wpacked -fno-omit-frame-pointer -Wno-error=strict-overflow -Wextra -Wbad-function-cast -Wpointer-arith -Wmissing-format-attribute -Wcast-align -DHAVE_STDCXX0X -std=c++0x -o CMakeFiles/cmTC_0a678.dir/src.cxx.o -c /usr/src/db/mariadb-10.1.10/CMakeFiles/CMakeTmp/src.cxx...