GCC是否被LLVM取代?

Shu*_*eng 4 gcc llvm llvm-gcc

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

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

Kri*_*oks 6

简短的回答: 他们都根据上下文得到广泛应用.

答案很长:

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

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

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

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

然而,对于用户空间应用程序来说,这主要取决于个人(或贵公司的偏好),因为它们都提供了大致相同的功能集,包括SIMD支持和完全支持C++ 14和C11(尽管GCC有一些恼人的未解决的bug当谈到C++支持时,例如,Bug 61636).

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