gpt4 book ai didi

loops - Clang: 怎么看loop flattening pass的效果?

转载 作者:行者123 更新时间:2023-12-04 14:52:06 26 4
gpt4 key购买 nike

Clang 有 loop flattening pass从嵌套循环转换:

 for (int i = 0; i < N; ++i)
for (int j = 0; j < M; ++j)
f(A[i*M+j]);

进入一个循环:

 for (int i = 0; i < (N*M); ++i)
f(A[i]);

但是,我找不到如何启用此循环展平过程。我尝试使用 -Os -S,但是,clang 仍然会生成嵌套循环。

问题:如何看loop flattening pass的效果?使用哪些选项?

更新。我在 Windows 上使用 clang 版本 12.0.0。

最佳答案

LoopF​​latten 自 12.0.0 以来已合并到 LLVM 中。确保您使用的是更新版本。

其次,它在转换过程中,您不能直接使用 clang 选项进行编译。使用 opt 使用 LoopF​​latten 使用传递代码中指定的选项进行转换传递。如果您不熟悉opt,请引用这里:opt - LLVM optimizer

关于loops - Clang: 怎么看loop flattening pass的效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68911458/

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