문제

누구든지 경험이 있습니까? LLVM, LLVM-GCC, 또는 그 소리?

LLVM의 전체 아이디어는 나에게 매우 흥미로워 보이며 그것이 어떻게 수행되는지에 관심이 있습니다. 도구가 생산 준비가되지 않은 경우 도구를 시험해 보는 데 많은 시간을 버리고 싶지 않습니다.

도구에 대한 경험이 있다면 도구에 대해 어떻게 생각하십니까? 어떤 주요 제한 사항이 발생 했습니까? 가장 큰 이점은 무엇입니까?

많은 감사합니다!

도움이 되었습니까?

해결책

나는 LLVM과 함께 초기 놀이를했고 이 튜토리얼 그것이 잠재력에 대해 매우 흥분하게 만들었습니다. 내가 그것을 사용하여 상대적으로 쉽게 앱에 JIT를 만들 수 있다는 아이디어는 저를 스토킹했습니다.

나는 그것의 한계, 안정성, 성능 등에 대해 어떤 종류의 유용한 의견을 제공 할 수있을만큼 깊지 않았습니다. 나는 그것이 모든 카운트에서 좋다는 것을 이해하지만 그것은 순전히 듣는 것입니다.

다른 팁

LLVM에 대해 충분한 좋은 말을 할 수 없습니다. 내가 본 다른 컴파일러 프로젝트에 비해 작업하기가 매우 쉽습니다. 나는 컴파일러 사람이 아니지만 LLVM 또는 Clang의 제한에 좌절하면 일반적으로 다이빙을하고 변경하기가 매우 쉽습니다.

우리 (Nate Begeman, 나 자신 및 몇몇 다른 사람들)는 컴파일러 디자인에 대한 실제 경험이없는 PPC 백엔드를 썼지 만 비전거가 접근 할 수있을만큼 간단하게 보였습니다. 우리는 PPC 어셈블리에 꽤 익숙했지만 여전히 여가 시간의 몇 주 동안 LLVM-GCC가 PPC 코드를 출력 할 수있었습니다. 확실히 내가 가장 만족스러운 Hello World 's 중 하나입니다.

나는 지금 몇 달 동안 LLVM을 켜고 끄고 있습니다. 나는 두 가지를 썼다 OCAML 저널 LLVM의 사용을 다루는 기사 OCAML 프로그래밍 언어. OCAML 언어는 컴파일러를 작성하는 데 이상적이며 구문 분석을위한 강력하고 성숙한 도구와 라이브러리가 풍부하기 때문에 특히 흥미 롭습니다.

전반적으로, 내 경험은 매우 긍정적이었습니다. LLVM은 주석에서 말하는 것을 수행하며 사용하기가 매우 쉽습니다. 생성 된 코드의 성능은 훌륭합니다. 내가 쓴 프로그램 중 하나는 간단한 작은 BRAINF*CK 컴파일러로, 테스트 한 모든 컴파일러 (GCC 포함)의 가장 빠른 실행 파이브를 생성하는 단순한 작은 BRAINF*CK 컴파일러였습니다.

나는 LLVM과 함께 두 개의 그립 만 있습니다. 첫째, 예외를 제기하는 대신 잘못 될 때마다 Abort ()를 사용합니다. 이것은 LLVM에서 예외의 모든 용도를 제거하기 위해 노력하는 저자의 고의적 인 디자인 결정이지만 LLVM을 사용하는 컴파일러를 디버깅하려고 할 때 OCAML에서 뒷받침을 얻는 것이 불가능합니다. 그러나 소스에서 오류가 어디에서 발생했는지에 대한 단서는 없습니다. 둘째, LLVM의 편집 된 라이브러리는 엄청나게 큰 (20MB)입니다. 나는 이것이 C ++에 의해 발생한 부풀림 때문이라고 생각하지만 편집을 고통스럽게 느리게 만듭니다.

편집 : LLVM에 대한 저의 작업은 고성능 고급 쓰레기 수집 가상 머신을 만들면서 정점에 이르렀습니다. 무료 다운로드 여기 그리고 해당 사항을 확인하십시오 벤치 마크 (와!). @alex : 최대한 빨리 BF 컴파일러를 얻을 것입니다.

도구에 대해 물었고 Eclipse CDT 용 LLVM 플러그인 (Windows, Linux 및 Mac)이 있다고 언급하고 싶습니다. LLVM을 IDE에 잘 통합하고 사용자는 LLVM에 대해 아무것도 알 필요가 없습니다. 빌드 버튼을 누르면 .BC 및 실행 파일을 생성하기에 충분합니다 (사용자에게는 표시되지 않은 배경의 중간 파일).

최신 버전은 공식 Eclipse 업데이트 사이트를 통해 제공됩니다. http://download.eclipse.org/releases/mars

프로그래밍 언어 아래에 있으며 "C/C ++ LLVM-Family Compiler Build Support"라고합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top