Intel icc: как выгрузить оптимизированный код в виде файла C

Опция -fdump-tree-optimized Gcc выводит оптимизированную версию вашего кода C в виде файла C. Есть ли способ сделать то же самое с помощью компилятора Intel icc?

У меня есть код умножения матриц, который я скомпилировал как icc -O3 -ipo mult.c. Я хочу посмотреть, как компилятор выполнил оптимизацию. Если ничего не получится, то я сгенерирую ассемблерный код программы.


person jitihsk    schedule 25.10.2011    source источник
comment
Если это для реального приложения, а не для личного развлечения, вам гораздо лучше (с точки зрения производительности и времени разработки) использовать существующую библиотеку, которая реализует General Matrix Multiply, например GNU Scientific Library, или другую реализацию библиотеки BLAS.   -  person TJD    schedule 26.10.2011
comment
Нет, это часть школьного проекта, посвященного оптимизации компилятора и другим подобным темам.   -  person jitihsk    schedule 26.10.2011


Ответы (1)


Технически -fdump-tree-optimized выводит не C-представление, а частичное текстовое представление кода Gimple, используемого внутри GCC (Gimmple — это промежуточное внутреннее представление инструкций, на котором работает большинство проходов оптимизации GCC, не зависящих от цели).

Но icc — проприетарный компилятор (черный ящик), поэтому с точки зрения его провайдера неинтересно (для Intel) показывать, как работает icc.

GCC имеет возможность показывать свои внутренние представления, потому что это свободное программное обеспечение. Проприетарные компиляторы не хотят показывать, как они работают.

Если это класс, вы могли бы также попробовать LLVM. (Но я не знаю, как сделать дамп внутренних представлений внутри).

И что еще более важно, если это класс, вы можете предложить своему ученику использовать GCC 4.6 для разработки плагина или GCC MELT расширение для изучения и экспериментов с оптимизацией. MELT — это высокоуровневый доменный язык для расширения GCC, который предоставляет множество функций для облегчения таких задач.

person Basile Starynkevitch    schedule 27.10.2011