[PATCH] D118102: [LoopInterchange] Detect output dependency of a store instruction with itself

Congzhe Cao via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 10 20:01:41 PST 2022


congzhe added a comment.

According to our discussion, I've updated the test cases and retitled this patch to "Detect output dependency of a store instruction with itself". I revised three test files to make dependence analysis work more reasonably: `lcssa-preheader.ll`, `perserve-lcssa.ll`, `pr45743-move-from-inner-preheader.ll`.

I removed the legacy test case `lcssa_08()` in `lcssa-preheader.ll` since it says we should not move the instruction `%wide.trip.count = zext i32 %m to i64` to BB `outer.header` otherwise lcssa would break. The original patch (https://reviews.llvm.org/D75943) claimed it should be moved into `outer.preheader`, which was the initial behavior of this test.

In the early days our capability to deal with lcssa phis was limited. More recently after this patch https://reviews.llvm.org/rG8393b9fd1f36d9273fa0720872e3996495aacc1c, we do move %wide.trip.count = zext i32 %m to i64` to BB `outer.header`, because we've dealt with lcssa phis more appropriately. This to some extent invalidates the original test `lcssa_08()`, hence I removed it in this patch.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118102/new/

https://reviews.llvm.org/D118102



More information about the llvm-commits mailing list