相当于-ftree矢量器verbose for clang

相当于-ftree矢量器verbose for clang,clang,clang++,Clang,Clang++,问题是如何使clang打印循环(或代码的其他部分)已矢量化的信息GCC有一个名为-ftree vectorizer verbose=6的命令行开关来执行此操作,但我找不到与clang类似的命令行开关。clang是否支持此功能,或者我唯一的选择是查看反汇编?查看clang源代码,在转换/向量化中有几个向量化过程: BB矢量化 循环矢量化 SLPVectorize 最后三个似乎没有任何可以打印内容的参数。但在内置BBVectorize中,有两个选项可用于在构建clang调试时打印内容: bb矢

问题是如何使
clang
打印循环(或代码的其他部分)已矢量化的信息
GCC
有一个名为
-ftree vectorizer verbose=6的命令行开关来执行此操作,但我找不到与
clang
类似的命令行开关。
clang
是否支持此功能,或者我唯一的选择是查看反汇编?

查看clang源代码,在转换/向量化中有几个向量化过程:

  • BB矢量化
  • 循环矢量化
  • SLPVectorize
最后三个似乎没有任何可以打印内容的参数。但在内置BBVectorize中,有两个选项可用于在构建clang调试时打印内容:

  • bb矢量化调试指令检查-启用调试时,输出有关指令检查过程的信息
  • bb矢量化调试候选选择-启用调试时,输出有关候选选择过程的信息
  • bb矢量化调试对选择-启用调试时,输出有关对选择过程的信息
  • bb矢量化调试周期检查-启用调试时,输出有关周期检查过程的信息
  • bb矢量化每对后的调试打印-启用调试时,在每对熔合后转储基本块

看起来就是这样。

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.
资料来源: