【问题标题】:Why doesn't GCC show vectorization information?为什么 GCC 不显示矢量化信息?
【发布时间】:2016-02-18 22:41:12
【问题描述】:

我在 Windows 7 上为 C 程序使用 Codeblocks。该程序正在使用 OMP 库。 GCC 版本是 4.9.2。 Mingw x86_64-w64-mingw32-gcc-4.9.2.exe。

使用的标志是:-fopenmp -O3 -mfpmath=sse -funroll-loops -ftree-loop-distribution -ftree-vectorize -ftree-vectorizer-verbose=2

程序运行正确,但问题是它没有显示关于哪些循环被矢量化的信息。我该如何解决?

构建日志信息:

------------- 构建:在 **** 中发布(编译器:GNU GCC 编译器)---------------

x86_64-w64-mingw32-gcc-4.9.2.exe -Wall -O2 -march=corei7 -fexpensive-optimizations -O3 -fopenmp -mfpmath=sse -funroll-loops -ftree-loop-distribution -ftree-vectorize -ftree-vectorizer-verbose=2 -c C:\Users...\fc -o obj\Release \fo x86_64-w64-mingw32-g++.exe -o bin\Release\d.exe obj\Release\f.o obj\Release\main.o -s "C:\程序 文件...\libgomp-1.dll" 输出文件为 bin\Release\d.exe,大小为 21.00 KB 进程 以状态 0 终止(0 分钟,0 秒)0 错误,0 警告(0 分钟,0 秒)

【问题讨论】:

    标签: c gcc


    【解决方案1】:

    CodeBlocks 是一个 IDE。它不编译任何东西。海湾合作委员会会。 -ftree-vectorizer-verbose 曾经在以前的版本中工作。现在有-fopt-info,它允许检索有关优化的信息(也是矢量化);你可以找到相关文档here

    它甚至展示了如何将矢量化器输出实际检索到stderr: 还有这个:

    gcc -O2 -ftree-vectorize -fopt-info-vec-missed 
    

    打印有关因矢量化而错过的优化机会的信息 通过标准错误。请注意,-fopt-info-vec-missed 等效于 -fopt-info-missed-vec.

    您可以将missed 更改为例如optimizedall 等等。

    【讨论】:

    • 现在可以了。在更改编译器之前,我有这样的信息,然后我无法再次检索它们。
    • 欢迎使用实现此目的的示例标志... fopt-info 系列选项的手册页有点难以理解。
    • @AndrewWagner 我再次检查了文档,自从我发布答案后,它似乎已经发生了变化,所以我更新了链接并添加了更多解释。
    【解决方案2】:

    gcc 标志 -ftree-vectorizer-verbose 在 gcc 4.9 中已被弃用。在较新版本的 GCC 中,您可以使用 -fopt-info-vec-missed

    https://github.com/gcc-mirror/gcc/blob/releases/gcc-4.9/gcc/common.opt

    ftree-vectorizer-verbose= Common Joined RejectNegative Ignore 什么也没做。为向后兼容而保留。

    【讨论】:

      【解决方案3】:

      在 GCC-9.0.0 中,消息现在以 optimizaed、missed 或 note 为前缀,而不是所有都以 note 为前缀的旧行为。 如果想通过 -fopt-info 的新 -internals 子选项获取矢量化器做出的所有决策的详尽日志。

      【讨论】:

        猜你喜欢
        • 2011-12-29
        • 2012-11-10
        • 2011-06-28
        • 2014-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-03
        相关资源
        最近更新 更多