2011-02-17 6 views
2

음 ... 좋은 컴파일러를 검색 할 때 clang/LLVM을 발견했습니다. 이 컴파일러는 icc, pgi 같은 다른 컴파일러와 동일한 결과를 제공합니다. 하지만 문제는이 컴파일러에 대한 자습서가 거의 없다는 것입니다. 친절하게도 어디에서 clang 컴파일러에 대한 자습서를 찾을 수 있는지 알려주세요. 에 의해CLANG/LLVM 컴파일러를 사용하여 코드 실행 시간 줄이기

참고 : 나는 다음과 같은 플래그 clang -O3 -mfpmath=sse file.c

+0

최적화 (빠른 코드 작성) 방법에 대한 두 번째 질문입니다. StackOverflow에 실제 코드를 게시 할 수 있습니까? 실행 시간이 많이 걸리는 코드 부분. – osgx

답변

0

연타를 사용하여 내 C 코드를 컴파일 이 컴파일러 아니다, 그것은 LLVM 컴파일러의 단지 프론트 엔드입니다. 따라서 clang을 호출하면 c/C++ 파일을 구문 분석하지만 최적화 및 코드 생성은 LLVM 자체에서 처리됩니다. 여기

당신은 LLVM 최적화 및 분석 옵션의 문서를 찾을 수 있습니다 http://llvm.org/docs/Passes.html

전체 문서는 여기를 또한 유용한 옵션은 다음과 같습니다

http://llvm.org/docs/http://linux.die.net/man/1/llvmc (나도 그들 중 대부분을 받아 들일 것 연타하는 것이 좋습니다)

+2

나는 Clang이 단순히 LLVM 컴파일러에 전달한다고 생각한다. :) –

+0

@Matthieu M., 그렇습니다. 일부는 통과 할 수 있습니다. 또한 (적어도 이론적으로) 일부 옵션을 허용하지 않고 오류 (중단)를 줄 수 있습니다. 예 : clang은 c/C++ lang이 아닌'-x' 옵션으로 중단 할 수 있지만, llvmc는 프론트 엔드가 있다면 lang을 받아 들일 수 있습니다. – osgx

8

Clang (명령 줄 컴파일러)은 gcc 호환 옵션을 취하지 만 GCC가 취하는 많은 플래그 (예 : -mfpmath = sse)를 받아들이고 무시합니다. 우리는 좋은 코드를 생성하는 것을 목표로합니다. clang이 -phast-math와 같은 일부 시나리오에서 유용 할 수있는 언어 표준을 위반하는 것을 허용하는 플래그가 있습니다.

좋은 성능을 찾고 있다면 link-time-optimization을 실험 해보자. clang은 애플리케이션의 소스 파일을 최적화 할 수있다. 현재 사용중인 플랫폼에 따라 -O4를 컴파일러에 전달하여 활성화 할 수 있습니다. 리눅스를 사용한다면, "gold"링커 (http://llvm.org/docs/GoldPlugin.html 참고)를 사용해야합니다. Mac을 사용하고 있다면 Xcode의 최신 버전으로 "제대로 작동"해야합니다.

+0

clang이 실제로 고려한 gcc 옵션을 나열하는 페이지 (예 : -ffast-math)를 찾을 수 없습니다. 그런 페이지가 있습니까? –

+0

@AlexandreHamez 맨 페이지는 -phast-math를 나열합니다. 나는 man 페이지가 권위 있다고 생각한다. – nes1983

관련 문제