Skip to content

Commit 45df96b

Browse files
committed
[MemCopyOpt] Enable MemorySSA by default
This enables use of MemorySSA instead of MemDep in MemCpyOpt. To allow this without significant compile-time impact, the MemCpyOpt pass is moved directly before DSE (in the cases where this was not already the case), which allows us to reuse the existing MemorySSA analysis. Unlike the MemDep-based implementation, the MemorySSA-based MemCpyOpt can also perform simple optimizations across basic blocks. Differential Revision: https://reviews.llvm.org/D94376 (cherry picked from commit 71a8e4e)
1 parent 50848d6 commit 45df96b

18 files changed

+37
-65
lines changed

clang/test/CodeGen/thinlto-distributed-newpm.ll

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,6 @@
116116
; CHECK-O: Running pass: SROA on main
117117
; CHECK-O: Running pass: MergedLoadStoreMotionPass on main
118118
; CHECK-O: Running pass: GVN on main
119-
; CHECK-O: Running analysis: MemoryDependenceAnalysis on main
120-
; CHECK-O: Running analysis: PhiValuesAnalysis on main
121-
; CHECK-O: Running pass: MemCpyOptPass on main
122119
; CHECK-O: Running pass: SCCPPass on main
123120
; CHECK-O: Running pass: BDCEPass on main
124121
; CHECK-O: Running analysis: DemandedBitsAnalysis on main
@@ -127,6 +124,7 @@
127124
; CHECK-O: Running pass: CorrelatedValuePropagationPass on main
128125
; CHECK-O: Running pass: ADCEPass on main
129126
; CHECK-O: Running analysis: PostDominatorTreeAnalysis on main
127+
; CHECK-O: Running pass: MemCpyOptPass on main
130128
; CHECK-O: Running pass: DSEPass on main
131129
; CHECK-O: Starting {{.*}}Function pass manager run.
132130
; CHECK-O: Running pass: LoopSimplifyPass on main

llvm/lib/Passes/PassBuilder.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -776,9 +776,6 @@ PassBuilder::buildFunctionSimplificationPipeline(OptimizationLevel Level,
776776
else
777777
FPM.addPass(GVN());
778778

779-
// Specially optimize memory movement as it doesn't look like dataflow in SSA.
780-
FPM.addPass(MemCpyOptPass());
781-
782779
// Sparse conditional constant propagation.
783780
// FIXME: It isn't clear why we do this *after* loop passes rather than
784781
// before...
@@ -804,6 +801,9 @@ PassBuilder::buildFunctionSimplificationPipeline(OptimizationLevel Level,
804801
// TODO: Investigate if this is too expensive.
805802
FPM.addPass(ADCEPass());
806803

804+
// Specially optimize memory movement as it doesn't look like dataflow in SSA.
805+
FPM.addPass(MemCpyOptPass());
806+
807807
FPM.addPass(DSEPass());
808808
FPM.addPass(createFunctionToLoopPassAdaptor(
809809
LICMPass(PTO.LicmMssaOptCap, PTO.LicmMssaNoAccForPromotionCap),

llvm/lib/Transforms/IPO/PassManagerBuilder.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,6 @@ void PassManagerBuilder::addFunctionSimplificationPasses(
472472
MPM.add(NewGVN ? createNewGVNPass()
473473
: createGVNPass(DisableGVNLoadPRE)); // Remove redundancies
474474
}
475-
MPM.add(createMemCpyOptPass()); // Remove memcpy / form memset
476475
MPM.add(createSCCPPass()); // Constant prop with SCCP
477476

478477
if (EnableConstraintElimination)
@@ -493,6 +492,7 @@ void PassManagerBuilder::addFunctionSimplificationPasses(
493492
}
494493
MPM.add(createAggressiveDCEPass()); // Delete dead instructions
495494

495+
MPM.add(createMemCpyOptPass()); // Remove memcpy / form memset
496496
// TODO: Investigate if this is too expensive at O1.
497497
if (OptLevel > 1) {
498498
MPM.add(createDeadStoreEliminationPass()); // Delete dead stores

llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ using namespace llvm;
6868
#define DEBUG_TYPE "memcpyopt"
6969

7070
static cl::opt<bool>
71-
EnableMemorySSA("enable-memcpyopt-memoryssa", cl::init(false), cl::Hidden,
71+
EnableMemorySSA("enable-memcpyopt-memoryssa", cl::init(true), cl::Hidden,
7272
cl::desc("Use MemorySSA-backed MemCpyOpt."));
7373

7474
STATISTIC(NumMemCpyInstr, "Number of memcpy instructions deleted");

llvm/test/Analysis/BasicAA/phi-values-usage.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
; RUN: opt -debug-pass=Executions -phi-values -memcpyopt -instcombine -disable-output < %s -enable-new-pm=0 2>&1 | FileCheck %s -check-prefixes=CHECK,CHECK-MEMCPY
1+
; RUN: opt -debug-pass=Executions -phi-values -memcpyopt -instcombine -disable-output < %s -enable-new-pm=0 -enable-memcpyopt-memoryssa=0 2>&1 | FileCheck %s -check-prefixes=CHECK,CHECK-MEMCPY
22
; RUN: opt -debug-pass=Executions -memdep -instcombine -disable-output < %s -enable-new-pm=0 2>&1 | FileCheck %s -check-prefix=CHECK
3-
; RUN: opt -debug-pass-manager -aa-pipeline=basic-aa -passes=memcpyopt,instcombine -disable-output < %s 2>&1 | FileCheck %s -check-prefixes=NPM
3+
; RUN: opt -debug-pass-manager -aa-pipeline=basic-aa -passes=memcpyopt,instcombine -disable-output -enable-memcpyopt-memoryssa=0 < %s 2>&1 | FileCheck %s -check-prefixes=NPM
44

55
; Check that phi values is not run when it's not already available, and that
66
; basicaa is not freed after a pass that preserves CFG, as it preserves CFG.

llvm/test/CodeGen/AMDGPU/opt-pipeline.ll

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -168,10 +168,6 @@
168168
; GCN-O1-NEXT: Delete dead loops
169169
; GCN-O1-NEXT: Unroll loops
170170
; GCN-O1-NEXT: SROA
171-
; GCN-O1-NEXT: Phi Values Analysis
172-
; GCN-O1-NEXT: Function Alias Analysis Results
173-
; GCN-O1-NEXT: Memory Dependence Analysis
174-
; GCN-O1-NEXT: MemCpy Optimization
175171
; GCN-O1-NEXT: Sparse Conditional Constant Propagation
176172
; GCN-O1-NEXT: Demanded bits analysis
177173
; GCN-O1-NEXT: Bit-Tracking Dead Code Elimination
@@ -182,6 +178,10 @@
182178
; GCN-O1-NEXT: Combine redundant instructions
183179
; GCN-O1-NEXT: Post-Dominator Tree Construction
184180
; GCN-O1-NEXT: Aggressive Dead Code Elimination
181+
; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl)
182+
; GCN-O1-NEXT: Function Alias Analysis Results
183+
; GCN-O1-NEXT: Memory SSA
184+
; GCN-O1-NEXT: MemCpy Optimization
185185
; GCN-O1-NEXT: Simplify the CFG
186186
; GCN-O1-NEXT: Dominator Tree Construction
187187
; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl)
@@ -501,14 +501,10 @@
501501
; GCN-O2-NEXT: Lazy Block Frequency Analysis
502502
; GCN-O2-NEXT: Optimization Remark Emitter
503503
; GCN-O2-NEXT: Global Value Numbering
504-
; GCN-O2-NEXT: Phi Values Analysis
505-
; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
506-
; GCN-O2-NEXT: Function Alias Analysis Results
507-
; GCN-O2-NEXT: Memory Dependence Analysis
508-
; GCN-O2-NEXT: MemCpy Optimization
509504
; GCN-O2-NEXT: Sparse Conditional Constant Propagation
510505
; GCN-O2-NEXT: Demanded bits analysis
511506
; GCN-O2-NEXT: Bit-Tracking Dead Code Elimination
507+
; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
512508
; GCN-O2-NEXT: Function Alias Analysis Results
513509
; GCN-O2-NEXT: Lazy Branch Probability Analysis
514510
; GCN-O2-NEXT: Lazy Block Frequency Analysis
@@ -522,6 +518,7 @@
522518
; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
523519
; GCN-O2-NEXT: Function Alias Analysis Results
524520
; GCN-O2-NEXT: Memory SSA
521+
; GCN-O2-NEXT: MemCpy Optimization
525522
; GCN-O2-NEXT: Dead Store Elimination
526523
; GCN-O2-NEXT: Natural Loop Information
527524
; GCN-O2-NEXT: Canonicalize natural loops
@@ -865,14 +862,10 @@
865862
; GCN-O3-NEXT: Lazy Block Frequency Analysis
866863
; GCN-O3-NEXT: Optimization Remark Emitter
867864
; GCN-O3-NEXT: Global Value Numbering
868-
; GCN-O3-NEXT: Phi Values Analysis
869-
; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
870-
; GCN-O3-NEXT: Function Alias Analysis Results
871-
; GCN-O3-NEXT: Memory Dependence Analysis
872-
; GCN-O3-NEXT: MemCpy Optimization
873865
; GCN-O3-NEXT: Sparse Conditional Constant Propagation
874866
; GCN-O3-NEXT: Demanded bits analysis
875867
; GCN-O3-NEXT: Bit-Tracking Dead Code Elimination
868+
; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
876869
; GCN-O3-NEXT: Function Alias Analysis Results
877870
; GCN-O3-NEXT: Lazy Branch Probability Analysis
878871
; GCN-O3-NEXT: Lazy Block Frequency Analysis
@@ -886,6 +879,7 @@
886879
; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
887880
; GCN-O3-NEXT: Function Alias Analysis Results
888881
; GCN-O3-NEXT: Memory SSA
882+
; GCN-O3-NEXT: MemCpy Optimization
889883
; GCN-O3-NEXT: Dead Store Elimination
890884
; GCN-O3-NEXT: Natural Loop Information
891885
; GCN-O3-NEXT: Canonicalize natural loops

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,7 @@
179179
; CHECK-O23SZ-NEXT: Running pass: GVN
180180
; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
181181
; CHECK-O23SZ-NEXT: Running analysis: PhiValuesAnalysis
182-
; CHECK-O-NEXT: Running pass: MemCpyOptPass
183-
; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis
184-
; CHECK-O1-NEXT: Running analysis: PhiValuesAnalysis
182+
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
185183
; CHECK-O-NEXT: Running pass: SCCPPass
186184
; CHECK-O-NEXT: Running pass: BDCEPass
187185
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
@@ -193,6 +191,7 @@
193191
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
194192
; CHECK-O-NEXT: Running pass: ADCEPass
195193
; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis
194+
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass
196195
; CHECK-O23SZ-NEXT: Running pass: DSEPass
197196
; CHECK-O23SZ-NEXT: Starting llvm::Function pass manager run.
198197
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@
9292
; CHECK-O2-NEXT: Running analysis: MemoryDependenceAnalysis
9393
; CHECK-O2-NEXT: Running analysis: PhiValuesAnalysis
9494
; CHECK-O2-NEXT: Running pass: MemCpyOptPass on foo
95-
; CHECK-O2-NEXT: Running pass: DSEPass on foo
9695
; CHECK-O2-NEXT: Running analysis: MemorySSAAnalysis on foo
96+
; CHECK-O2-NEXT: Running pass: DSEPass on foo
9797
; CHECK-O2-NEXT: Running analysis: PostDominatorTreeAnalysis on foo
9898
; CHECK-O2-NEXT: Running pass: InstCombinePass on foo
9999
; CHECK-O2-NEXT: Running pass: SimplifyCFGPass on foo

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,7 @@
172172
; CHECK-O3-NEXT: Running pass: GVN
173173
; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis
174174
; CHECK-O3-NEXT: Running analysis: PhiValuesAnalysis
175-
; CHECK-O-NEXT: Running pass: MemCpyOptPass
176-
; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis
177-
; CHECK-O1-NEXT: Running analysis: PhiValuesAnalysis
175+
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
178176
; CHECK-O-NEXT: Running pass: SCCPPass
179177
; CHECK-O-NEXT: Running pass: BDCEPass
180178
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
@@ -185,6 +183,7 @@
185183
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
186184
; CHECK-O-NEXT: Running pass: ADCEPass
187185
; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis
186+
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass
188187
; CHECK-O23SZ-NEXT: Running pass: DSEPass
189188
; CHECK-O23SZ-NEXT: Starting llvm::Function pass manager run
190189
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,7 @@
145145
; CHECK-O3-NEXT: Running pass: GVN
146146
; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis
147147
; CHECK-O3-NEXT: Running analysis: PhiValuesAnalysis
148-
; CHECK-O-NEXT: Running pass: MemCpyOptPass
149-
; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis
150-
; CHECK-O1-NEXT: Running analysis: PhiValuesAnalysis
148+
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
151149
; CHECK-O-NEXT: Running pass: SCCPPass
152150
; CHECK-O-NEXT: Running pass: BDCEPass
153151
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
@@ -157,6 +155,7 @@
157155
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
158156
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
159157
; CHECK-O-NEXT: Running pass: ADCEPass
158+
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass
160159
; CHECK-O23SZ-NEXT: Running pass: DSEPass
161160
; CHECK-O23SZ-NEXT: Starting {{.*}}Function pass manager run
162161
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,7 @@
154154
; CHECK-O3-NEXT: Running pass: GVN
155155
; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis
156156
; CHECK-O3-NEXT: Running analysis: PhiValuesAnalysis
157-
; CHECK-O-NEXT: Running pass: MemCpyOptPass
158-
; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis
159-
; CHECK-O1-NEXT: Running analysis: PhiValuesAnalysis
157+
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
160158
; CHECK-O-NEXT: Running pass: SCCPPass
161159
; CHECK-O-NEXT: Running pass: BDCEPass
162160
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
@@ -166,6 +164,7 @@
166164
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
167165
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
168166
; CHECK-O-NEXT: Running pass: ADCEPass
167+
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass
169168
; CHECK-O23SZ-NEXT: Running pass: DSEPass
170169
; CHECK-O23SZ-NEXT: Starting {{.*}}Function pass manager run
171170
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,7 @@
191191
; CHECK-O3-NEXT: Running pass: GVN
192192
; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis
193193
; CHECK-O3-NEXT: Running analysis: PhiValuesAnalysis
194-
; CHECK-O-NEXT: Running pass: MemCpyOptPass
195-
; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis
196-
; CHECK-O1-NEXT: Running analysis: PhiValuesAnalysis
194+
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
197195
; CHECK-O-NEXT: Running pass: SCCPPass
198196
; CHECK-O-NEXT: Running pass: BDCEPass
199197
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
@@ -203,6 +201,7 @@
203201
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
204202
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
205203
; CHECK-O-NEXT: Running pass: ADCEPass
204+
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass
206205
; CHECK-O23SZ-NEXT: Running pass: DSEPass
207206
; CHECK-O23SZ-NEXT: Starting {{.*}}Function pass manager run
208207
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,7 @@
148148
; CHECK-O3-NEXT: Running pass: GVN
149149
; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis
150150
; CHECK-O3-NEXT: Running analysis: PhiValuesAnalysis
151-
; CHECK-O-NEXT: Running pass: MemCpyOptPass
152-
; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis
153-
; CHECK-O1-NEXT: Running analysis: PhiValuesAnalysis
151+
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
154152
; CHECK-O-NEXT: Running pass: SCCPPass
155153
; CHECK-O-NEXT: Running pass: BDCEPass
156154
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
@@ -160,6 +158,7 @@
160158
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
161159
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
162160
; CHECK-O-NEXT: Running pass: ADCEPass
161+
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass
163162
; CHECK-O23SZ-NEXT: Running pass: DSEPass
164163
; CHECK-O23SZ-NEXT: Starting {{.*}}Function pass manager run
165164
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass

llvm/test/Other/opt-LTO-pipeline.ll

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,8 @@
110110
; CHECK-NEXT: Memory Dependence Analysis
111111
; CHECK-NEXT: Optimization Remark Emitter
112112
; CHECK-NEXT: Global Value Numbering
113-
; CHECK-NEXT: Phi Values Analysis
114113
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
115114
; CHECK-NEXT: Function Alias Analysis Results
116-
; CHECK-NEXT: Memory Dependence Analysis
117115
; CHECK-NEXT: MemCpy Optimization
118116
; CHECK-NEXT: Post-Dominator Tree Construction
119117
; CHECK-NEXT: Dead Store Elimination

llvm/test/Other/opt-O2-pipeline.ll

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,10 @@
145145
; CHECK-NEXT: Lazy Block Frequency Analysis
146146
; CHECK-NEXT: Optimization Remark Emitter
147147
; CHECK-NEXT: Global Value Numbering
148-
; CHECK-NEXT: Phi Values Analysis
149-
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
150-
; CHECK-NEXT: Function Alias Analysis Results
151-
; CHECK-NEXT: Memory Dependence Analysis
152-
; CHECK-NEXT: MemCpy Optimization
153148
; CHECK-NEXT: Sparse Conditional Constant Propagation
154149
; CHECK-NEXT: Demanded bits analysis
155150
; CHECK-NEXT: Bit-Tracking Dead Code Elimination
151+
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
156152
; CHECK-NEXT: Function Alias Analysis Results
157153
; CHECK-NEXT: Lazy Branch Probability Analysis
158154
; CHECK-NEXT: Lazy Block Frequency Analysis
@@ -166,6 +162,7 @@
166162
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
167163
; CHECK-NEXT: Function Alias Analysis Results
168164
; CHECK-NEXT: Memory SSA
165+
; CHECK-NEXT: MemCpy Optimization
169166
; CHECK-NEXT: Dead Store Elimination
170167
; CHECK-NEXT: Natural Loop Information
171168
; CHECK-NEXT: Canonicalize natural loops

llvm/test/Other/opt-O3-pipeline-enable-matrix.ll

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,10 @@
150150
; CHECK-NEXT: Lazy Block Frequency Analysis
151151
; CHECK-NEXT: Optimization Remark Emitter
152152
; CHECK-NEXT: Global Value Numbering
153-
; CHECK-NEXT: Phi Values Analysis
154-
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
155-
; CHECK-NEXT: Function Alias Analysis Results
156-
; CHECK-NEXT: Memory Dependence Analysis
157-
; CHECK-NEXT: MemCpy Optimization
158153
; CHECK-NEXT: Sparse Conditional Constant Propagation
159154
; CHECK-NEXT: Demanded bits analysis
160155
; CHECK-NEXT: Bit-Tracking Dead Code Elimination
156+
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
161157
; CHECK-NEXT: Function Alias Analysis Results
162158
; CHECK-NEXT: Lazy Branch Probability Analysis
163159
; CHECK-NEXT: Lazy Block Frequency Analysis
@@ -171,6 +167,7 @@
171167
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
172168
; CHECK-NEXT: Function Alias Analysis Results
173169
; CHECK-NEXT: Memory SSA
170+
; CHECK-NEXT: MemCpy Optimization
174171
; CHECK-NEXT: Dead Store Elimination
175172
; CHECK-NEXT: Natural Loop Information
176173
; CHECK-NEXT: Canonicalize natural loops

llvm/test/Other/opt-O3-pipeline.ll

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,10 @@
150150
; CHECK-NEXT: Lazy Block Frequency Analysis
151151
; CHECK-NEXT: Optimization Remark Emitter
152152
; CHECK-NEXT: Global Value Numbering
153-
; CHECK-NEXT: Phi Values Analysis
154-
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
155-
; CHECK-NEXT: Function Alias Analysis Results
156-
; CHECK-NEXT: Memory Dependence Analysis
157-
; CHECK-NEXT: MemCpy Optimization
158153
; CHECK-NEXT: Sparse Conditional Constant Propagation
159154
; CHECK-NEXT: Demanded bits analysis
160155
; CHECK-NEXT: Bit-Tracking Dead Code Elimination
156+
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
161157
; CHECK-NEXT: Function Alias Analysis Results
162158
; CHECK-NEXT: Lazy Branch Probability Analysis
163159
; CHECK-NEXT: Lazy Block Frequency Analysis
@@ -171,6 +167,7 @@
171167
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
172168
; CHECK-NEXT: Function Alias Analysis Results
173169
; CHECK-NEXT: Memory SSA
170+
; CHECK-NEXT: MemCpy Optimization
174171
; CHECK-NEXT: Dead Store Elimination
175172
; CHECK-NEXT: Natural Loop Information
176173
; CHECK-NEXT: Canonicalize natural loops

llvm/test/Other/opt-Os-pipeline.ll

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -131,14 +131,10 @@
131131
; CHECK-NEXT: Lazy Block Frequency Analysis
132132
; CHECK-NEXT: Optimization Remark Emitter
133133
; CHECK-NEXT: Global Value Numbering
134-
; CHECK-NEXT: Phi Values Analysis
135-
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
136-
; CHECK-NEXT: Function Alias Analysis Results
137-
; CHECK-NEXT: Memory Dependence Analysis
138-
; CHECK-NEXT: MemCpy Optimization
139134
; CHECK-NEXT: Sparse Conditional Constant Propagation
140135
; CHECK-NEXT: Demanded bits analysis
141136
; CHECK-NEXT: Bit-Tracking Dead Code Elimination
137+
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
142138
; CHECK-NEXT: Function Alias Analysis Results
143139
; CHECK-NEXT: Lazy Branch Probability Analysis
144140
; CHECK-NEXT: Lazy Block Frequency Analysis
@@ -152,6 +148,7 @@
152148
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
153149
; CHECK-NEXT: Function Alias Analysis Results
154150
; CHECK-NEXT: Memory SSA
151+
; CHECK-NEXT: MemCpy Optimization
155152
; CHECK-NEXT: Dead Store Elimination
156153
; CHECK-NEXT: Natural Loop Information
157154
; CHECK-NEXT: Canonicalize natural loops

0 commit comments

Comments
 (0)