Intel ICC: как вывести оптимизированный код в виде файла C - PullRequest
6 голосов
/ 26 октября 2011
Опция

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

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

1 Ответ

2 голосов
/ 27 октября 2011

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

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

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

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

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

...