[PATCH] D110813: [LoopRotate] Forget SCEV values in RewriteUsesOfClonedInstructions
Bjorn Pettersson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 6 07:52:43 PDT 2021
bjope added a comment.
In D110813#3045467 <https://reviews.llvm.org/D110813#3045467>, @bjope wrote:
> In D110813#3041983 <https://reviews.llvm.org/D110813#3041983>, @fhahn wrote:
>
>> It looks like the crash/differences may be caused by stale entries in the loop disposition cache. Are those caught by the checks in D110385 <https://reviews.llvm.org/D110385>?
>
> Yep. I've downloaded D110385 <https://reviews.llvm.org/D110385>, and used `verify<scalar-evolution>` after loop-rotate instead of `print<scalar-evolution>`. Then I see this:
>
> Cached block disposition of SCEV (trunc i32 %wide to i16) for basic block:
> loop.inner: ; preds = %loop.inner, %loop.inner.ph
> %iv = phi i16 [ %narrow, %loop.inner.ph ], [ %iv.plus, %loop.inner ]
> %iv.promoted = zext i16 %iv to i32
> %gep = getelementptr inbounds [11263 x i32], [11263 x i32]* @array, i32 0, i32 %iv.promoted
> store i32 7, i32* %gep, align 1
> %iv.plus = add i16 %iv, 1
> %cmp = icmp ult i16 %iv.plus, 700
> br i1 %cmp, label %loop.inner, label %loop.outer.latch
> has changed!
> Cached: 2
> Actual: 0
But only for the RUN-lines that uses `print<scalar-evolution>` before loop-rotate. When using `loop(canon-freeze)` I get the same kind of crash in the verifier as when using the print pass.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D110813/new/
https://reviews.llvm.org/D110813
More information about the llvm-commits
mailing list