6

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

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

4

1 回答 1

2

从技术上讲,-fdump-tree-optimized不要转储 C 表示,而是转储 GCC 内部使用的 Gimple 代码的文本部分表示(Gimple 是指令的中间端内部表示,大多数 GCC 目标无关优化传递都在其上运行)。

但是icc是一个专有编译器(一个黑匣子),所以从它的提供者的角度来看,展示它是如何icc工作的(对于英特尔来说)并不有趣。

GCC 有能力显示其内部表示,因为它是一个免费软件。专有编译器不想展示它们是如何工作的。

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

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

于 2011-10-27T05:09:36.493 回答