Intel icc:如何将优化代码转储为C文件

时间:2011-10-25 22:49:18

标签: c compiler-construction intel compiler-optimization icc

Gcc的-fdump-tree-optimized选项将C代码的优化版本转储为C文件。有没有办法可以使用intel的icc编译器做同样的事情?

我有一个矩阵乘法代码,我编译为icc -O3 -ipo mult.c。我想查看编译器如何执行优化。如果没有任何作用,那么我将生成程序的汇编代码。

1 个答案:

答案 0 :(得分:2)

从技术上讲,-fdump-tree-optimized不转储C表示,而是GCC内部使用的Gimple代码的文本部分表示(Gimple是指令的中端内部表示,大多数GCC目标独立优化通行证)。

但是icc是一个专有的编译器(黑盒子),所以从其提供者的角度来看,显示icc的工作原理并不感兴趣(对于英特尔而言)。

GCC能够展示其内部表示,因为它是一个免费软件。专有编译器不希望显示它们的工作方式。

如果这是一个类,您也许可以尝试LLVM。 (但我不知道如何在内部转储内部表示。)

更重要的是,如果这是一个课程,您可以建议您的学生使用GCC 4.6开发插件或GCC MELT扩展来探索和实验优化。 MELT是一种扩展GCC的高级域特定语言,它提供了许多功能来简化这些任务。