Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gcc 什么是太多BB';在循环中,can';t矢量化?_Gcc_Loops_Vectorization - Fatal编程技术网

Gcc 什么是太多BB';在循环中,can';t矢量化?

Gcc 什么是太多BB';在循环中,can';t矢量化?,gcc,loops,vectorization,Gcc,Loops,Vectorization,简而言之,情况是:我一直在尝试编译一个C代码,选项gcc-O2-ftree vectorie-msse4-ftree矢量器verbose=10-march=core2-g-C。对于代码中的某些嵌套For循环构造,gcc会抱怨 未矢量化:循环中的BBs太多 很抱歉,我对编译器和矢量化的理解非常有限 最初的一些搜索在gcc的邮件列表中找到了这个结果,上面说BB是构建块的首字母缩写。通过查看GCC内部文档,我发现GCC使用BB来构造控制流图(CFG) 有人能解释一下循环中的BB是什么意思吗 此外,我无

简而言之,情况是:我一直在尝试编译一个C代码,选项
gcc-O2-ftree vectorie-msse4-ftree矢量器verbose=10-march=core2-g-C
。对于代码中的某些嵌套For循环构造,gcc会抱怨

未矢量化:循环中的BBs太多

很抱歉,我对编译器和矢量化的理解非常有限

最初的一些搜索在gcc的邮件列表中找到了这个结果,上面说BB是构建块的首字母缩写。通过查看GCC内部文档,我发现GCC使用BB来构造控制流图(CFG)

有人能解释一下循环中的BB是什么意思吗

此外,我无法说明有多少BB实际导致gcc矢量化失败?

BB表示“基本块”。有关它们是什么的更多解释,请参阅

我想,如果有太多的基本块,那么控制流就不可能对操作进行矢量化。请参阅),特别是“存在控制流时”部分,以了解矢量化受到影响的原因