优化选项:
-fstrength-reduce : 优化循环语句,循环强度缩小(loop strength reduction)优化,消除重复变量
-fdelayed-branch :如目标机支持,那么它试图重新排列指令,以便利用延迟分支指令后的指令空隙
-fschedule-insns: 如果目标机支持,它试图重新排列指令,以便消除因数据未绪造成的执行停顿,这可以帮助浮点运算或内存访问较慢的机器调取指令,允许其它指令先行,直到调取指令或浮点运算完成.
-fschedule-insns2: 在寄存器分配完成后,需要一个额外的指令调度过程,针对寄存器数目少时,而且取内存指令大于一个周期的目标机
-finline-functions: 把所有的简单的函数集成进调用者,编译器探索式地决定哪些函数足够简单,值得这种集成
-fomit-frame-pointer: 那些不要帧指针(ebp)的函数,不要在寄存器中保存帧指针。这样可以避免保存、设置、恢复帧指针的指令
与优化-O 的关系
-O compiler会试图减少目标码的大小和执行时间,当然它也是会自动打开某些选项 如:
-fthread-jumps,-fdefer-pop,-fdelayed-branch,-fomit-frame-pointer
-O2 compiler 除了涉及空间和速度交换的优化选项,执行几乎所有的优化工作.但不执行循环展开和函数内联,因为它增加了编译时间。
-O3 优化更多,除了打开了-O2的所有选项,它还是打开了-finline-function选项
其它选项:
-nostdinc -Iinclude -- 不要搜索标准的头文件目录中的文件,而是用-I 选项指定的目录或是当前目录里搜索头文件
阅读(2294) | 评论(0) | 转发(0) |