[llvm] [LoopInterchange] Remove 'S' Scalar Dependencies (PR #119345)

Sjoerd Meijer via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 14 03:22:20 PST 2025


================
@@ -18,7 +18,7 @@
 
 ; CHECK: --- !Missed
 ; CHECK-NEXT: Pass:            loop-interchange
-; CHECK-NEXT: Name:            UnsupportedPHI
+; CHECK-NEXT: Name:            Dependence
----------------
sjoerdmeijer wrote:

Can you elaborate why it is important?
Very simplified, the structure and the order of the checks is as follows:

    canInterchangeLoops() {
        isLegalToInterChangeLoops();
        currentLimitations();
    }

where `currentLimitations()` is responsible for rejecting the `UnsupportedPHI`, and `isLegalToInterChangeLoops()` when dependencies are getting in the way.

Because we reject S dependencies and because of this order of checks, this case and the one below will now first be rejected for dependencies reasons. I might be missing something, but I don't see how it matters.

https://github.com/llvm/llvm-project/pull/119345


More information about the llvm-commits mailing list