Skip to content

Commit 795f2f8

Browse files
committed
address review comments
1 parent c7dc3af commit 795f2f8

File tree

2 files changed

+15
-44
lines changed

2 files changed

+15
-44
lines changed

llvm/test/Analysis/DependenceAnalysis/Invariant.ll

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
; RUN: | FileCheck %s
44

55
; XFAIL: *
6-
; Currently fails since delinearization doesn't work as expected.
6+
; Currently fails since delinearization doesn't work as expected, due to the
7+
; inconsistency in the estimated array sizes between `rr[i][j]` and `rr[j][j]`.
8+
; The latter is now regarded as an access to a 1D array.
79

810
; Test for a bug, which caused an assert when an invalid
911
; SCEVAddRecExpr is created in addToCoefficient.

llvm/test/Transforms/LoopInterchange/outer-dependency-lte.ll

Lines changed: 12 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
2-
; RUN: opt < %s -passes=loop-interchange \
3-
; RUN: -verify-dom-info -verify-loop-info -verify-loop-lcssa -S 2>&1 | FileCheck %s
1+
; RUN: opt < %s -passes=loop-interchange -pass-remarks-missed='loop-interchange' -pass-remarks-output=%t \
2+
; RUN: -verify-dom-info -verify-loop-info -verify-loop-lcssa
3+
; RUN: FileCheck --input-file=%t %s
44

55
;; The original code:
66
;;
@@ -17,49 +17,18 @@
1717
;; We need to treat this as `*`, not `<`. See issue #123920 for details.
1818
;; In conclusion, we must not interchange the loops.
1919

20+
; CHECK: --- !Missed
21+
; CHECK-NEXT: Pass: loop-interchange
22+
; CHECK-NEXT: Name: Dependence
23+
; CHECK-NEXT: Function: f
24+
; CHECK-NEXT: Args:
25+
; CHECK-NEXT: - String: All loops have dependencies in all directions.
26+
; CHECK-NEXT: ...
27+
28+
2029
@a = dso_local global [16 x [16 x [16 x i32]]] zeroinitializer, align 4
2130

2231
define dso_local void @f() {
23-
; CHECK-LABEL: define dso_local void @f() {
24-
; CHECK-NEXT: [[ENTRY:.*]]:
25-
; CHECK-NEXT: br label %[[FOR_COND1_PREHEADER:.*]]
26-
; CHECK: [[FOR_COND1_PREHEADER]]:
27-
; CHECK-NEXT: [[I_039:%.*]] = phi i32 [ 0, %[[ENTRY]] ], [ [[INC26:%.*]], %[[FOR_COND_CLEANUP3:.*]] ]
28-
; CHECK-NEXT: [[SUB:%.*]] = add nuw nsw i32 [[I_039]], 3
29-
; CHECK-NEXT: [[IDXPROM:%.*]] = zext nneg i32 [[SUB]] to i64
30-
; CHECK-NEXT: [[MUL:%.*]] = shl nuw nsw i32 [[I_039]], 1
31-
; CHECK-NEXT: [[IDXPROM13:%.*]] = zext nneg i32 [[MUL]] to i64
32-
; CHECK-NEXT: br label %[[FOR_COND5_PREHEADER:.*]]
33-
; CHECK: [[FOR_COND_CLEANUP:.*]]:
34-
; CHECK-NEXT: ret void
35-
; CHECK: [[FOR_COND5_PREHEADER]]:
36-
; CHECK-NEXT: [[J_038:%.*]] = phi i32 [ 1, %[[FOR_COND1_PREHEADER]] ], [ [[INC23:%.*]], %[[FOR_COND_CLEANUP7:.*]] ]
37-
; CHECK-NEXT: [[IDXPROM11:%.*]] = zext nneg i32 [[J_038]] to i64
38-
; CHECK-NEXT: [[SUB18:%.*]] = add nsw i32 [[J_038]], -1
39-
; CHECK-NEXT: [[IDXPROM19:%.*]] = sext i32 [[SUB18]] to i64
40-
; CHECK-NEXT: br label %[[FOR_BODY8:.*]]
41-
; CHECK: [[FOR_COND_CLEANUP3]]:
42-
; CHECK-NEXT: [[INC26]] = add nuw nsw i32 [[I_039]], 1
43-
; CHECK-NEXT: [[CMP:%.*]] = icmp samesign ult i32 [[I_039]], 3
44-
; CHECK-NEXT: br i1 [[CMP]], label %[[FOR_COND1_PREHEADER]], label %[[FOR_COND_CLEANUP]]
45-
; CHECK: [[FOR_COND_CLEANUP7]]:
46-
; CHECK-NEXT: [[INC23]] = add nuw nsw i32 [[J_038]], 1
47-
; CHECK-NEXT: [[CMP2:%.*]] = icmp samesign ult i32 [[J_038]], 7
48-
; CHECK-NEXT: br i1 [[CMP2]], label %[[FOR_COND5_PREHEADER]], label %[[FOR_COND_CLEANUP3]]
49-
; CHECK: [[FOR_BODY8]]:
50-
; CHECK-NEXT: [[K_037:%.*]] = phi i32 [ 1, %[[FOR_COND5_PREHEADER]] ], [ [[ADD15:%.*]], %[[FOR_BODY8]] ]
51-
; CHECK-NEXT: [[IDXPROM9:%.*]] = zext nneg i32 [[K_037]] to i64
52-
; CHECK-NEXT: [[ARRAYIDX12:%.*]] = getelementptr inbounds nuw [16 x [16 x [16 x i32]]], ptr @a, i64 0, i64 [[IDXPROM]], i64 [[IDXPROM9]], i64 [[IDXPROM11]]
53-
; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[ARRAYIDX12]], align 4
54-
; CHECK-NEXT: [[ADD15]] = add nuw nsw i32 [[K_037]], 1
55-
; CHECK-NEXT: [[IDXPROM16:%.*]] = zext nneg i32 [[ADD15]] to i64
56-
; CHECK-NEXT: [[ARRAYIDX20:%.*]] = getelementptr inbounds [16 x [16 x [16 x i32]]], ptr @a, i64 0, i64 [[IDXPROM13]], i64 [[IDXPROM16]], i64 [[IDXPROM19]]
57-
; CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr [[ARRAYIDX20]], align 4
58-
; CHECK-NEXT: [[SUB21:%.*]] = sub nsw i32 [[TMP1]], [[TMP0]]
59-
; CHECK-NEXT: store i32 [[SUB21]], ptr [[ARRAYIDX20]], align 4
60-
; CHECK-NEXT: [[CMP6:%.*]] = icmp samesign ult i32 [[K_037]], 7
61-
; CHECK-NEXT: br i1 [[CMP6]], label %[[FOR_BODY8]], label %[[FOR_COND_CLEANUP7]]
62-
;
6332
entry:
6433
br label %for.cond1.preheader
6534

0 commit comments

Comments
 (0)