2011-10-25 2 views
6

Gcc의 -fdump-tree-optimized 옵션은 C 코드의 최적화 된 버전을 C 파일로 덤프합니다. 인텔의 icc 컴파일러를 사용하여 동일한 작업을 수행 할 수있는 방법이 있습니까?Intel icc : 최적화 된 코드를 C 파일로 덤프하는 방법

나는 행렬 곱셈 코드가 icc -O3 -ipo mult.c으로 컴파일되어 있습니다. 나는 컴파일러가 어떻게 최적화를 수행했는지보고 싶다. 아무것도 작동하지 않으면 프로그램의 어셈블리 코드를 생성합니다.

+0

개인용 재미가 아닌 "실제"응용 프로그램의 경우 GNU 과학 라이브러리 또는 기타와 같이 일반 매트릭스 곱하기를 구현하는 기존 라이브러리를 사용하면 성능 및 개발 시간면에서 훨씬 나아지므로 BLAS 라이브러리 구현 – TJD

+0

아니요, 이것은 컴파일러 최적화 및 유사한 주제를 가르치는 클래스 프로젝트의 일부입니다. – jitihsk

답변

2

기술적으로 -fdump-tree-optimized은 C 표현을 덤프하지 않지만 GCC 내부에서 사용되는 Gimple 코드의 텍스트 부분 표현을 사용합니다 (Gimple은 대부분의 GCC 타겟 독립적 최적화 단계가 작동하는 명령어의 중간 엔드 내부 표현입니다) .

그러나 icc은 독점적 인 컴파일러 (블랙 박스)이므로 공급자의 관점에서 볼 때 icc이 어떻게 작동하는지 (인텔 용) 흥미롭지 않습니다.

GCC는 자유 소프트웨어이므로 내부 표현을 표시 할 수 있습니다. 독점적 인 컴파일러는 어떻게 작동하는지 보여주고 싶지 않습니다.

이것이 수업 인 경우 LLVM을 사용해 볼 수도 있습니다. (하지만 내부 표현을 어떻게 내부에 쏟아 넣을지는 모르겠다.)

더 중요한 것은 클래스 인 경우 GCC 4.6을 사용하여 학생에게 Plugin 또는 GCC MELT 확장 프로그램을 개발하여 최적화를 시도하고 실험하도록 제안 할 수 있습니다. MELT는 GCC를 확장하는 고급 도메인 관련 언어이며 이러한 작업을 쉽게 수행 할 수있는 많은 기능을 제공합니다.