Skip to content

Commit 4b9f1c7

Browse files
committed
test: improve comment, slightly simplify
1 parent 9566f02 commit 4b9f1c7

File tree

1 file changed

+61
-49
lines changed

1 file changed

+61
-49
lines changed

llvm/test/DebugInfo/KeyInstructions/Generic/loop-unswitch.ll

Lines changed: 61 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,29 @@
22
; RUN: opt %s -S --passes="loop-mssa(simple-loop-unswitch<nontrivial>)" -o - \
33
; RUN: | FileCheck %s
44

5-
;; The important thing here is that the instructions duplicated from
6-
;; LOOP_HEADER into ENTRY, and those duplicated from LOOP_LATCH into
7-
;; LOOP_LATCH_US, get remapped atom numbers.
5+
;; Unswitch from:
6+
;; +- noclobber -+
7+
;; | v
8+
;; entry -> loop.header loop.latch -> exit.
9+
;; ^ | ^ |
10+
;; | +- clobber ---+ |
11+
;; +--------------------------------+
12+
;;
13+
;; To (unswitched loop unconditionally branches to noclobber.us):
14+
;; +---------------------------------------------+
15+
;; V |
16+
;; +- entry.split.us -> loop.header.us -> noclobber.us -> loop.latch.us -> exit.split.us -+
17+
;; | |
18+
;; entry |
19+
;; | v
20+
;; +- entry.split -> loop.header -> noclobber -> loop.latch -> exit.split --------------> exit.
21+
;; ^ | ^ |
22+
;; | +--> clobber -----+ |
23+
;; +------------------------------------+
24+
;;
25+
;; Check the duplicated instructions get remapped source atoms. Note some
26+
;; instructions get duplicated from loop.header into entry too.
827

9-
define i32 @partial_unswitch_true_successor_hoist_invariant(ptr %ptr, i32 %N) !dbg !5 {
1028
; CHECK-LABEL: define i32 @partial_unswitch_true_successor_hoist_invariant(
1129
; CHECK-SAME: ptr [[PTR:%.*]], i32 [[N:%.*]]) !dbg [[DBG5:![0-9]+]] {
1230
; CHECK-NEXT: [[ENTRY:.*:]]
@@ -48,7 +66,8 @@ define i32 @partial_unswitch_true_successor_hoist_invariant(ptr %ptr, i32 %N) !d
4866
; CHECK-NEXT: br label %[[EXIT]], !dbg [[DBG33:![0-9]+]]
4967
; CHECK: [[EXIT]]:
5068
; CHECK-NEXT: ret i32 10, !dbg [[DBG33]]
51-
;
69+
70+
define i32 @partial_unswitch_true_successor_hoist_invariant(ptr %ptr, i32 %N) !dbg !5 {
5271
entry:
5372
br label %loop.header, !dbg !8
5473

@@ -89,49 +108,42 @@ declare void @clobber()
89108
!5 = distinct !DISubprogram(name: "partial_unswitch_true_successor_hoist_invariant", linkageName: "partial_unswitch_true_successor_hoist_invariant", scope: null, file: !1, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0)
90109
!6 = !DISubroutineType(types: !7)
91110
!7 = !{}
92-
!8 = !DILocation(line: 1, column: 1, scope: !5, atomGroup: 1, atomRank: 1)
93-
!9 = !DILocation(line: 2, column: 1, scope: !5, atomGroup: 2, atomRank: 1)
94-
!10 = !DILocation(line: 3, column: 1, scope: !5, atomGroup: 3, atomRank: 1)
95-
!11 = !DILocation(line: 4, column: 1, scope: !5, atomGroup: 4, atomRank: 1)
96-
!12 = !DILocation(line: 5, column: 1, scope: !5, atomGroup: 5, atomRank: 1)
97-
!13 = !DILocation(line: 6, column: 1, scope: !5, atomGroup: 6, atomRank: 1)
98-
!14 = !DILocation(line: 7, column: 1, scope: !5, atomGroup: 7, atomRank: 1)
99-
!15 = !DILocation(line: 8, column: 1, scope: !5, atomGroup: 8, atomRank: 1)
100-
!16 = !DILocation(line: 9, column: 1, scope: !5, atomGroup: 9, atomRank: 1)
101-
!17 = !DILocation(line: 10, column: 1, scope: !5, atomGroup: 10, atomRank: 1)
102-
!18 = !DILocation(line: 11, column: 1, scope: !5, atomGroup: 11, atomRank: 1)
103-
!19 = !DILocation(line: 12, column: 1, scope: !5, atomGroup: 12, atomRank: 1)
104-
!20 = !DILocation(line: 13, column: 1, scope: !5, atomGroup: 13, atomRank: 1)
111+
!8 = !DILocation(line: 1, scope: !5, atomGroup: 1, atomRank: 1)
112+
!9 = !DILocation(line: 2, scope: !5, atomGroup: 2, atomRank: 1)
113+
!10 = !DILocation(line: 3, scope: !5, atomGroup: 3, atomRank: 1)
114+
!11 = !DILocation(line: 4, scope: !5, atomGroup: 4, atomRank: 1)
115+
!12 = !DILocation(line: 5, scope: !5, atomGroup: 5, atomRank: 1)
116+
!13 = !DILocation(line: 6, scope: !5, atomGroup: 6, atomRank: 1)
117+
!14 = !DILocation(line: 7, scope: !5, atomGroup: 7, atomRank: 1)
118+
!15 = !DILocation(line: 8, scope: !5, atomGroup: 8, atomRank: 1)
119+
!16 = !DILocation(line: 9, scope: !5, atomGroup: 9, atomRank: 1)
120+
!17 = !DILocation(line: 10, scope: !5, atomGroup: 10, atomRank: 1)
121+
!18 = !DILocation(line: 11, scope: !5, atomGroup: 11, atomRank: 1)
122+
!19 = !DILocation(line: 12, scope: !5, atomGroup: 12, atomRank: 1)
123+
!20 = !DILocation(line: 13, scope: !5, atomGroup: 13, atomRank: 1)
105124
;.
106-
; CHECK: [[META0:![0-9]+]] = distinct !DICompileUnit(language: DW_LANG_C, file: [[META1:![0-9]+]], producer: "debugify", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug)
107-
; CHECK: [[META1]] = !DIFile(filename: "test.ll", directory: {{.*}})
108-
; CHECK: [[DBG5]] = distinct !DISubprogram(name: "partial_unswitch_true_successor_hoist_invariant", linkageName: "partial_unswitch_true_successor_hoist_invariant", scope: null, file: [[META1]], line: 1, type: [[META6:![0-9]+]], scopeLine: 1, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: [[META0]])
109-
; CHECK: [[META6]] = !DISubroutineType(types: [[META7:![0-9]+]])
110-
; CHECK: [[META7]] = !{}
111-
; CHECK: [[DBG8]] = !DILocation(line: 3, column: 1, scope: [[DBG5]], atomGroup: 25, atomRank: 1)
112-
; CHECK: [[DBG9]] = !DILocation(line: 4, column: 1, scope: [[DBG5]], atomGroup: 26, atomRank: 1)
113-
; CHECK: [[DBG10]] = !DILocation(line: 5, column: 1, scope: [[DBG5]], atomGroup: 27, atomRank: 1)
114-
; CHECK: [[DBG11]] = !DILocation(line: 1, column: 1, scope: [[DBG5]], atomGroup: 14, atomRank: 1)
115-
; CHECK: [[DBG12]] = !DILocation(line: 2, column: 1, scope: [[DBG5]], atomGroup: 15, atomRank: 1)
116-
; CHECK: [[DBG13]] = !DILocation(line: 6, column: 1, scope: [[DBG5]], atomGroup: 19, atomRank: 1)
117-
; CHECK: [[DBG14]] = !DILocation(line: 7, column: 1, scope: [[DBG5]], atomGroup: 20, atomRank: 1)
118-
; CHECK: [[DBG15]] = !DILocation(line: 10, column: 1, scope: [[DBG5]], atomGroup: 21, atomRank: 1)
119-
; CHECK: [[DBG16]] = !DILocation(line: 11, column: 1, scope: [[DBG5]], atomGroup: 22, atomRank: 1)
120-
; CHECK: [[DBG17]] = !DILocation(line: 12, column: 1, scope: [[DBG5]], atomGroup: 23, atomRank: 1)
121-
; CHECK: [[DBG18]] = !DILocation(line: 13, column: 1, scope: [[DBG5]], atomGroup: 24, atomRank: 1)
122-
; CHECK: [[DBG19]] = !DILocation(line: 1, column: 1, scope: [[DBG5]], atomGroup: 1, atomRank: 1)
123-
; CHECK: [[DBG20]] = !DILocation(line: 2, column: 1, scope: [[DBG5]], atomGroup: 2, atomRank: 1)
124-
; CHECK: [[DBG21]] = !DILocation(line: 3, column: 1, scope: [[DBG5]], atomGroup: 3, atomRank: 1)
125-
; CHECK: [[DBG22]] = !DILocation(line: 4, column: 1, scope: [[DBG5]], atomGroup: 4, atomRank: 1)
126-
; CHECK: [[DBG23]] = !DILocation(line: 5, column: 1, scope: [[DBG5]], atomGroup: 5, atomRank: 1)
127-
; CHECK: [[DBG24]] = !DILocation(line: 6, column: 1, scope: [[DBG5]], atomGroup: 6, atomRank: 1)
128-
; CHECK: [[DBG25]] = !DILocation(line: 7, column: 1, scope: [[DBG5]], atomGroup: 7, atomRank: 1)
129-
; CHECK: [[DBG26]] = !DILocation(line: 8, column: 1, scope: [[DBG5]], atomGroup: 8, atomRank: 1)
130-
; CHECK: [[DBG27]] = !DILocation(line: 9, column: 1, scope: [[DBG5]], atomGroup: 9, atomRank: 1)
131-
; CHECK: [[DBG28]] = !DILocation(line: 10, column: 1, scope: [[DBG5]], atomGroup: 10, atomRank: 1)
132-
; CHECK: [[DBG29]] = !DILocation(line: 11, column: 1, scope: [[DBG5]], atomGroup: 11, atomRank: 1)
133-
; CHECK: [[DBG30]] = !DILocation(line: 12, column: 1, scope: [[DBG5]], atomGroup: 12, atomRank: 1)
134-
; CHECK: [[LOOP31]] = distinct !{[[LOOP31]], [[META32:![0-9]+]]}
135-
; CHECK: [[META32]] = !{!"llvm.loop.unswitch.partial.disable"}
136-
; CHECK: [[DBG33]] = !DILocation(line: 13, column: 1, scope: [[DBG5]], atomGroup: 13, atomRank: 1)
125+
; CHECK: [[DBG8]] = !DILocation(line: 3{{.*}}, atomGroup: 25, atomRank: 1)
126+
; CHECK: [[DBG9]] = !DILocation(line: 4{{.*}}, atomGroup: 26, atomRank: 1)
127+
; CHECK: [[DBG10]] = !DILocation(line: 5{{.*}}, atomGroup: 27, atomRank: 1)
128+
; CHECK: [[DBG11]] = !DILocation(line: 1{{.*}}, atomGroup: 14, atomRank: 1)
129+
; CHECK: [[DBG12]] = !DILocation(line: 2{{.*}}, atomGroup: 15, atomRank: 1)
130+
; CHECK: [[DBG13]] = !DILocation(line: 6{{.*}}, atomGroup: 19, atomRank: 1)
131+
; CHECK: [[DBG14]] = !DILocation(line: 7{{.*}}, atomGroup: 20, atomRank: 1)
132+
; CHECK: [[DBG15]] = !DILocation(line: 10{{.*}}, atomGroup: 21, atomRank: 1)
133+
; CHECK: [[DBG16]] = !DILocation(line: 11{{.*}}, atomGroup: 22, atomRank: 1)
134+
; CHECK: [[DBG17]] = !DILocation(line: 12{{.*}}, atomGroup: 23, atomRank: 1)
135+
; CHECK: [[DBG18]] = !DILocation(line: 13{{.*}}, atomGroup: 24, atomRank: 1)
136+
; CHECK: [[DBG19]] = !DILocation(line: 1{{.*}}, atomGroup: 1, atomRank: 1)
137+
; CHECK: [[DBG20]] = !DILocation(line: 2{{.*}}, atomGroup: 2, atomRank: 1)
138+
; CHECK: [[DBG21]] = !DILocation(line: 3{{.*}}, atomGroup: 3, atomRank: 1)
139+
; CHECK: [[DBG22]] = !DILocation(line: 4{{.*}}, atomGroup: 4, atomRank: 1)
140+
; CHECK: [[DBG23]] = !DILocation(line: 5{{.*}}, atomGroup: 5, atomRank: 1)
141+
; CHECK: [[DBG24]] = !DILocation(line: 6{{.*}}, atomGroup: 6, atomRank: 1)
142+
; CHECK: [[DBG25]] = !DILocation(line: 7{{.*}}, atomGroup: 7, atomRank: 1)
143+
; CHECK: [[DBG26]] = !DILocation(line: 8{{.*}}, atomGroup: 8, atomRank: 1)
144+
; CHECK: [[DBG27]] = !DILocation(line: 9{{.*}}, atomGroup: 9, atomRank: 1)
145+
; CHECK: [[DBG28]] = !DILocation(line: 10{{.*}}, atomGroup: 10, atomRank: 1)
146+
; CHECK: [[DBG29]] = !DILocation(line: 11{{.*}}, atomGroup: 11, atomRank: 1)
147+
; CHECK: [[DBG30]] = !DILocation(line: 12{{.*}}, atomGroup: 12, atomRank: 1)
148+
; CHECK: [[DBG33]] = !DILocation(line: 13{{.*}}, atomGroup: 13, atomRank: 1)
137149
;.

0 commit comments

Comments
 (0)