[llvm] [DA] runtime predicates for delinearization bounds checks (PR #170713)

Ryotaro Kasuga via llvm-commits llvm-commits at lists.llvm.org
Sun Dec 7 16:51:09 PST 2025


================
@@ -46,9 +46,14 @@ define void @banerjee0(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
 ;
 ; DELIN-LABEL: 'banerjee0'
 ; DELIN-NEXT:  Src: store i64 0, ptr %arrayidx, align 8 --> Dst: store i64 0, ptr %arrayidx, align 8
-; DELIN-NEXT:    da analyze - none!
+; DELIN-NEXT:    da analyze - consistent output [0 0]!
+; DELIN-NEXT:    Runtime Assumptions:
+; DELIN-NEXT:    Compare predicate: {1,+,1}<nuw><nsw><%for.body3> slt) 10
+; DELIN-NEXT:    Compare predicate: {1,+,1}<nuw><nsw><%for.body3> slt) 10
----------------
kasuga-fj wrote:

Not duplication. `{1,+,1}<nuw><nsw><%for.body3> slt) 10` will never be satisfied because the BTC of `for.body3` is 10. I think such predication should not be added.

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


More information about the llvm-commits mailing list