博客首页 注册 建议与交流 排行榜 加入友情链接         宝宝相册的专门空间
推荐 投诉 搜索: 帮助

飞翔,嵌入式linux

linux嵌入式系统必将大行于天下。专注于linux嵌入式系统的搭键,专注于高效稳定软件的开发,专注底层程序调试技术。
  feixiang.cublog.cn

关于作者
姓名:飞翔
Email:loughsky@sina.com
职业:IT
年龄:32
位置:北京
个性介绍:专注在嵌入式操作系统,以及高效程序调试
|| << >> ||
我的分类


GCC-4.1.0发布

这一版本重点在于过程间优化(IPO)框架和相应的优化实现:

  • 基于剖视的内联,对于一些递归深度小的函数也可以实现内联。
  • 通过副作用分析确定纯函数和常函数。
  • 静态变量引用分析和type escape分析,消除冗余load操作和进行更好的寄存器分配。
  • 提高基于RTL的别名分析。
  • 全程序优化(-fwhole-program --combine )。

还有一个重点是向量化。自从引入SSA之后,很多优化都基于SSA进行。

关于纯函数和常函数:

  • 纯函数(pure function)是指不会影响它自己范围外任何事情的函数。它可以读取全局变量或者通过指针传递的变量,但是不可以对这些变量进行些操作。它也不可以读取volatile变量和外部资源(比如文件)。“函数的结果只依赖参数”。
  • 常函数(const function)是纯函数的更严格版本。它不会读取和写除参数外的任何数据,也不可以使用指针参数来读取数据。“函数的结果依赖于参数和全局及内存变量”。
  • 对于纯函数和常函数,如果返回值为void类型,则没有任何意义。GCC可以通过这些信息来进行CSE优化,比如对于常函数,如果参数在多次调用时不便,则GCC将替换后面的函数调用为前面已执行函数的返回值。
  • 函数属性是C语言的GNU扩展,允许程序员为GCC提供更多的信息。它作为函数声明的一部分,通过关键字__attribute__来制定。比如,int func(int a, int b) __attribute__ (pure);。一个函数可以具有多个属性。

 原文地址 http://blog.donews.com/yingbo/archive/2006/03/02/749553.aspx
发表于: 2008-04-14,修改于: 2008-04-14 16:21,已浏览437次,有评论0条 推荐 投诉


网友评论
 发表评论