【问题标题】:LLVM indvars passLLVM indvars 传递
【发布时间】:2014-11-16 23:29:13
【问题描述】:

我在 LLVM 中使用 -indvars 传递。它说这是使循环计数器从可能的0开始。我将它用于一个简单的循环,但它没有使循环计数从 0 开始。知道为什么会这样吗?

循环是

for(i=30;i<90;++i){
        a1[i]=i*2;
        a1[i]=a1[i]+1;;
}

【问题讨论】:

  • @MarcoA。谢谢,循环旋转的建议仍然不起作用。但是我发现旧的 indvar 简化通行证并包含在我的源代码中并让它工作。我不知道他们为什么首先删除了如此重要的通行证
  • 好的,您应该将其添加为答案并将其标记为已接受。

标签: llvm llvm-clang llvm-ir canonicalization


【解决方案1】:

经过一番挖掘,我发现-indvars pass 现在不规范化归纳变量,因为现在大多数其他传递都可以在不需要规范循环的情况下工作。

但是我的 pass 要求循环采用规范形式,所以我发现旧的归纳变量简化 pass 并明确包含在我的文件中。

如果有人有兴趣here是旧通行证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 2012-03-09
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多