英特尔icc编译器:如何将优化后的代码转储为C文件

6

Gcc的-fdump-tree-optimized选项可以将您的C代码优化后的版本作为C文件转储。是否有一种方法可以使用英特尔的icc编译器做同样的事情?

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


如果这是一个除了个人娱乐之外的“真正”应用程序,那么最好使用现有的实现通用矩阵乘法的库,例如GNU Scientific Library或其他BLAS库的实现,这样可以更好地提高性能和开发时间。 - TJD
不,这是一个教授编译器优化和类似主题的课程项目的一部分。 - Korizon
1个回答

2
从技术上讲,-fdump-tree-optimized不是转储C表示,而是转储GCC内部使用的Gimple代码的文本部分表示形式(Gimple是指令的中间端内部表示形式,大多数GCC目标无关优化通过此操作进行)。
但是,icc是专有编译器(一个黑盒子),所以从其提供者的角度来看,展示icc如何工作并不重要(对于英特尔来说)。
GCC具有显示其内部表示形式的能力,因为它是免费软件。专有编译器不想展示其工作原理。
如果这是一门课程,您可以尝试LLVM。 (但我不知道如何在其中转储内部表示形式)。
更重要的是,如果这是一门课程,您可能建议学生使用GCC 4.6开发插件或GCC MELT扩展程序来探索和实验优化。MELT是一个高级领域特定语言,用于扩展GCC,并提供许多功能以简化此类任务。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接