GCC是否被LLVM取代?

时间:2016-12-07 16:31:00

标签: gcc llvm llvm-gcc

我想知道LLVM凭借其较新的设计是否会在开源世界中取代GCC?

LLVM应该具有多种检查代码的技术,因此IDE更易于编程等。但是,GCC在性能方面仍然应该是好的。

1 个答案:

答案 0 :(得分:6)

简短回答: 否。根据具体情况,它们都被广泛使用。

答案很长:

取决于采用的问题以及其他因素。

例如,Apple使用LLVM(和Clang)来处理几乎所有事情,包括构建内核(以前使用GCC构建),引导加载程序和用户空间。除此之外,LLVM还用于图形驱动程序,用于将着色器编译为SGX USSE字节流,尽管这主要是eating your own dogfood的情况。

除此之外,LLVM还用于开源项目,例如in Mesa和用于JIT编译的Dolphin Emulator。

除此之外,GCC仍占主导地位,例如,Linux是使用GCC构建的,虽然有build Linux using Clang+LLVM的尝试,但它们更像是一种体验。除此之外,在嵌入式世界中,许多嵌入式应用程序(例如,UBoot和Little Kernel)依赖于GCC扩展提供的功能,并且完全无法使用Clang + LLVM构建,无法在编译到对象或链接阶段时失败

对于用户空间应用程序,它主要是个人(或贵公司的偏好)的问题,因为它们都提供了大致相同的功能集,包括SIMD支持和完全支持C ++ 14和C11(尽管GCC有一些)在C ++支持方面,烦人的未解决的错误,例如,Bug 61636)。

代码检查技术主要由Clang提供,并且根据我的个人经验提供了大量的开销(例如在Qt Creator中,而在XCode中则较少)。