用于生产代码的LLVM编译器?

时间:2011-04-07 08:01:29

标签: llvm

我对LLVM编译器有疑问:

我想用它来编译我的Mac和iOS的Objective-C源代码,从他们的发行说明来看,似乎LLVM足够稳定,可以使用它。

在使用LLVM之后,我还想用它来编译C ++或Objective-C ++。但是,我还不清楚是否仍应使用混合LLVM-GCC编译器(GCC解析器和LLVM代码生成器)或纯LLVM编译器。

我也不确定新的C ++标准库以及是否应该使用它以及如何从GNU的libstdc ++转换。

问题

  1. 目前使用哪种编译器从C ++生成快速生产质量代码:LLVM-GCC混合编译器或纯LLVM?
  2. 是否应该将C ++标准库从GNU的libstdc ++迁移到LLVM项目创建的新libc ++库?
  3. 感谢任何评论和提示。

2 个答案:

答案 0 :(得分:7)

这里提出几个问题,我会尽力回答所有这些问题。

  1. 没有“纯LLVM编译器”。 LLVM是一组用于代码优化和代码生成的库。有几个C / C ++前端可以挂钩到LLVM。其中有clang和llvm-gcc。有关LLVM编译器基础结构的各种组件的更多信息,请参阅http://llvm.org/。正如http://llvm.org/docs/ReleaseNotes.html所写,llvm-gcc自LLVM 2.9发布以来就是EOL,所以你最好使用clang,因为它肯定会在将来开发和维护。
  2. libc ++仍在开发中,因此对于生产,您应该使用供应商提供的C ++(在您的情况下为libstdc ++)。

答案 1 :(得分:0)

请记住,所有这些都在改变,因此基准很容易过时。

我发现以下报告很有意思,不仅仅是作为一种基准,而且似乎显示了一些LLVM与GCC编译器的差异: Clang/LLVM Maturity Evaluation Report by Dominic Fandrey