mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
[MemCpyOptimizer] Change required analysis order for BasicAA/PhiValuesAnalysis
This is a followup to 1ccfb52a61748, which made a number of changes including the apparently innocuous reordering of required passes in MemCpyOptimizer. This however altered the creation order of BasicAA vs Phi Values analysis, meaning BasicAA did not pick up PhiValues as a cached result. Instead if we require MemoryDependence first it will require PhiValuesAnalysis allowing BasicAA to use it for better results. I don't claim this is an excellent design, but it fixes a nasty little regressions where a query later in JumpThreading was getting worse results. Differential Revision: https://reviews.llvm.org/D87027
This commit is contained in:
parent
1ae7d50edf
commit
eaf32d18ab
@ -272,12 +272,12 @@ private:
|
||||
AU.addRequired<AssumptionCacheTracker>();
|
||||
AU.addRequired<DominatorTreeWrapperPass>();
|
||||
AU.addPreserved<DominatorTreeWrapperPass>();
|
||||
AU.addRequired<AAResultsWrapperPass>();
|
||||
AU.addPreserved<AAResultsWrapperPass>();
|
||||
AU.addPreserved<GlobalsAAWrapperPass>();
|
||||
AU.addRequired<TargetLibraryInfoWrapperPass>();
|
||||
AU.addRequired<MemoryDependenceWrapperPass>();
|
||||
AU.addPreserved<MemoryDependenceWrapperPass>();
|
||||
AU.addRequired<AAResultsWrapperPass>();
|
||||
AU.addPreserved<AAResultsWrapperPass>();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -164,8 +164,8 @@
|
||||
; GCN-O1-NEXT: Delete dead loops
|
||||
; GCN-O1-NEXT: Unroll loops
|
||||
; GCN-O1-NEXT: SROA
|
||||
; GCN-O1-NEXT: Function Alias Analysis Results
|
||||
; GCN-O1-NEXT: Phi Values Analysis
|
||||
; GCN-O1-NEXT: Function Alias Analysis Results
|
||||
; GCN-O1-NEXT: Memory Dependence Analysis
|
||||
; GCN-O1-NEXT: MemCpy Optimization
|
||||
; GCN-O1-NEXT: Sparse Conditional Constant Propagation
|
||||
@ -493,9 +493,9 @@
|
||||
; GCN-O2-NEXT: Lazy Block Frequency Analysis
|
||||
; GCN-O2-NEXT: Optimization Remark Emitter
|
||||
; GCN-O2-NEXT: Global Value Numbering
|
||||
; GCN-O2-NEXT: Phi Values Analysis
|
||||
; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; GCN-O2-NEXT: Function Alias Analysis Results
|
||||
; GCN-O2-NEXT: Phi Values Analysis
|
||||
; GCN-O2-NEXT: Memory Dependence Analysis
|
||||
; GCN-O2-NEXT: MemCpy Optimization
|
||||
; GCN-O2-NEXT: Sparse Conditional Constant Propagation
|
||||
@ -853,9 +853,9 @@
|
||||
; GCN-O3-NEXT: Lazy Block Frequency Analysis
|
||||
; GCN-O3-NEXT: Optimization Remark Emitter
|
||||
; GCN-O3-NEXT: Global Value Numbering
|
||||
; GCN-O3-NEXT: Phi Values Analysis
|
||||
; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; GCN-O3-NEXT: Function Alias Analysis Results
|
||||
; GCN-O3-NEXT: Phi Values Analysis
|
||||
; GCN-O3-NEXT: Memory Dependence Analysis
|
||||
; GCN-O3-NEXT: MemCpy Optimization
|
||||
; GCN-O3-NEXT: Sparse Conditional Constant Propagation
|
||||
|
@ -140,9 +140,9 @@
|
||||
; CHECK-NEXT: Lazy Block Frequency Analysis
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: Global Value Numbering
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Memory Dependence Analysis
|
||||
; CHECK-NEXT: MemCpy Optimization
|
||||
; CHECK-NEXT: Sparse Conditional Constant Propagation
|
||||
|
@ -145,9 +145,9 @@
|
||||
; CHECK-NEXT: Lazy Block Frequency Analysis
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: Global Value Numbering
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Memory Dependence Analysis
|
||||
; CHECK-NEXT: MemCpy Optimization
|
||||
; CHECK-NEXT: Sparse Conditional Constant Propagation
|
||||
|
@ -145,9 +145,9 @@
|
||||
; CHECK-NEXT: Lazy Block Frequency Analysis
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: Global Value Numbering
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Memory Dependence Analysis
|
||||
; CHECK-NEXT: MemCpy Optimization
|
||||
; CHECK-NEXT: Sparse Conditional Constant Propagation
|
||||
|
@ -126,9 +126,9 @@
|
||||
; CHECK-NEXT: Lazy Block Frequency Analysis
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: Global Value Numbering
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Memory Dependence Analysis
|
||||
; CHECK-NEXT: MemCpy Optimization
|
||||
; CHECK-NEXT: Sparse Conditional Constant Propagation
|
||||
|
Loading…
x
Reference in New Issue
Block a user