llvm/clang 은 gcc 의 미래인가?
글쓴이: ifree / 작성시간: 토, 2010/06/05 - 3:53오후
1. Overview
llvm 은 컴파일러 인프라스트럭처이며, 자체적인 중간 코드를 가지고 있다.
이 llvm 중간 코드는 실행 바이너리로 변환하거나, JIT 를 이용해 바로 실행할 수 있다.
llvm 은 컴파일 타임 최적화 뿐만 아니라 자바 가상머신과 같이 런타임 최적화를 제공한다.
clang 은 llvm 의 front end 로서 C/C++ 소스 파일을 llvm 중간 코드로 변환한다.
2. 현황
현재 버전은 2.7 이며 C 와 Objective C 는 상용으로 사용 가능한 상태 (애플에서 잘 쓰고 있음).
C++ 은 아직 베타 수준. (Qt 의 일부 코드가 컴파일이 안되고 있음)
3. Performance
아직은 GCC 에 실행파일의 속도나 호환성에서 뒤떨어짐.
벤치마크 - http://www.phoronix.com/scan.php?page=article&item=gcc_llvm_clang&num=1
제가 젠투에 깔아서 테스트 해 본 결과 컴파일 시간은 훨씬 빠르고 콘솔 기반 프로그램에서 문제는 없었습니다.
Forums:
성능적인
성능적인 측면보다...
GCC 4.5인가부터 GPL3가 적용됩니다.
그래서 저작권때문에
Apple이나 FreeBSD쪽에서는 GCC에서 clang으로 옮기는거 같습니다.
라이선스
GCC 4.5부터가 아니고, GCC 4.2.2부터 GPL3가 적용되었습니다. 몇 년 되었지요.
FreeBSD 의 경우 clang
FreeBSD 의 경우 clang 으로 옮기는 건 아닙니다. (현재로써는 희망사항이죠) 단순히 BSD 라이센스 컴파일러를 사용하고자 하는 사람들 (예를 들면 Roman Divacky 혹은 Ed Schouten 씨등등) 이 꾸준히 /projects/clangbsd/ 를 유지하고 있을 뿐이구요.