使用如下命令,统计了一下这三个编译器的代码行数情况。
find . -type f -not -regex '\./\.git.*' | xargs cat | wc -l

结果如下,供参考。这三个编译器使用的都是各个代码库中的最新版本,因为《编译点滴》使用git svn工具,所以命令行里有“git”,而标明的版本号却是SVN的。
Open64(SVN R3782):

open64$ find . -type f -not -regex '\./\.git.*' | xargs cat | wc -l
13164644

LLVM(LLVM R148206, 包含Clang  ):
llvm$ find . -type f -not -regex '\./\.git.*' | xargs cat | wc -l
2468255

GCC(R183190):
gcc$ find . -type f -not -regex '\./\.git.*' | xargs cat | wc -l
12823155

 

接触过内核的朋友肯定在源码中看到许多.S文件,这些文件中基本都是汇编。
这些文件是干什么的,为什么要这么写? Continue reading »

 

GIMPLE中间表示,是GCC中机器无关的中间表示,机器无关的优化基本都在这个层次上做。
本文先来看看GCC是如何进、出GIMPLE中间表示的。 Continue reading »

 

Open64的Release manageer刚刚发布了5.0版本。

Continue reading »

 

精确的数据流分析是让编译优化能高效进行的基础。 SSA就是一种高效的数据流分析技术,目前几乎所有的现代编译器,如GCC、Open64、LLVM都有将SSA技术的支持, 不仅仅是编译器,Jikes RVM, HotSpot JVM, .Net的Mono,Python的Pypy, Andoroid的Dalvik,这些虚拟机/解释器中的Just-in-Time Compiler也有了SSA的支持。 Firefox的下一代JavaScript引擎IonMonkey中,也将为其JIT引入SSA。 Continue reading »

 

最近研究了一把GCC的选项,比较有意思,选些出来,学习学习。编译器作为程序员的重要工具,GCC作为编译器中应用最广泛的,无不处处体现出贴心的设计和功能支持。
Continue reading »

 

去年3月GCC 4.5.0发布,而今,GCC刚刚正式发布了4.6版本。这个版本包含了很多的更新。

亮点:

  • 大大改进了过程间分析和链接时优化。正确性方面,编译了FIrefox,无疑是最有力的证明,但性能方面的评测没有,所以LTO是否真有性能不好说。不过从
  • Go语言进入了GCC的支持
  • 龙芯3A也支持了。
  • AVX支持了,但看样子,有点弱(没有自己调研过)。
  • 增加了128位浮点数支持,这个在科学计算领域应该很有用,X86和安腾系的芯片首先得益。
  • 另外,Phoronix刚刚发布了针对GCC4.5.2, 4.6RC2, LLVM2.9和DragonEgg的性能评测,结果看起来GCC4.6不是很给力。不清楚具体开了什么编译选项。

 

细节更新如下:

  • 更标准化的选项。含义不精确的选项被取缔,通过gcc命令传递给汇编器和链接器的选项,也通通需要加上指定的前缀,如-Wl,–as-needed.
  • 修正了一个GCC内部函数cproj和ISO C99标准不一致的地方,并做了优化,不过用户需要GLIBC 2.12及以后的版本才行。
  • 移除了模块间优化扩展,使用4.5中引入的LTO代替之。
  • 增加了采用LGPL协议的libquadmath数学库,这个库可以为32位x86,x86-64和安腾平台提供128浮点数的浮点运算支持。
  • 删除了一些老旧平台的支持。

Continue reading »

 

昨天的360大战QQ相比各位都有领略了。双方都提到已将代码送交有关部门审查,或者从有关部门拿到了代码审查报告之类的。代码审查,光靠人看可不行,代码分析工具少不了。是维基上关于静态代码分析的介绍。这个页面列出了很多静态代码分析工具,应该比较全了。碰巧Intel的博客发表了一篇文章。介绍ICC和一款商业代码分析工具的对比。这里就借花献佛,现读现卖。学习学习。这篇文章并不是简单的翻译Intel的博客,增加了很多概念性的和GCC的相关内容。 Continue reading »

 

http://gcc.gnu.org/ml/gcc/2010-07/msg00196.html

Sun mingming 在GCCmaillist里发邮件,想要提交有关龙芯3A的patch。这样以后龙芯3A也可以直接用GCC了!

 

链接: http://www.lingcc.com/gccint/

GCC Internal中文文档,是以Hellogcc组织为首的一个热爱GCC等开源编译技术的小团伙集体努力的结果。任何人都可以参与到其中来,只要你有兴趣(如何参与和获得最新的gcc internals中文翻译)。GCC Internals文档中文翻译的最近进展:)

因为一直以来GCC internal中文文档,都只是躺在SVN库中,恰好lingcc.com有网络空间,于是就在lingcc.com下放上了网页版的 GCC Internal中文文档。 这个文档会不定期和SVN库同步。

另外,Hellogcc在征集今年workshop的话题,欢迎各位积极支持,参与。

2009-2011© 编译点滴 Suffusion theme by Sayontan Sinha

无觅相关文章插件,快速提升流量