[llvm] [DependenceAnalysis] Extending SIV to handle fusable loops (PR #128782)

Alireza Torabian via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 6 09:40:09 PDT 2025


================
@@ -542,10 +619,23 @@ namespace llvm {
     ///     e - 5
     ///     f - 6
     ///     g - 7 = MaxLevels
-    void establishNestingLevels(const Instruction *Src,
-                                const Instruction *Dst);
-
-    unsigned CommonLevels, SrcLevels, MaxLevels;
+    /// SeparateLevels counts the number of levels after common levels that are
+    /// not common but are similar, meaning that they have the same tripcount
+    /// and depth. Assume that in this code fragment, levels c and e are
+    /// similar. In this case only the loop nests at the next level after
+    /// common levels are similar, and SeparateLevel is set to 1.
+    /// If there are similar loop nests, we could use the APIs with considering
+    /// them as fused loops. In that case the level numbers for the previous
+    /// code look like
+    ///     a   - 1
+    ///     b   - 2
+    ///     c,e - 3 = CommonLevels
+    ///     d   - 4 = SrcLevels
+    ///     f   - 5
+    ///     g   - 6 = MaxLevels
----------------
1997alireza wrote:

I ran llvm-test-suit and got no error. Could you please double check the tests? If you still have test failures let me know the exact steps to run and get the error please. Thanks.

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


More information about the llvm-commits mailing list