问题是关于如何使clang
打印有关哪些循环(或代码的其他部分)已被矢量化的信息。 GCC
有一个名为-ftree-vectorizer-verbose=6
的命令行开关来执行此操作,但我找不到与clang
类似的任何内容。 clang
是否支持此功能,或者我唯一的选择是查看反汇编?
答案 0 :(得分:5)
clang具有以下选项来打印与矢量化相关的诊断:
-Rpass=loop-vectorize identifies loops that were successfully vectorized.
-Rpass-missed=loop-vectorize identifies loops that failed vectorization and indicates if vectorization was specified.
-Rpass-analysis=loop-vectorize identifies the statements that caused vectorization to fail.
答案 1 :(得分:0)
查看clang源代码,Transforms / Vectorize中有几个矢量化传递:
最后三个似乎没有任何打印东西的论据。但是在BBVectorize内部,当clang构建为debug时,有几种打印方式可供选择:
看起来就是这样。