2016-12-07 5 views
1

새로운 디자인 덕분에 LLVM이 오픈 소스 세계에서 GCC를 대체 할 수 있을지 궁금합니다. IDE 용의 등 프로그램에 그러나, GCC는 여전히 성능면에서 좋은해야 쉽게 있도록GCC가 LLVM으로 대체 되었습니까?

LLVM은 검사 코드의 몇 가지 기술을 특징으로한다.

+3

가 나는 특정 풀 수있는 프로그래밍 문제에 대해 아니기 때문에 오프 주제로이 질문을 닫습니다 투표를하고있다. –

답변

3

짧은 대답 :No. 둘 다 문맥에 따라 널리 사용됩니다.

긴 대답 :

달려, 그것은 채택의 문제뿐만 아니라 다른 요인이다. 예를 들어

는, 애플은 (이전에 GCC를 사용하여 구축) 커널, 부트 로더와 사용자 공간 구축을 포함하여 거의 모든 것을 LLVM (그리고 연타)를 사용합니다. 그것은 크게 eating your own dogfood의 사건 비록 여기뿐만 아니라 그와 같은, LLVM은 SGX USSE의 bytestreams에 쉐이더를 컴파일하는 그래픽 드라이버에 사용됩니다.

또한 LLVM은 오픈 소스 프로젝트 (예 : in Mesa)와 Dolphin Emulator for JIT 컴파일에도 사용됩니다.

GCC는 여전히 GCC를 사용하여 구축되었으며 build Linux using Clang+LLVM에 대한 시도가 있었지만 GCC는 여전히 우월한 사용법을 가지고 있습니다. 뿐만 아니라 그와 같은 임베디드 세계에서, (예를 들어, UBoot 리틀 커널에 대한) 임베디드 애플리케이션의 많은 GCC 확장에 의해 제공되는 기능에 의존 크게 연타 + LLVM은 개체 또는 연결 단계에 중 컴파일에 실패 빌드되지 않습니다 .

그러나 사용자 공간 애플리케이션의 경우 SIMD 지원과 C++ 14 및 C11에 대한 완벽한 지원을 포함하여 거의 동일한 기능 세트를 제공하기 때문에 대부분 사용자 개인 (또는 회사의 선호도)의 문제입니다 (GCC는 C++ 지원의 경우 성가신 미확인 버그입니다 (예 : Bug 61636).

코드 검사 기술은 크게 연타 및 내 개인적인 경험에 제공된다 (Qt는 제작자에, 예를 들면 이하 정도로 엑스 코드) 헤드의 상당량을 제공 하였다.

+0

GCC가 디자인에서 "고대"라고 정확하게 이해 했는가? LLVM은 몇 가지 단점을 수정하려고 시도 했는가? 또한 LLVM을 사용하면 컴파일러를 쉽게 작성할 수 있습니다. – user111854