2011-03-08 98 views
4

有人能指出open64与llvm之间的区别吗?open64与llvm编译器之间的区别

我知道open64使用旋转IR有5个阶段,因为每个阶段都会显着降低机器代码,而llvm有一个IR,用于中级优化,稍后会降低到目标无关说明(dag)和依赖的说明。

1)是洄也SSA,
2)并执行它使用虚拟寄存器,
3)确实open64具有模块化设计像LLVM,
4)是很容易开发通过并将其插入工具链?

这两种编译擅长中层间优化和变革,但
5)确实open64有JITting或任何种类的动态翻译的原生支持,内置的框架?

在这两种情况下,看起来CG或多或少的质量是相似的。
6)那么前端怎么样?是否可以在不修改Whirl IR(这就是SUIF的问题)的情况下轻松扩展与杂注或绑定新的前缀?据我所知,open64被广泛用于许多商业和学术项目(UPC,AMD,Nvidia,Tensilica),但它看起来有很多分支(在2003年之后增长),并且每个分支都拥有它自己的功能和限制。此外,没有固定的开发人员社区和环境或支持,与llvm相比,文档几乎不存在,并且简单地说,编译器的进展并不简单。

在llvm更符合BSD授权风格且open64基于GPL的许可方面也存在差异。

回答

相关问题