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

问题描述 投票:0回答:1

Gcc 的

-fdump-tree-optimized
选项将 C 代码的优化版本转储为 C 文件。有没有办法可以使用英特尔的 icc 编译器执行相同的操作?

我有一个矩阵乘法代码,我已将其编译为

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

c intel compiler-optimization icc
1个回答
2
投票

从技术上讲,

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

但是

icc
是一个专有编译器(黑匣子),因此从其提供商的角度来看,(对于英特尔而言)展示
icc
的工作原理并不有趣。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.