【问题标题】:gcc Auto-Vectorization - Understanding output messagesgcc Auto-Vectorization - 了解输出消息
【发布时间】:2020-09-03 05:10:48
【问题描述】:

我目前正在尝试了解 gcc Vectorizer 的输出。 我使用-O2 -ftree-vectorize -fopt-info-vec-all 和 gcc 8.2.0 编译了我的程序。

但是,我不明白,一些输出消息是什么意思,并且似乎无法在互联网上找到解释。

以下示例中的 PHI 是什么意思?

test.c:14: note: Analyze phi: i_53 = PHI <i_18(7), 0(5)>
test.c:14: note: Access function of PHI: {1024, +, 4294967295}_2

这里有什么问题?

test.c:5: note: not vectorized: not enough data-refs in basic block.

非常感谢任何帮助。

(我不是在寻求解决问题的帮助,只是想首先了解它们是什么)

【问题讨论】:

    标签: gcc simd auto-vectorization


    【解决方案1】:

    关于您的第一个问题,Phi 或? 函数是编译器设计中的一个概念。在这个阶段,编译器似乎在static single assignment form 中表达您的程序,其中每个变量只能写入一次,并且?函数用于从不同变量中选择值,这些变量可能并不都存在于程序中的给定点.

    请参阅https://gcc.gnu.org/onlinedocs/gccint/SSA.html 了解 gcc 特定的说明。

    我不知道你第二个问题的答案。

    【讨论】:

      猜你喜欢
      • 2013-02-23
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多