[llvm] [MachinePipeliner] Use AliasAnalysis properly when analyzing loop-carried dependencies (PR #136691)
Ryotaro Kasuga via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 22 05:21:25 PDT 2025
================
@@ -0,0 +1,72 @@
+# RUN: llc -mtriple=hexagon -run-pass pipeliner -debug-only=pipeliner %s -o /dev/null 2>&1 | FileCheck %s
+# REQUIRES: asserts
+
+# Test that pipeliner correctly detects the loop-carried dependency between the
+# load and the store, which is indicated by `Ord` dependency from SU(2) to
+# SU(4). Note that there is no dependency within a single iteration.
+
+# CHECK: SU(2): %7:intregs = L2_loadri_io %5:intregs, 0 :: (load (s32) from %ir.ptr.load)
+# CHECK-NEXT: # preds left
+# CHECK-NEXT: # succs left
+# CHECK-NEXT: # rdefs left
+# CHECK-NEXT: Latency
+# CHECK-NEXT: Depth
+# CHECK-NEXT: Height
+# CHECK-NEXT: Predecessors:
+# CHECK-NEXT: SU(0): Data Latency=0 Reg=%5
+# CHECK-NEXT: Successors:
+# CHECK-DAG: SU(3): Data Latency=2 Reg=%7
+# CHECK-DAG: SU(4): Ord Latency=1 Barrier
----------------
kasuga-fj wrote:
This is an example of a dependency that has been missed.
https://github.com/llvm/llvm-project/pull/136691
More information about the llvm-commits
mailing list