1 -fno-defer-pop

函数返回的时候,就立即将栈里面放置的该函数的参数pop出来。这样可以避免函数参数占用过多的栈空间。

2 -fforward-propagate

?

3 -ffp-contract=style

floating point expression contract,这个是FMA,fused multipy add

用于计算x*y + z,其中x、y、z都是浮点数。有的处理器实现了fma指令。

c99里面通过提供fma函数来支持fma。

fma的特点是可以使得这种模式的浮点计算更快精度更高。

普通的x*y + z用了两次rounding,第一次在计算x*y之后,会进行rounding,然后在和z相加,得到的结果再一次rounding。而使用fma计算的话,只会rounding一次,因此精度更高。

4 -fomit-frame-pointer

不要frame pointer,这样就可以减少每个函数保存frame pointer和恢复frame pointer的指令,加快程序的执行,毕竟这些指令都是要访问内存的。

但是,backtrace就用不了了。

5 -foptimize-sibling-calls

这个选项会对sibling call,tail recursive call进行优化。首先,直接用jmp指令而不用call指令,这样的话,被掉用函数执行完后,不需要再跳回调用函数。其次,被调用函数直接用调用函数的栈,这样可以有效的节省内存空间,并且可以防止出现栈溢出。因为由于是sibling call,是调用函数执行的最后一条指令,并且栈空间足够大,留着原来的栈空间是没有用的,返回更是没有意义的,因此可以这样进行优化,但是问题是,如果f调用b,现在断在b中,想要去查看f的局部变量就查看不了了。

6 -foptimize-strlen

就是对c里面的字符串处理函数strlen、strcpy等进行优化,使之执行的速度更快。

最新文章

  1. ie浏览器 jsp中链接参数为中文的处理
  2. oracle重装系统后恢复
  3. 内核对TCP REUSEPORT的优化
  4. 【Android】保存Fragment切换状态
  5. my_strcpy()
  6. 使用Navicat导入导出表的数据做测试(转载)
  7. EntityFramework基础
  8. 利用URLScan工具过滤URL中的特殊字符(仅针对IIS6)
  9. Android ContentProvider和Uri详解 (绝对全面)
  10. linux内核系列(一)编译安装Linux内核 2.6.18
  11. clr介绍
  12. 关于django Models的个人理解和related_name的使用
  13. CSS居中的方法总结
  14. 概率法求解三阶幻方[C语言]
  15. 相对路径json无法获取
  16. 阿里CEO张勇:阿里蚂蚁20亿元扶持开发者
  17. ubuntu 14.04 安装svn server (subversionedge )
  18. spark mllib prefixspan demo
  19. MMORPG战斗系统随笔(一)、战斗系统流程简介
  20. Subarray Sums Divisible by K LT974

热门文章

  1. PageOffice NET MVC下使用
  2. OpenGL C#绘图环境配置
  3. python selenium等待特定网页元素加载完毕
  4. iOS sandbox
  5. LeetCode136,137寻找只出现一次的数
  6. 什么是MVVM?
  7. MongoDB安装与配置启动
  8. 树莓派 - gpio-led platform driver 控制LED
  9. Buffer.from()
  10. 【面试题】LRU算法及编码实现LRU策略缓存