Skip to content

Commit 7cc7662

Browse files
feedback part2
1 parent 27fe33e commit 7cc7662

File tree

3 files changed

+7
-66
lines changed

3 files changed

+7
-66
lines changed

llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1610,7 +1610,7 @@ static void insertTrivialPHIs(CHRScope *Scope,
16101610
}
16111611
// Erase any leftover lifetime annotations for a dynamic alloca.
16121612
if (FoundLifetimeAnnotation) {
1613-
for (User *U : I.users()) {
1613+
for (User *U : make_early_inc_range(I.users())) {
16141614
if (auto *UI = dyn_cast<Instruction>(U))
16151615
if(UI->isLifetimeStartOrEnd())
16161616
UI->eraseFromParent();

llvm/test/Transforms/PGOProfile/chr-lifetimes.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ define void @test_chr_dynamic_alloca(ptr %i) !prof !14 {
9494
; CHECK-NEXT: br i1 false, label [[BB1:%.*]], label [[BB0:%.*]], !prof [[PROF17]]
9595
; CHECK: bb0:
9696
; CHECK-NEXT: call void @foo()
97+
; CHECK-NEXT: store ptr [[TEST]], ptr [[I]], align 8
9798
; CHECK-NEXT: br label [[BB1]]
9899
; CHECK: bb4.split.nonchr:
99100
; CHECK-NEXT: [[TMP7:%.*]] = select i1 [[TMP1]], i64 0, i64 4, !prof [[PROF16]]
@@ -102,15 +103,18 @@ define void @test_chr_dynamic_alloca(ptr %i) !prof !14 {
102103
; CHECK-NEXT: br i1 [[TMP1]], label [[BB0_NONCHR:%.*]], label [[BB1]], !prof [[PROF16]]
103104
; CHECK: bb0.nonchr:
104105
; CHECK-NEXT: call void @foo()
106+
; CHECK-NEXT: store ptr [[TEST_NONCHR]], ptr [[I]], align 8
105107
; CHECK-NEXT: br label [[BB1]]
106108
; CHECK: bb1:
107109
; CHECK-NEXT: [[TMP8:%.*]] = phi ptr [ [[TEST]], [[BB0]] ], [ [[TEST]], [[BB4_SPLIT]] ], [ [[TEST_NONCHR]], [[BB0_NONCHR]] ], [ [[TEST_NONCHR]], [[BB4_SPLIT_NONCHR]] ]
110+
; CHECK-NEXT: call void @bar()
108111
; CHECK-NEXT: store ptr [[TMP8]], ptr [[I]], align 8
109112
; CHECK-NEXT: br label [[BB2:%.*]]
110113
; CHECK: bb2:
111114
; CHECK-NEXT: [[TMP9:%.*]] = phi ptr [ [[TMP10:%.*]], [[BB2]] ], [ null, [[BB1]] ]
112115
; CHECK-NEXT: [[TMP10]] = getelementptr i8, ptr [[TMP9]], i64 24
113-
; CHECK-NEXT: [[TMP11:%.*]] = icmp eq ptr [[TMP9]], [[I]]
116+
; CHECK-NEXT: [[TEST5:%.*]] = load ptr, ptr [[TMP8]], align 8
117+
; CHECK-NEXT: [[TMP11:%.*]] = icmp eq ptr [[TMP9]], [[TEST5]]
114118
; CHECK-NEXT: br i1 [[TMP11]], label [[BB3]], label [[BB2]]
115119
; CHECK: bb3:
116120
; CHECK-NEXT: ret void
@@ -144,6 +148,7 @@ bb2:
144148
%4 = phi ptr [ %5, %bb2 ], [ null, %bb1 ]
145149
%5 = getelementptr i8, ptr %4, i64 24
146150
%test5 = load ptr, ptr %test
151+
call void @llvm.lifetime.end.p0(ptr %test)
147152
%6 = icmp eq ptr %4, %test5
148153
br i1 %6, label %bb3, label %bb2
149154

@@ -170,9 +175,4 @@ bb3:
170175

171176
!14 = !{!"function_entry_count", i64 100}
172177
!15 = !{!"branch_weights", i32 0, i32 1}
173-
!16 = !{!"branch_weights", i32 1, i32 1}
174-
!17 = !{!"branch_weights", i32 0, i32 0}
175178
; CHECK: !15 = !{!"branch_weights", i32 1000, i32 0}
176-
; CHECK: !16 = !{!"branch_weights", i32 0, i32 1}
177-
; CHECK: !17 = !{!"branch_weights", i32 1, i32 1}
178-
; CHECK: !18 = !{!"branch_weights", i32 1, i32 0}

llvm/test/Transforms/PGOProfile/chr.ll

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -2678,65 +2678,6 @@ bb6:
26782678
ret void
26792679
}
26802680

2681-
; Test that when we create phi nodes for allocas, we drop lifetime annotations
2682-
; that would otherwise be illegally referring to a phi node.
2683-
declare void @baz(i64)
2684-
declare void @llvm.lifetime.start.p0(ptr captures(none))
2685-
define void @test_chr_with_lifetimes(ptr %i) !prof !14 {
2686-
; CHECK-LABEL: @test_chr_with_lifetimes(
2687-
; CHECK-NEXT: entry:
2688-
; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[I:%.*]], align 4
2689-
; CHECK-NEXT: [[DOTFR:%.*]] = freeze i32 [[TMP0]]
2690-
; CHECK-NEXT: [[DOTNOT:%.*]] = icmp eq i32 [[DOTFR]], 0
2691-
; CHECK-NEXT: br i1 [[DOTNOT]], label [[ENTRY_SPLIT_NONCHR:%.*]], label [[ENTRY_SPLIT:%.*]], !prof [[PROF21:![0-9]+]]
2692-
; CHECK: entry.split:
2693-
; CHECK-NEXT: [[TEST:%.*]] = alloca i32, align 8
2694-
; CHECK-NEXT: call void @baz(i64 0)
2695-
; CHECK-NEXT: call void @foo()
2696-
; CHECK-NEXT: br label [[BB1:%.*]]
2697-
; CHECK: entry.split.nonchr:
2698-
; CHECK-NEXT: [[TEST_NONCHR:%.*]] = alloca i32, align 8
2699-
; CHECK-NEXT: call void @baz(i64 4)
2700-
; CHECK-NEXT: br label [[BB1]]
2701-
; CHECK: bb1:
2702-
; CHECK-NEXT: [[TMP1:%.*]] = phi ptr [ [[TEST]], [[ENTRY_SPLIT]] ], [ [[TEST_NONCHR]], [[ENTRY_SPLIT_NONCHR]] ]
2703-
; CHECK-NEXT: store ptr [[TMP1]], ptr [[I]], align 8
2704-
; CHECK-NEXT: br label [[BB2:%.*]]
2705-
; CHECK: bb2:
2706-
; CHECK-NEXT: [[TMP2:%.*]] = phi ptr [ [[TMP3:%.*]], [[BB2]] ], [ null, [[BB1]] ]
2707-
; CHECK-NEXT: [[TMP3]] = getelementptr i8, ptr [[TMP2]], i64 24
2708-
; CHECK-NEXT: [[TMP4:%.*]] = icmp eq ptr [[TMP2]], [[I]]
2709-
; CHECK-NEXT: br i1 [[TMP4]], label [[BB3:%.*]], label [[BB2]]
2710-
; CHECK: bb3:
2711-
; CHECK-NEXT: ret void
2712-
;
2713-
entry:
2714-
%1 = load i32, ptr %i
2715-
%2 = icmp eq i32 %1, 0
2716-
%3 = select i1 %2, i64 4, i64 0, !prof !15
2717-
%test = alloca i32, align 8
2718-
call void @baz(i64 %3)
2719-
br i1 %2, label %bb1, label %bb0, !prof !15
2720-
2721-
bb0:
2722-
call void @foo()
2723-
br label %bb1
2724-
2725-
bb1:
2726-
call void @llvm.lifetime.start.p0(ptr %test)
2727-
store ptr %test, ptr %i, align 8
2728-
br label %bb2
2729-
2730-
bb2:
2731-
%4 = phi ptr [ %5, %bb2 ], [ null, %bb1 ]
2732-
%5 = getelementptr i8, ptr %4, i64 24
2733-
%6 = icmp eq ptr %4, %i
2734-
br i1 %6, label %bb3, label %bb2
2735-
2736-
bb3:
2737-
ret void
2738-
}
2739-
27402681

27412682
!llvm.module.flags = !{!0}
27422683
!0 = !{i32 1, !"ProfileSummary", !1}

0 commit comments

Comments
 (0)