Skip to content

Commit 71a8e4e

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
1 parent c1653b8 commit 71a8e4e

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
@@ -790,9 +790,6 @@ PassBuilder::buildFunctionSimplificationPipeline(OptimizationLevel Level,
790790
else
791791
FPM.addPass(GVN());
792792

793-
// Specially optimize memory movement as it doesn't look like dataflow in SSA.
794-
FPM.addPass(MemCpyOptPass());
795-
796793
// Sparse conditional constant propagation.
797794
// FIXME: It isn't clear why we do this *after* loop passes rather than
798795
// before...
@@ -818,6 +815,9 @@ PassBuilder::buildFunctionSimplificationPipeline(OptimizationLevel Level,
818815
// TODO: Investigate if this is too expensive.
819816
FPM.addPass(ADCEPass());
820817

818+
// Specially optimize memory movement as it doesn't look like dataflow in SSA.
819+
FPM.addPass(MemCpyOptPass());
820+
821821
FPM.addPass(DSEPass());
822822
FPM.addPass(createFunctionToLoopPassAdaptor(
823823
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)
@@ -500,14 +500,10 @@
500500
; GCN-O2-NEXT: Lazy Block Frequency Analysis
501501
; GCN-O2-NEXT: Optimization Remark Emitter
502502
; GCN-O2-NEXT: Global Value Numbering
503-
; GCN-O2-NEXT: Phi Values Analysis
504-
; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
505-
; GCN-O2-NEXT: Function Alias Analysis Results
506-
; GCN-O2-NEXT: Memory Dependence Analysis
507-
; GCN-O2-NEXT: MemCpy Optimization
508503
; GCN-O2-NEXT: Sparse Conditional Constant Propagation
509504
; GCN-O2-NEXT: Demanded bits analysis
510505
; GCN-O2-NEXT: Bit-Tracking Dead Code Elimination
506+
; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
511507
; GCN-O2-NEXT: Function Alias Analysis Results
512508
; GCN-O2-NEXT: Lazy Branch Probability Analysis
513509
; GCN-O2-NEXT: Lazy Block Frequency Analysis
@@ -521,6 +517,7 @@
521517
; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
522518
; GCN-O2-NEXT: Function Alias Analysis Results
523519
; GCN-O2-NEXT: Memory SSA
520+
; GCN-O2-NEXT: MemCpy Optimization
524521
; GCN-O2-NEXT: Dead Store Elimination
525522
; GCN-O2-NEXT: Natural Loop Information
526523
; GCN-O2-NEXT: Canonicalize natural loops
@@ -863,14 +860,10 @@
863860
; GCN-O3-NEXT: Lazy Block Frequency Analysis
864861
; GCN-O3-NEXT: Optimization Remark Emitter
865862
; GCN-O3-NEXT: Global Value Numbering
866-
; GCN-O3-NEXT: Phi Values Analysis
867-
; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
868-
; GCN-O3-NEXT: Function Alias Analysis Results
869-
; GCN-O3-NEXT: Memory Dependence Analysis
870-
; GCN-O3-NEXT: MemCpy Optimization
871863
; GCN-O3-NEXT: Sparse Conditional Constant Propagation
872864
; GCN-O3-NEXT: Demanded bits analysis
873865
; GCN-O3-NEXT: Bit-Tracking Dead Code Elimination
866+
; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
874867
; GCN-O3-NEXT: Function Alias Analysis Results
875868
; GCN-O3-NEXT: Lazy Branch Probability Analysis
876869
; GCN-O3-NEXT: Lazy Block Frequency Analysis
@@ -884,6 +877,7 @@
884877
; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
885878
; GCN-O3-NEXT: Function Alias Analysis Results
886879
; GCN-O3-NEXT: Memory SSA
880+
; GCN-O3-NEXT: MemCpy Optimization
887881
; GCN-O3-NEXT: Dead Store Elimination
888882
; GCN-O3-NEXT: Natural Loop Information
889883
; 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
@@ -100,8 +100,8 @@
100100
; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis on foo
101101
; CHECK-O23SZ-NEXT: Running analysis: PhiValuesAnalysis on foo
102102
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass on foo
103-
; CHECK-O23SZ-NEXT: Running pass: DSEPass on foo
104103
; CHECK-O23SZ-NEXT: Running analysis: MemorySSAAnalysis on foo
104+
; CHECK-O23SZ-NEXT: Running pass: DSEPass on foo
105105
; CHECK-O23SZ-NEXT: Running analysis: PostDominatorTreeAnalysis on foo
106106
; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass on foo
107107
; CHECK-O23SZ-NEXT: Starting llvm::Function pass manager run.

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)