gpt4 book ai didi

gcc - 循环中的 BB 太多,无法矢量化是什么意思?

转载 作者:行者123 更新时间:2023-12-02 04:23:05 24 4
gpt4 key购买 nike

简而言之,情况是这样的:我一直在尝试使用选项编译C代码gcc -O2 -ftree-vectorize -msse4 -ftree-vectorizer-verbose=10 -march=core2 -g -c 。对于代码中的某些嵌套 for 循环结构,gcc 提示

not vectorized: too many BBs in loop.

对于我对编译器和矢量化的理解非常有限,我深表歉意。

一些初步搜索在 gcc 的邮件列表中为我提供了这个结果,其中显示 BB 是构建 block 的缩写。从那里检查 GCC 内部文档,我发现 gcc 使用 BB 来构建控制流图(CFG)。

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

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

最佳答案

BB 表示“基本 block ”。请参阅http://en.wikipedia.org/wiki/Basic_block了解它们是什么的更多解释。

我想如果有太多的基本 block ,控制流就会导致无法对操作进行矢量化。请参阅http://en.wikipedia.org/wiki/Vectorization_(parallel_computing ),特别是“存在控制流”部分,了解矢量化受到影响的原因。

关于gcc - 循环中的 BB 太多,无法矢量化是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5918545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com