【问题标题】:Intel icc: how to dump optimized code as C file英特尔 icc:如何将优化代码转储为 C 文件
【发布时间】:2011-12-15 08:34:33
【问题描述】:

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

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

【问题讨论】:

  • 如果这是一个“真正的”应用程序而不是个人娱乐,那么使用实现通用矩阵乘法的现有库(例如 GNU)会更好(在性能和开发时间方面)科学图书馆,或 BLAS 图书馆的其他实现
  • 不,这是教授编译器优化和类似主题的课程项目的一部分。

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


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 2013-04-29
    • 2013-11-11
    • 2021-03-16
    • 1970-01-01
    • 2011-02-14
    相关资源
    最近更新 更多