我注意到gcc标志-ftree-vectorize
对于优化代码非常有用。
我试图更好地理解它是如何工作的,但文档相当简洁:
在树上执行矢量化。此标志启用 -ftree-loop-vectorize和-ftree-slp-vectorize如果没有明确指定。
有谁知道这面旗帜的内部运作?
答案 0 :(得分:3)
树是GCC使用的内部代码表示,树矢量化在此阶段发生。在这种表示中,很容易发现重复的指令。如果代码生成器可以发出SIMD指令,则有助于在树阶段中捆绑这些重复的指令。
有关详细信息,请参阅tree-vectorizer.c。