[llvm] [LoopFusion] Extending SIV to handle separate loops (PR #146383)

via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 23 21:59:58 PDT 2025


================
@@ -1371,6 +1373,33 @@ struct LoopFuser {
                           << "\n");
       }
 #endif
+      unsigned Levels = DepResult->getLevels();
+      unsigned SameSDLevels = DepResult->getSameSDLevels();
+      unsigned CurLoopLevel = FC0.L->getLoopDepth();
+
+      bool OuterEqDir = true;
+      for (unsigned II = 1; II <= std::min(CurLoopLevel - 1, Levels); ++II) {
+        unsigned Direction = DepResult->getDirection(II, II > Levels);
+        if (!(Direction & Dependence::DVEntry::EQ)) {
----------------
CongzheUalberta wrote:

Would it be more readable if it is changed to the following?
```if (Direction != Dependence::DVEntry::EQ) ```

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


More information about the llvm-commits mailing list