【问题标题】:tree vectorization: gcc optimization flag树向量化:gcc 优化标志
【发布时间】:2016-03-10 12:20:19
【问题描述】:

我注意到 gcc 标志 -ftree-vectorize 对于优化代码非常有用。

我试图更好地理解它是如何工作的,但文档相当简洁:

对树执行矢量化。该标志启用 -ftree-loop-vectorize 和 -ftree-slp-vectorize 如果未明确指定。

有人知道这个标志的内部工作原理吗?

【问题讨论】:

  • 此链接可能有用:Vectorization in gcc
  • 如链接文档中所述,可以通过使用-ftree-vectorizer-verbose=N 选项来进一步了解优化器的内部工作原理。
  • “SLP”是超字级并行。并非所有重复的指令都是由于循环展开;有些是因为底层代码自然是重复的。
  • 我建议阅读my paper 了解 SIMD

标签: c++ gcc optimization vector tree


【解决方案1】:

是GCC使用的内部代码表示,树向量化发生在这个阶段。在这种表示中,很容易发现重复的指令。如果代码生成器可以发出 SIMD 指令,则有助于将这些重复的指令捆绑在树阶段。

详见 tree-vectorizer.c。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 2023-03-30
    • 2010-10-30
    • 1970-01-01
    • 2013-05-09
    • 1970-01-01
    • 2020-04-02
    相关资源
    最近更新 更多