Skip to content

Commit e2519b6

Browse files
committed
[VPlan] Print incoming VPBB for Phi VPIRInstruction (NFC).
Print the incoming block for Phi VPIRInstructions, for better debugging & testing.
1 parent 28064bf commit e2519b6

File tree

7 files changed

+30
-28
lines changed

7 files changed

+30
-28
lines changed

llvm/lib/Transforms/Vectorize/VPlan.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,7 @@ class VPBlockBase {
643643
virtual void dropAllReferences(VPValue *NewValue) = 0;
644644

645645
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
646-
void printAsOperand(raw_ostream &OS, bool PrintType) const {
646+
void printAsOperand(raw_ostream &OS, bool PrintType = false) const {
647647
OS << getName();
648648
}
649649

llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -859,7 +859,9 @@ void VPIRInstruction::print(raw_ostream &O, const Twine &Indent,
859859
if (getNumOperands() != 0) {
860860
assert(getNumOperands() == 1 && "can have at most 1 operand");
861861
O << " (extra operand: ";
862-
printOperands(O, SlotTracker);
862+
getOperand(0)->printAsOperand(O, SlotTracker);
863+
O << " from ";
864+
getParent()->getPredecessors()[0]->printAsOperand(O);
863865
O << ")";
864866
}
865867
}

llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-intrinsics-reduction.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ define i32 @reduction(ptr %a, i64 %n, i32 %start) {
6060
; IF-EVL-OUTLOOP-NEXT: Successor(s): ir-bb<for.end>, scalar.ph
6161
; IF-EVL-OUTLOOP-EMPTY:
6262
; IF-EVL-OUTLOOP-NEXT: ir-bb<for.end>:
63-
; IF-EVL-OUTLOOP-NEXT: IR %add.lcssa = phi i32 [ %add, %for.body ] (extra operand: vp<[[RDX_EX]]>)
63+
; IF-EVL-OUTLOOP-NEXT: IR %add.lcssa = phi i32 [ %add, %for.body ] (extra operand: vp<[[RDX_EX]]> from middle.block)
6464
; IF-EVL-OUTLOOP-NEXT: No successors
6565
; IF-EVL-OUTLOOP-EMPTY:
6666
; IF-EVL-OUTLOOP-NEXT: scalar.ph:
@@ -110,7 +110,7 @@ define i32 @reduction(ptr %a, i64 %n, i32 %start) {
110110
; IF-EVL-INLOOP-NEXT: Successor(s): ir-bb<for.end>, scalar.ph
111111
; IF-EVL-INLOOP-EMPTY:
112112
; IF-EVL-INLOOP-NEXT: ir-bb<for.end>:
113-
; IF-EVL-INLOOP-NEXT: IR %add.lcssa = phi i32 [ %add, %for.body ] (extra operand: vp<[[RDX_EX]]>)
113+
; IF-EVL-INLOOP-NEXT: IR %add.lcssa = phi i32 [ %add, %for.body ] (extra operand: vp<[[RDX_EX]]> from middle.block)
114114
; IF-EVL-INLOOP-NEXT: No successors
115115
; IF-EVL-INLOOP-EMPTY:
116116
; IF-EVL-INLOOP-NEXT: scalar.ph:
@@ -156,7 +156,7 @@ define i32 @reduction(ptr %a, i64 %n, i32 %start) {
156156
; NO-VP-OUTLOOP-NEXT: Successor(s): ir-bb<for.end>, scalar.ph
157157
; NO-VP-OUTLOOP-EMPTY:
158158
; NO-VP-OUTLOOP-NEXT: ir-bb<for.end>:
159-
; NO-VP-OUTLOOP-NEXT: IR %add.lcssa = phi i32 [ %add, %for.body ] (extra operand: vp<[[RDX_EX]]>)
159+
; NO-VP-OUTLOOP-NEXT: IR %add.lcssa = phi i32 [ %add, %for.body ] (extra operand: vp<[[RDX_EX]]> from middle.block)
160160
; NO-VP-OUTLOOP-NEXT: No successors
161161
; NO-VP-OUTLOOP-EMPTY:
162162
; NO-VP-OUTLOOP-NEXT: scalar.ph:
@@ -202,7 +202,7 @@ define i32 @reduction(ptr %a, i64 %n, i32 %start) {
202202
; NO-VP-INLOOP-NEXT: Successor(s): ir-bb<for.end>, scalar.ph
203203
; NO-VP-INLOOP-EMPTY:
204204
; NO-VP-INLOOP-NEXT: ir-bb<for.end>:
205-
; NO-VP-INLOOP-NEXT: IR %add.lcssa = phi i32 [ %add, %for.body ] (extra operand: vp<[[RDX_EX]]>)
205+
; NO-VP-INLOOP-NEXT: IR %add.lcssa = phi i32 [ %add, %for.body ] (extra operand: vp<[[RDX_EX]]> from middle.block)
206206
; NO-VP-INLOOP-NEXT: No successors
207207
; NO-VP-INLOOP-EMPTY:
208208
; NO-VP-INLOOP-NEXT: scalar.ph:

llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains-vplan.ll

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ define void @test_chained_first_order_recurrences_1(ptr %ptr) {
4848
; CHECK-NEXT: Successor(s): ir-bb<loop>
4949
; CHECK-EMPTY:
5050
; CHECK-NEXT: ir-bb<loop>:
51-
; CHECK-NEXT: IR %for.1 = phi i16 [ 22, %entry ], [ %for.1.next, %loop ] (extra operand: vp<[[RESUME_1_P]]>)
52-
; CHECK-NEXT: IR %for.2 = phi i16 [ 33, %entry ], [ %for.1, %loop ] (extra operand: vp<[[RESUME_2_P]]>.1)
51+
; CHECK-NEXT: IR %for.1 = phi i16 [ 22, %entry ], [ %for.1.next, %loop ] (extra operand: vp<[[RESUME_1_P]]> from scalar.ph)
52+
; CHECK-NEXT: IR %for.2 = phi i16 [ 33, %entry ], [ %for.1, %loop ] (extra operand: vp<[[RESUME_2_P]]>.1 from scalar.ph)
5353
; CHECK-NEXT: IR %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ]
5454
; CHECK: IR %exitcond.not = icmp eq i64 %iv.next, 1000
5555
; CHECK-NEXT: No successors
@@ -125,9 +125,9 @@ define void @test_chained_first_order_recurrences_3(ptr %ptr) {
125125
; CHECK-NEXT: Successor(s): ir-bb<loop>
126126
; CHECK-EMPTY:
127127
; CHECK-NEXT: ir-bb<loop>:
128-
; CHECK-NEXT: IR %for.1 = phi i16 [ 22, %entry ], [ %for.1.next, %loop ] (extra operand: vp<[[RESUME_1_P]]>)
129-
; CHECK-NEXT: IR %for.2 = phi i16 [ 33, %entry ], [ %for.1, %loop ] (extra operand: vp<[[RESUME_2_P]]>.1)
130-
; CHECK-NEXT: IR %for.3 = phi i16 [ 33, %entry ], [ %for.2, %loop ] (extra operand: vp<[[RESUME_3_P]]>.2)
128+
; CHECK-NEXT: IR %for.1 = phi i16 [ 22, %entry ], [ %for.1.next, %loop ] (extra operand: vp<[[RESUME_1_P]]> from scalar.ph)
129+
; CHECK-NEXT: IR %for.2 = phi i16 [ 33, %entry ], [ %for.1, %loop ] (extra operand: vp<[[RESUME_2_P]]>.1 from scalar.ph)
130+
; CHECK-NEXT: IR %for.3 = phi i16 [ 33, %entry ], [ %for.2, %loop ] (extra operand: vp<[[RESUME_3_P]]>.2 from scalar.ph)
131131
; CHECK-NEXT: IR %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ]
132132
; CHECK: IR %exitcond.not = icmp eq i64 %iv.next, 1000
133133
; CHECK-NEXT: No successors
@@ -205,8 +205,8 @@ define i32 @test_chained_first_order_recurrences_4(ptr %base, i64 %x) {
205205
; CHECK-EMPTY:
206206
; CHECK-NEXT: ir-bb<loop>:
207207
; CHECK-NEXT: IR %iv = phi i64 [ %iv.next, %loop ], [ 0, %entry ]
208-
; CHECK-NEXT: IR %for.x = phi i64 [ %for.x.next, %loop ], [ 0, %entry ] (extra operand: vp<[[RESUME_X]]>)
209-
; CHECK-NEXT: IR %for.y = phi i32 [ %for.x.prev, %loop ], [ 0, %entry ] (extra operand: vp<[[RESUME_Y]]>.1)
208+
; CHECK-NEXT: IR %for.x = phi i64 [ %for.x.next, %loop ], [ 0, %entry ] (extra operand: vp<[[RESUME_X]]> from scalar.ph)
209+
; CHECK-NEXT: IR %for.y = phi i32 [ %for.x.prev, %loop ], [ 0, %entry ] (extra operand: vp<[[RESUME_Y]]>.1 from scalar.ph)
210210
; CHECK: No successors
211211
; CHECK-NEXT: }
212212
;
@@ -279,8 +279,8 @@ define i32 @test_chained_first_order_recurrences_5_hoist_to_load(ptr %base) {
279279
; CHECK-EMPTY:
280280
; CHECK-NEXT: ir-bb<loop>:
281281
; CHECK-NEXT: IR %iv = phi i64 [ %iv.next, %loop ], [ 0, %entry ]
282-
; CHECK-NEXT: IR %for.x = phi i64 [ %for.x.next, %loop ], [ 0, %entry ] (extra operand: vp<[[RESUME_X]]>)
283-
; CHECK-NEXT: IR %for.y = phi i32 [ %for.x.prev, %loop ], [ 0, %entry ] (extra operand: vp<[[RESUME_Y]]>.1)
282+
; CHECK-NEXT: IR %for.x = phi i64 [ %for.x.next, %loop ], [ 0, %entry ] (extra operand: vp<[[RESUME_X]]> from scalar.ph)
283+
; CHECK-NEXT: IR %for.y = phi i32 [ %for.x.prev, %loop ], [ 0, %entry ] (extra operand: vp<[[RESUME_Y]]>.1 from scalar.ph)
284284
; CHECK: No successors
285285
; CHECK-NEXT: }
286286
;

llvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ define void @sink_replicate_region_1(i32 %x, ptr %ptr, ptr noalias %dst) optsize
8585
; CHECK-NEXT: Successor(s): ir-bb<loop>
8686
; CHECK-EMPTY:
8787
; CHECK-NEXT: ir-bb<loop>:
88-
; CHECK-NEXT: IR %0 = phi i32 [ 0, %entry ], [ %conv, %loop ] (extra operand: vp<[[RESUME_1_P]]>)
88+
; CHECK-NEXT: IR %0 = phi i32 [ 0, %entry ], [ %conv, %loop ] (extra operand: vp<[[RESUME_1_P]]> from scalar.ph)
8989
; CHECK-NEXT: IR %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
9090
; CHECK: IR %ec = icmp eq i32 %iv.next, 20001
9191
; CHECK-NEXT: No successors
@@ -172,7 +172,7 @@ define void @sink_replicate_region_2(i32 %x, i8 %y, ptr %ptr) optsize {
172172
; CHECK-NEXT: Successor(s): ir-bb<loop>
173173
; CHECK-EMPTY:
174174
; CHECK-NEXT: ir-bb<loop>:
175-
; CHECK-NEXT: IR %recur = phi i32 [ 0, %entry ], [ %recur.next, %loop ] (extra operand: vp<[[RESUME_1_P]]>)
175+
; CHECK-NEXT: IR %recur = phi i32 [ 0, %entry ], [ %recur.next, %loop ] (extra operand: vp<[[RESUME_1_P]]> from scalar.ph)
176176
; CHECK-NEXT: IR %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
177177
; CHECK: IR %ec = icmp eq i32 %iv.next, 20001
178178
; CHECK-NEXT: No successors
@@ -235,7 +235,7 @@ define i32 @sink_replicate_region_3_reduction(i32 %x, i8 %y, ptr %ptr) optsize {
235235
; CHECK-NEXT: Successor(s): ir-bb<exit>, scalar.ph
236236
; CHECK-EMPTY:
237237
; CHECK-NEXT: ir-bb<exit>
238-
; CHECK-NEXT: IR %res = phi i32 [ %and.red.next, %loop ] (extra operand: vp<[[RED_EX]]>)
238+
; CHECK-NEXT: IR %res = phi i32 [ %and.red.next, %loop ] (extra operand: vp<[[RED_EX]]> from middle.block)
239239
; CHECK-NEXT: No successors
240240
; CHECK-EMPTY:
241241
; CHECK-NEXT: scalar.ph
@@ -244,7 +244,7 @@ define i32 @sink_replicate_region_3_reduction(i32 %x, i8 %y, ptr %ptr) optsize {
244244
; CHECK-NEXT: Successor(s): ir-bb<loop>
245245
; CHECK-EMPTY:
246246
; CHECK-NEXT: ir-bb<loop>:
247-
; CHECK-NEXT: IR %recur = phi i32 [ 0, %entry ], [ %recur.next, %loop ] (extra operand: vp<[[RESUME_1_P]]>)
247+
; CHECK-NEXT: IR %recur = phi i32 [ 0, %entry ], [ %recur.next, %loop ] (extra operand: vp<[[RESUME_1_P]]> from scalar.ph)
248248
; CHECK-NEXT: IR %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
249249
; CHECK-NEXT: IR %and.red = phi i32 [ 1234, %entry ], [ %and.red.next, %loop ]
250250
; CHECK: IR %ec = icmp eq i32 %iv.next, 20001
@@ -355,7 +355,7 @@ define void @sink_replicate_region_4_requires_split_at_end_of_block(i32 %x, ptr
355355
; CHECK-NEXT: Successor(s): ir-bb<loop>
356356
; CHECK-EMPTY:
357357
; CHECK-NEXT: ir-bb<loop>:
358-
; CHECK-NEXT: IR %0 = phi i32 [ 0, %entry ], [ %conv, %loop ] (extra operand: vp<[[RESUME_1_P]]>)
358+
; CHECK-NEXT: IR %0 = phi i32 [ 0, %entry ], [ %conv, %loop ] (extra operand: vp<[[RESUME_1_P]]> from scalar.ph)
359359
; CHECK-NEXT: IR %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
360360
; CHECK: IR %ec = icmp eq i32 %iv.next, 20001
361361
; CHECK-NEXT: No successors
@@ -452,7 +452,7 @@ define void @sink_replicate_region_after_replicate_region(ptr %ptr, ptr noalias
452452
; CHECK-NEXT: Successor(s): ir-bb<loop>
453453
; CHECK-EMPTY:
454454
; CHECK-NEXT: ir-bb<loop>:
455-
; CHECK-NEXT: IR %recur = phi i32 [ 0, %entry ], [ %recur.next, %loop ] (extra operand: vp<[[RESUME_1_P]]>)
455+
; CHECK-NEXT: IR %recur = phi i32 [ 0, %entry ], [ %recur.next, %loop ] (extra operand: vp<[[RESUME_1_P]]> from scalar.ph)
456456
; CHECK-NEXT: IR %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
457457
; CHECK: IR %C = icmp sgt i32 %iv.next, %recur.next
458458
; CHECK-NEXT: No successors
@@ -539,7 +539,7 @@ define void @need_new_block_after_sinking_pr56146(i32 %x, ptr %src, ptr noalias
539539
; CHECK-EMPTY:
540540
; CHECK-NEXT: ir-bb<loop>:
541541
; CHECK-NEXT: IR %iv = phi i64 [ 2, %entry ], [ %iv.next, %loop ]
542-
; CHECK-NEXT: IR %.pn = phi i32 [ 0, %entry ], [ %l, %loop ] (extra operand: vp<[[RESUME_1_P]]>)
542+
; CHECK-NEXT: IR %.pn = phi i32 [ 0, %entry ], [ %l, %loop ] (extra operand: vp<[[RESUME_1_P]]> from scalar.ph)
543543
; CHECK: IR %ec = icmp ugt i64 %iv, 3
544544
; CHECK-NEXT: No successors
545545
; CHECK-NEXT: }

llvm/test/Transforms/LoopVectorize/interleave-and-scalarize-only.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ exit:
227227
; DBG-EMPTY:
228228
; DBG-NEXT: ir-bb<loop>:
229229
; DBG-NEXT: IR %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ]
230-
; DBG-NEXT: IR %for = phi i32 [ 0, %entry ], [ %iv.trunc, %loop ] (extra operand: vp<[[RESUME_P]]>)
230+
; DBG-NEXT: IR %for = phi i32 [ 0, %entry ], [ %iv.trunc, %loop ] (extra operand: vp<[[RESUME_P]]> from scalar.ph)
231231
; DBG: IR %ec = icmp slt i32 %iv.next.trunc, %n
232232
; DBG-NEXT: No successors
233233
; DBG-NEXT: }

llvm/test/Transforms/LoopVectorize/vplan-printing.ll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ define float @print_reduction(i64 %n, ptr noalias %y) {
171171
; CHECK-NEXT: Successor(s): ir-bb<for.end>, scalar.ph
172172
; CHECK-EMPTY:
173173
; CHECK-NEXT: ir-bb<for.end>
174-
; CHECK-NEXT: IR %red.next.lcssa = phi float [ %red.next, %for.body ] (extra operand: vp<[[RED_EX]]>)
174+
; CHECK-NEXT: IR %red.next.lcssa = phi float [ %red.next, %for.body ] (extra operand: vp<[[RED_EX]]> from middle.block)
175175
; CHECK-NEXT: No successors
176176
; CHECK-EMPTY:
177177
; CHECK-NEXT: scalar.ph
@@ -476,7 +476,7 @@ define float @print_fmuladd_strict(ptr %a, ptr %b, i64 %n) {
476476
; CHECK-NEXT: Successor(s): ir-bb<for.end>, scalar.ph
477477
; CHECK-EMPTY:
478478
; CHECK-NEXT: ir-bb<for.end>
479-
; CHECK-NEXT: IR %muladd.lcssa = phi float [ %muladd, %for.body ] (extra operand: vp<[[RED_EX]]>)
479+
; CHECK-NEXT: IR %muladd.lcssa = phi float [ %muladd, %for.body ] (extra operand: vp<[[RED_EX]]> from middle.block)
480480
; CHECK-NEXT: No successors
481481
; CHECK-EMPTY:
482482
; CHECK-NEXT: scalar.ph
@@ -716,7 +716,7 @@ define i32 @print_exit_value(ptr %ptr, i32 %off) {
716716
; CHECK-NEXT: Successor(s): ir-bb<exit>, scalar.ph
717717
; CHECK-EMPTY:
718718
; CHECK-NEXT: ir-bb<exit>
719-
; CHECK-NEXT: IR %lcssa = phi i32 [ %add, %loop ] (extra operand: vp<[[EXIT]]>)
719+
; CHECK-NEXT: IR %lcssa = phi i32 [ %add, %loop ] (extra operand: vp<[[EXIT]]> from middle.block)
720720
; CHECK-NEXT: No successors
721721
; CHECK-EMPTY:
722722
; CHECK-NEXT: scalar.ph
@@ -1111,15 +1111,15 @@ define i16 @print_first_order_recurrence_and_result(ptr %ptr) {
11111111
; CHECK-NEXT: Successor(s): ir-bb<exit>, scalar.ph
11121112
; CHECK-EMPTY:
11131113
; CHECK-NEXT: ir-bb<exit>
1114-
; CHECK-NEXT: IR %for.1.lcssa = phi i16 [ %for.1, %loop ] (extra operand: vp<[[FOR_RESULT]]>)
1114+
; CHECK-NEXT: IR %for.1.lcssa = phi i16 [ %for.1, %loop ] (extra operand: vp<[[FOR_RESULT]]> from middle.block)
11151115
; CHECK-NEXT: No successors
11161116
; CHECK-EMPTY:
11171117
; CHECK-NEXT: scalar.ph
11181118
; CHECK-NEXT: EMIT vp<[[RESUME_P:%.*]]> = resume-phi vp<[[RESUME_1]]>, ir<22>
11191119
; CHECK-NEXT: Successor(s): ir-bb<loop>
11201120
; CHECK-EMPTY:
11211121
; CHECK-NEXT: ir-bb<loop>:
1122-
; CHECK-NEXT: IR %for.1 = phi i16 [ 22, %entry ], [ %for.1.next, %loop ] (extra operand: vp<[[RESUME_P]]>)
1122+
; CHECK-NEXT: IR %for.1 = phi i16 [ 22, %entry ], [ %for.1.next, %loop ] (extra operand: vp<[[RESUME_P]]> from scalar.ph)
11231123
; CHECK-NEXT: IR %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ]
11241124
; CHECK: IR %exitcond.not = icmp eq i64 %iv.next, 1000
11251125
; CHECK-NEXT: No successors

0 commit comments

Comments
 (0)