Skip to content

Commit 47fbe85

Browse files
committed
Add PGOEstimateTripCounts in more cases
1 parent db5920a commit 47fbe85

16 files changed

+141
-59
lines changed

llvm/lib/Passes/PassBuilderPipelines.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1240,6 +1240,7 @@ PassBuilder::buildModuleSimplificationPipeline(OptimizationLevel Level,
12401240
MPM.addPass(AssignGUIDPass());
12411241
if (IsCtxProfUse) {
12421242
MPM.addPass(PGOCtxProfFlatteningPass(/*IsPreThinlink=*/true));
1243+
MPM.addPass(PGOEstimateTripCountsPass());
12431244
return MPM;
12441245
}
12451246
// Block further inlining in the instrumented ctxprof case. This avoids
@@ -1271,11 +1272,8 @@ PassBuilder::buildModuleSimplificationPipeline(OptimizationLevel Level,
12711272
if (PGOOpt && (PGOOpt->Action == PGOOptions::IRUse ||
12721273
PGOOpt->Action == PGOOptions::SampleUse)) {
12731274
MPM.addPass(PGOForceFunctionAttrsPass(PGOOpt->ColdOptType));
1274-
// TODO: Is this the right place for this pass? Should we enable it in any
1275-
// other case, such as when __builtin_expect_with_probability or
1276-
// __builtin_expect appears in the source code but profiles are not read?
1277-
MPM.addPass(PGOEstimateTripCountsPass());
12781275
}
1276+
MPM.addPass(PGOEstimateTripCountsPass());
12791277

12801278
MPM.addPass(AlwaysInlinerPass(/*InsertLifetimeIntrinsics=*/true));
12811279

llvm/test/Other/new-pm-defaults.ll

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
; to be invalidated.
77
; Any invalidation that shows up here is a bug, unless we started modifying
88
; the IR, in which case we need to make it immutable harder.
9+
;
10+
; FIXME: Invalidation has been showing up for years. Something needs to be
11+
; fixed, perhaps just the above comment.
912

1013
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
1114
; RUN: -passes='default<O1>' -S %s 2>&1 \
@@ -131,31 +134,43 @@
131134
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
132135
; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass
133136
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
137+
; CHECK-O-NEXT: Running pass: PGOEstimateTripCountsPass
138+
; CHECK-O-NEXT: Running analysis: LoopAnalysis
139+
; CHECK-O-NEXT: Invalidating analysis: InnerAnalysisManagerProxy
134140
; CHECK-O-NEXT: Running pass: AlwaysInlinerPass
141+
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
135142
; CHECK-O-NEXT: Running analysis: ProfileSummaryAnalysis
136143
; CHECK-O-NEXT: Running pass: ModuleInlinerWrapperPass
137144
; CHECK-O-NEXT: Running analysis: InlineAdvisorAnalysis
138145
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
139146
; CHECK-O-NEXT: Running analysis: GlobalsAA
140147
; CHECK-O-NEXT: Running analysis: CallGraphAnalysis
141148
; CHECK-O-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}AAManager
142-
; CHECK-O-NEXT: Invalidating analysis: AAManager
143149
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis
144150
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
145151
; CHECK-O-NEXT: Running analysis: LazyCallGraphAnalysis
152+
; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis
146153
; CHECK-O-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy
147154
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy<{{.*}}LazyCallGraph::SCC{{.*}}>
148155
; CHECK-O-NEXT: Running pass: DevirtSCCRepeatedPass
149156
; CHECK-O-NEXT: Running pass: InlinerPass
157+
; CHECK-O-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis
150158
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
151159
; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass
152160
; CHECK-O2-NEXT: Running pass: OpenMPOptCGSCCPass on (foo)
153161
; CHECK-O3-NEXT: Running pass: OpenMPOptCGSCCPass on (foo)
154162
; CHECK-EP-CGSCC-LATE-NEXT: Running pass: NoOpCGSCCPass
155163
; CHECK-O-NEXT: Running pass: SROAPass
164+
; CHECK-O-NEXT: Running analysis: DominatorTreeAnalysis
165+
; CHECK-O-NEXT: Running analysis: AssumptionAnalysis
166+
; CHECK-O-NEXT: Running analysis: TargetIRAnalysis
156167
; CHECK-O-NEXT: Running pass: EarlyCSEPass
157168
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
158169
; CHECK-O-NEXT: Running analysis: AAManager
170+
; CHECK-O-NEXT: Running analysis: BasicAA
171+
; CHECK-O-NEXT: Running analysis: ScopedNoAliasAA
172+
; CHECK-O-NEXT: Running analysis: TypeBasedAA
173+
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
159174
; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass
160175
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
161176
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
@@ -164,6 +179,7 @@
164179
; CHECK-JUMP-TABLE-TO-SWITCH-NEXT: Running pass: JumpTableToSwitchPass
165180
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
166181
; CHECK-O-NEXT: Running pass: InstCombinePass
182+
; CHECK-O-NEXT: Running analysis: LastRunTrackingAnalysis
167183
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
168184
; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass
169185
; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass
@@ -238,6 +254,7 @@
238254
; CHECK-O-NEXT: Running pass: DeadArgumentEliminationPass
239255
; CHECK-O-NEXT: Running pass: CoroCleanupPass
240256
; CHECK-O-NEXT: Running pass: GlobalOptPass
257+
; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis
241258
; CHECK-O-NEXT: Running pass: GlobalDCEPass
242259
; CHECK-DEFAULT-NEXT: Running pass: EliminateAvailableExternallyPass
243260
; CHECK-LTO-NOT: Running pass: EliminateAvailableExternallyPass

llvm/test/Other/new-pm-thinlto-postlink-defaults.ll

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
; Any invalidation that shows up here is a bug, unless we started modifying
88
; the IR, in which case we need to make it immutable harder.
99
;
10+
; FIXME: Invalidation has been showing up for years. Something needs to be
11+
; fixed, perhaps just the above comment.
12+
;
1013
; Postlink pipelines:
1114
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
1215
; RUN: -passes='thinlto<O1>' -S %s 2>&1 \
@@ -62,37 +65,50 @@
6265
; CHECK-O-NEXT: Running analysis: TypeBasedAA
6366
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
6467
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
68+
; CHECK-O-NEXT: Running pass: PGOEstimateTripCountsPass
69+
; CHECK-O-NEXT: Running analysis: LoopAnalysis
70+
; CHECK-O-NEXT: Invalidating analysis: InnerAnalysisManagerProxy
6571
; CHECK-O-NEXT: Running pass: AlwaysInlinerPass
6672
; CHECK-PRELINK-O-NEXT: Running analysis: ProfileSummaryAnalysis
73+
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
6774
; CHECK-O-NEXT: Running pass: ModuleInlinerWrapperPass
6875
; CHECK-O-NEXT: Running analysis: InlineAdvisorAnalysis
6976
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
7077
; CHECK-O-NEXT: Running analysis: GlobalsAA
7178
; CHECK-O-NEXT: Running analysis: CallGraphAnalysis
7279
; CHECK-O-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}AAManager
73-
; CHECK-O-NEXT: Invalidating analysis: AAManager
74-
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis
80+
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<llvm::ProfileSummaryAnalysis, llvm::Module>
7581
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
7682
; CHECK-O-NEXT: Running analysis: LazyCallGraphAnalysis
83+
; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis
7784
; CHECK-O-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy
7885
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
7986
; CHECK-O-NEXT: Running pass: DevirtSCCRepeatedPass
8087
; CHECK-O-NEXT: Running pass: InlinerPass
88+
; CHECK-O-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis
8189
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
8290
; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass
8391
; CHECK-O2-NEXT: Running pass: OpenMPOptCGSCCPass on (foo)
8492
; CHECK-O3-NEXT: Running pass: OpenMPOptCGSCCPass on (foo)
8593
; CHECK-O-NEXT: Running pass: SROAPass
94+
; CHECK-O-NEXT: Running analysis: DominatorTreeAnalysis
95+
; CHECK-O-NEXT: Running analysis: AssumptionAnalysis
96+
; CHECK-O-NEXT: Running analysis: TargetIRAnalysis
8697
; CHECK-O-NEXT: Running pass: EarlyCSEPass
8798
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
8899
; CHECK-O-NEXT: Running analysis: AAManager
100+
; CHECK-O-NEXT: Running analysis: BasicAA on foo
101+
; CHECK-O-NEXT: Running analysis: ScopedNoAliasAA on foo
102+
; CHECK-O-NEXT: Running analysis: TypeBasedAA on foo
103+
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
89104
; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass
90105
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
91106
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
92107
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
93108
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
94109
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
95110
; CHECK-O-NEXT: Running pass: InstCombinePass
111+
; CHECK-O-NEXT: Running analysis: LastRunTrackingAnalysis
96112
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
97113
; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass
98114
; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass
@@ -162,6 +178,7 @@
162178
; CHECK-O-NEXT: Running pass: SimplifyTypeTestsPass
163179
; CHECK-O-NEXT: Running pass: CoroCleanupPass
164180
; CHECK-POSTLINK-O-NEXT: Running pass: GlobalOptPass
181+
; CHECK-POSTLINK-O-NEXT: Running analysis: TargetLibraryAnalysis
165182
; CHECK-POSTLINK-O-NEXT: Running pass: GlobalDCEPass
166183
; CHECK-POSTLINK-O-NEXT: Running pass: EliminateAvailableExternallyPass
167184
; CHECK-POSTLINK-O-NEXT: Running pass: ReversePostOrderFunctionAttrsPass

llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,36 +51,52 @@
5151
; CHECK-O-NEXT: Running analysis: LoopAnalysis on foo
5252
; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis on foo
5353
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
54+
; CHECK-O-NEXT: Running pass: PGOEstimateTripCountsPass
55+
; CHECK-O-NEXT: Invalidating analysis: InnerAnalysisManagerProxy
5456
; CHECK-O-NEXT: Running pass: AlwaysInlinerPass
57+
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
5558
; CHECK-O-NEXT: Running pass: ModuleInlinerWrapperPass
5659
; CHECK-O-NEXT: Running analysis: InlineAdvisorAnalysis
5760
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
5861
; CHECK-O-NEXT: Running analysis: GlobalsAA
5962
; CHECK-O-NEXT: Running analysis: CallGraphAnalysis
6063
; CHECK-O-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}AAManager
61-
; CHECK-O-NEXT: Invalidating analysis: AAManager
6264
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis
6365
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
6466
; CHECK-O-NEXT: Running analysis: LazyCallGraphAnalysis
67+
; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis
6568
; CHECK-O-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy
6669
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy<{{.*}}LazyCallGraph::SCC{{.*}}>
6770
; CHECK-O-NEXT: Running pass: DevirtSCCRepeatedPass
6871
; CHECK-O-NEXT: Running pass: InlinerPass
72+
; CHECK-O-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis
6973
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
7074
; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass
7175
; CHECK-O2-NEXT: Running pass: OpenMPOptCGSCCPass
7276
; CHECK-O3-NEXT: Running pass: OpenMPOptCGSCCPass
7377
; CHECK-O-NEXT: Running pass: SROAPass
78+
; CHECK-O-NEXT: Running analysis: DominatorTreeAnalysis
79+
; CHECK-O-NEXT: Running analysis: AssumptionAnalysis
80+
; CHECK-O-NEXT: Running analysis: TargetIRAnalysis
7481
; CHECK-O-NEXT: Running pass: EarlyCSEPass
7582
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
7683
; CHECK-O-NEXT: Running analysis: AAManager
84+
; CHECK-O-NEXT: Running analysis: BasicAA
85+
; CHECK-O-NEXT: Running analysis: ScopedNoAliasAA
86+
; CHECK-O-NEXT: Running analysis: TypeBasedAA
87+
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
7788
; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass
7889
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
7990
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
8091
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
8192
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
8293
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
8394
; CHECK-O-NEXT: Running pass: InstCombinePass
95+
; CHECK-O-NEXT: Running analysis: LastRunTrackingAnalysis
96+
; CHECK-O-NEXT: Running analysis: BlockFrequencyAnalysis
97+
; CHECK-O-NEXT: Running analysis: BranchProbabilityAnalysis
98+
; CHECK-O-NEXT: Running analysis: LoopAnalysis
99+
; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis
84100
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
85101
; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass
86102
; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass
@@ -146,6 +162,7 @@
146162
; CHECK-O-NEXT: Running pass: SimplifyTypeTestsPass
147163
; CHECK-O-NEXT: Running pass: CoroCleanupPass
148164
; CHECK-O-NEXT: Running pass: GlobalOptPass
165+
; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis
149166
; CHECK-O-NEXT: Running pass: GlobalDCEPass
150167
; CHECK-O-NEXT: Running pass: EliminateAvailableExternallyPass
151168
; CHECK-O-NEXT: Running pass: ReversePostOrderFunctionAttrsPass

llvm/test/Other/new-pm-thinlto-prelink-defaults.ll

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
; Any invalidation that shows up here is a bug, unless we started modifying
88
; the IR, in which case we need to make it immutable harder.
99
;
10+
; FIXME: Invalidation has been showing up for years. Something needs to be
11+
; fixed, perhaps just the above comment.
12+
;
1013
; Prelink pipelines:
1114
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
1215
; RUN: -passes='thinlto-pre-link<O1>' -S %s 2>&1 \
@@ -94,37 +97,50 @@
9497
; CHECK-O-NEXT: Running analysis: TypeBasedAA
9598
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
9699
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
100+
; CHECK-O-NEXT: Running pass: PGOEstimateTripCountsPass
101+
; CHECK-O-NEXT: Running analysis: LoopAnalysis
102+
; CHECK-O-NEXT: Invalidating analysis: InnerAnalysisManagerProxy
97103
; CHECK-O-NEXT: Running pass: AlwaysInlinerPass
104+
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
98105
; CHECK-O-NEXT: Running analysis: ProfileSummaryAnalysis
99106
; CHECK-O-NEXT: Running pass: ModuleInlinerWrapperPass
100107
; CHECK-O-NEXT: Running analysis: InlineAdvisorAnalysis
101108
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
102109
; CHECK-O-NEXT: Running analysis: GlobalsAA
103110
; CHECK-O-NEXT: Running analysis: CallGraphAnalysis
104111
; CHECK-O-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}AAManager
105-
; CHECK-O-NEXT: Invalidating analysis: AAManager
106112
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis
107113
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
108114
; CHECK-O-NEXT: Running analysis: LazyCallGraphAnalysis
115+
; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis
109116
; CHECK-O-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy
110117
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
111118
; CHECK-O-NEXT: Running pass: DevirtSCCRepeatedPass
112119
; CHECK-O-NEXT: Running pass: InlinerPass
120+
; CHECK-O-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis
113121
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
114122
; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass
115123
; CHECK-O2-NEXT: Running pass: OpenMPOptCGSCCPass on (foo)
116124
; CHECK-O3-NEXT: Running pass: OpenMPOptCGSCCPass on (foo)
117125
; CHECK-O-NEXT: Running pass: SROAPass
126+
; CHECK-O-NEXT: Running analysis: DominatorTreeAnalysis
127+
; CHECK-O-NEXT: Running analysis: AssumptionAnalysis
128+
; CHECK-O-NEXT: Running analysis: TargetIRAnalysis
118129
; CHECK-O-NEXT: Running pass: EarlyCSEPass
119130
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
120131
; CHECK-O-NEXT: Running analysis: AAManager
132+
; CHECK-O-NEXT: Running analysis: BasicAA
133+
; CHECK-O-NEXT: Running analysis: ScopedNoAliasAA
134+
; CHECK-O-NEXT: Running analysis: TypeBasedAA
135+
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
121136
; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass
122137
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
123138
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
124139
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
125140
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
126141
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
127142
; CHECK-O-NEXT: Running pass: InstCombinePass
143+
; CHECK-O-NEXT: Running analysis: LastRunTrackingAnalysis
128144
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
129145
; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass
130146
; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass
@@ -190,6 +206,7 @@
190206
; CHECK-O-NEXT: Invalidating analysis: InlineAdvisorAnalysis
191207
; CHECK-O-NEXT: Running pass: DeadArgumentEliminationPass
192208
; CHECK-O-NEXT: Running pass: GlobalOptPass
209+
; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis
193210
; CHECK-O-NEXT: Running pass: GlobalDCEPass
194211
; CHECK-EXT: Running pass: {{.*}}::Bye
195212
; CHECK-EP-OPT-EARLY-NEXT: Running pass: NoOpModulePass

llvm/test/Transforms/LoopUnroll/unroll-cleanup.ll

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,15 @@ define void @_Z3fn1v(ptr %r, ptr %a) #0 {
3131
; CHECK-NEXT: [[SCEVGEP:%.*]] = getelementptr i8, ptr [[A_021:%.*]], i64 1
3232
; CHECK-NEXT: [[TMP0:%.*]] = add i32 [[T2:%.*]], -1
3333
; CHECK-NEXT: [[TMP1:%.*]] = zext i32 [[TMP0]] to i64
34-
; CHECK-NEXT: [[SCEVGEP1:%.*]] = getelementptr i8, ptr [[SCEVGEP:%.*]], i64 [[TMP1]]
34+
; CHECK-NEXT: [[SCEVGEP1:%.*]] = getelementptr i8, ptr [[SCEVGEP]], i64 [[TMP1]]
3535
; CHECK-NEXT: [[T1_PRE:%.*]] = load i32, ptr @b, align 4
3636
; CHECK-NEXT: br label %[[FOR_COND_LOOPEXIT:.*]]
3737
; CHECK: [[FOR_COND_LOOPEXIT]]:
3838
; CHECK-NEXT: [[T1:%.*]] = phi i32 [ [[T12:%.*]], %[[FOR_BODY]] ], [ [[T1_PRE]], %[[FOR_COND_LOOPEXIT_LOOPEXIT]] ]
3939
; CHECK-NEXT: [[R_1_LCSSA:%.*]] = phi ptr [ [[R_022:%.*]], %[[FOR_BODY]] ], [ [[ADD_PTR_LCSSA]], %[[FOR_COND_LOOPEXIT_LOOPEXIT]] ]
40-
; CHECK-NEXT: [[A_1_LCSSA:%.*]] = phi ptr [ [[A_021:%.*]], %[[FOR_BODY]] ], [ [[SCEVGEP1]], %[[FOR_COND_LOOPEXIT_LOOPEXIT]] ]
40+
; CHECK-NEXT: [[A_1_LCSSA:%.*]] = phi ptr [ [[A_021]], %[[FOR_BODY]] ], [ [[SCEVGEP1]], %[[FOR_COND_LOOPEXIT_LOOPEXIT]] ]
4141
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[T1]], 0
42-
; CHECK-NEXT: br i1 [[TOBOOL]], label %[[FOR_END6]], label %[[FOR_BODY]]
42+
; CHECK-NEXT: br i1 [[TOBOOL]], label %[[FOR_END6]], label %[[FOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
4343
; CHECK: [[FOR_BODY]]:
4444
; CHECK-NEXT: [[T12]] = phi i32 [ [[T1]], %[[FOR_COND_LOOPEXIT]] ], [ [[T]], %[[ENTRY]] ]
4545
; CHECK-NEXT: [[R_022]] = phi ptr [ [[R_1_LCSSA]], %[[FOR_COND_LOOPEXIT]] ], [ [[R]], %[[ENTRY]] ]
@@ -106,7 +106,7 @@ define void @_Z3fn1v(ptr %r, ptr %a) #0 {
106106
; CHECK-NEXT: [[INCDEC_PTR_1]] = getelementptr inbounds nuw i8, ptr [[A_116]], i64 2
107107
; CHECK-NEXT: [[ADD_PTR_1]] = getelementptr inbounds nuw i8, ptr [[R_117]], i64 12
108108
; CHECK-NEXT: [[TOBOOL2_1:%.*]] = icmp eq i32 [[DEC18_1]], 0
109-
; CHECK-NEXT: br i1 [[TOBOOL2_1]], label %[[FOR_COND_LOOPEXIT_LOOPEXIT]], label %[[FOR_BODY3]], !llvm.loop [[LOOP0:![0-9]+]]
109+
; CHECK-NEXT: br i1 [[TOBOOL2_1]], label %[[FOR_COND_LOOPEXIT_LOOPEXIT]], label %[[FOR_BODY3]], !llvm.loop [[LOOP2:![0-9]+]]
110110
; CHECK: [[FOR_END6]]:
111111
; CHECK-NEXT: ret void
112112
;
@@ -174,5 +174,7 @@ for.end6: ; preds = %for.cond.for.end6_c
174174
!1 = !{!"llvm.loop.unroll.count", i32 2}
175175
;.
176176
; CHECK: [[LOOP0]] = distinct !{[[LOOP0]], [[META1:![0-9]+]]}
177-
; CHECK: [[META1]] = !{!"llvm.loop.unroll.disable"}
177+
; CHECK: [[META1]] = !{!"llvm.loop.estimated_trip_count"}
178+
; CHECK: [[LOOP2]] = distinct !{[[LOOP2]], [[META1]], [[META3:![0-9]+]]}
179+
; CHECK: [[META3]] = !{!"llvm.loop.unroll.disable"}
178180
;.

llvm/test/Transforms/LoopVectorize/X86/already-vectorized.ll

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ for.end: ; preds = %for.body
4141
}
4242

4343
; Now, we check for the Hint metadata
44-
; CHECK: [[vect]] = distinct !{[[vect]], [[width:![0-9]+]], [[runtime_unroll:![0-9]+]]}
44+
; CHECK: [[vect]] = distinct !{[[vect]], ![[#etc:]], [[width:![0-9]+]], [[runtime_unroll:![0-9]+]]}
45+
; CHECK: [[#etc]] = !{!"llvm.loop.estimated_trip_count"}
4546
; CHECK: [[width]] = !{!"llvm.loop.isvectorized", i32 1}
4647
; CHECK: [[runtime_unroll]] = !{!"llvm.loop.unroll.runtime.disable"}
47-
; CHECK: [[scalar]] = distinct !{[[scalar]], [[runtime_unroll]], [[width]]}
48+
; CHECK: [[scalar]] = distinct !{[[scalar]], ![[#etc]], [[runtime_unroll]], [[width]]}

llvm/test/Transforms/LoopVectorize/vect.omp.persistence.ll

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
1313
;
1414
; CHECK-LABEL: @foo
1515
; CHECK: !llvm.loop !0
16-
; CHECK: !0 = distinct !{!0, !1}
16+
; CHECK: !0 = distinct !{!0, !1, !2}
1717
; CHECK: !1 = !{!"llvm.loop.vectorize.enable", i1 true}
18+
; CHECK: !2 = !{!"llvm.loop.estimated_trip_count"}
1819
define i32 @foo(i32 %a) {
1920
entry:
2021
br label %loop_cond

llvm/test/Transforms/PhaseOrdering/AArch64/block_scaling_decompr_8bit.ll

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -801,6 +801,7 @@ attributes #2 = { nocallback nofree nosync nounwind willreturn memory(none) }
801801
!4 = distinct !{!4, !5}
802802
!5 = !{!"llvm.loop.mustprogress"}
803803
;.
804-
; CHECK: [[LOOP4]] = distinct !{[[LOOP4]], [[META5:![0-9]+]]}
804+
; CHECK: [[LOOP4]] = distinct !{[[LOOP4]], [[META5:![0-9]+]], [[META6:![0-9]+]]}
805805
; CHECK: [[META5]] = !{!"llvm.loop.mustprogress"}
806+
; CHECK: [[META6]] = !{!"llvm.loop.estimated_trip_count"}
806807
;.

0 commit comments

Comments
 (0)