首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >open64编译器与llvm编译器的区别

open64编译器与llvm编译器的区别
EN

Stack Overflow用户
提问于 2011-03-08 19:47:14
回答 1查看 1.4K关注 0票数 4

有人能指出open64和llvm之间的区别吗?

我知道open64使用的是旋转IR,它有5个阶段,而且差别很大,因为每个阶段都大大降低了对机器的代码,而llvm只有一个IR,用于中间级优化,然后被降为目标独立指令(dags)和依赖指令。

1)也是SSA,

2)和它是否使用虚拟寄存器,

3)确实有像llvm这样的模块化设计,

4)是否容易开发、传递并将其插入工具链?

这两种编译器都擅长中级过程间优化和转换,但是

5)是否支持JITting或内置于框架中的任何类型的动态翻译?

在这两种情况下,CG的质量似乎大致相同。

6):对于前端来说,是否可以轻松地用语用扩展或者绑定新的,而不修改Whirl (这就是SUIF的问题所在)?

据我所知,open64广泛应用于许多商业和学术项目(UPC、AMD、Nvidia、Ten二氧化硅),但它似乎有许多分支(2003年以后发展),每一个都有自己的特点和局限性。此外,没有固定的开发人员社区和环境或支持,与llvm相比,文档几乎不存在,只是编译器没有一个简单的前进方向。

在许可方面也存在差异,其中llvm与BSD许可风格更匹配,而open64是基于GPL的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-09 17:08:22

问:也是SSA A:不,但是Open64有SSA管理器A:不,但是Path64今年要么采用SSA的方法,要么将所有的优化转换成SSA感知

问:它使用虚拟寄存器吗? A:在Path64 64/Open64 64中,直到cg阶段才会进行最终寄存器分配

问:它有像llvm A:(服从意见和我有偏见)的模块化设计吗?每个阶段都被清晰地划分,所以它有点模块化,但不像你在llvm中所看到的那样。请注意,我怀疑在这一点上,您可以关闭某些东西在llvm,没有太多的影响。因此,从研究人员的角度来看,单独测试一种类型的优化可能并不容易。

问:开发pass并将其插入工具链容易吗?答:是的/不是的- LLVM在文档方面赢得了胜利,但是Path64正在做这方面的工作。有些代码比其他代码更容易进入。如果您对编译器完全陌生,那么使用LLVM进行前端工作或源对源工作。如果您有经验并希望开发一个更高级的优化,Path64 git://github.com/path64 64/piler.git就是我推荐的。

问: open64是否支持JITting?没有,但你为什么要呢?Path64在静态编译和花费200 k周期的JIT方面最强--一些字节代码很少有意义。

问:前端呢?答: clang将是livm-2.10的默认值,但在此之前,他们都使用gcc的前端。有一个非公开的项目,让大家欢呼雀跃。这又使他们两人平起平坐。

小修正- LLVM更类似于CG IR,而不是真正的中等水平漩涡。在这两种情况下,CG的质量似乎大致相同。我会说这是一个完全错误的假设,我不会评论哪个更好,但我会说它们在本质上是不同的

此外,没有固定的开发人员社区和环境或支持

#路径标度- irc.freenode.net (我们也有邮件列表,您的问题将得到解答)

在内部,许多公司都有很好的文档,但通常不会在需要的基础上共享或提供。(我是irc的codestr0m,很可能分享我们在这方面所取得的进展)

编译器前进的一个方向。

对我们来说只有一个方向,我们正试图围绕它建立一个社区。

在许可方面也存在差异,其中llvm与BSD许可风格更匹配,而open64是基于GPL的。

对不起,但我不是律师,只要不妨碍我,我就不关心许可问题。--

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5237458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档