mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
[BasicAA] Make BasicAA a cfg pass.
Summary: Part of the changes in D44564 made BasicAA not CFG only due to it using PhiAnalysisValues which may have values invalidated. Subsequent patches (rL340613) appear to have addressed this limitation. BasicAA should not be invalidated by non-CFG-altering passes. A concrete example is MemCpyOpt which preserves CFG, but we are testing it invalidates BasicAA. llvm-dev RFC: https://groups.google.com/forum/#!topic/llvm-dev/eSPXuWnNfzM Reviewers: john.brawn, sebpop, hfinkel, brzycki Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74353
This commit is contained in:
parent
341faaf09a
commit
1e37b17c69
@ -2059,12 +2059,13 @@ char BasicAAWrapperPass::ID = 0;
|
||||
void BasicAAWrapperPass::anchor() {}
|
||||
|
||||
INITIALIZE_PASS_BEGIN(BasicAAWrapperPass, "basicaa",
|
||||
"Basic Alias Analysis (stateless AA impl)", false, true)
|
||||
"Basic Alias Analysis (stateless AA impl)", true, true)
|
||||
INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker)
|
||||
INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass)
|
||||
INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass)
|
||||
INITIALIZE_PASS_DEPENDENCY(PhiValuesWrapperPass)
|
||||
INITIALIZE_PASS_END(BasicAAWrapperPass, "basicaa",
|
||||
"Basic Alias Analysis (stateless AA impl)", false, true)
|
||||
"Basic Alias Analysis (stateless AA impl)", true, true)
|
||||
|
||||
FunctionPass *llvm::createBasicAAWrapperPass() {
|
||||
return new BasicAAWrapperPass();
|
||||
|
@ -2,7 +2,7 @@
|
||||
; RUN: opt -debug-pass=Executions -memdep -instcombine -disable-output < %s 2>&1 | FileCheck %s -check-prefix=CHECK
|
||||
|
||||
; Check that phi values is not run when it's not already available, and that
|
||||
; basicaa is freed after a pass that preserves CFG.
|
||||
; basicaa is not freed after a pass that preserves CFG, as it preserves CFG.
|
||||
|
||||
; CHECK: Executing Pass 'Phi Values Analysis'
|
||||
; CHECK: Executing Pass 'Basic Alias Analysis (stateless AA impl)'
|
||||
@ -11,9 +11,9 @@
|
||||
; CHECK-MEMCPY-DAG: Freeing Pass 'MemCpy Optimization'
|
||||
; CHECK-DAG: Freeing Pass 'Phi Values Analysis'
|
||||
; CHECK-DAG: Freeing Pass 'Memory Dependence Analysis'
|
||||
; CHECK-DAG: Freeing Pass 'Basic Alias Analysis (stateless AA impl)'
|
||||
; CHECK-MEMCPY-NOT: Freeing Pass 'Basic Alias Analysis (stateless AA impl)'
|
||||
; CHECK-NOT: Executing Pass 'Phi Values Analysis'
|
||||
; CHECK-MEMCPY: Executing Pass 'Basic Alias Analysis (stateless AA impl)'
|
||||
; CHECK-NOT: Executing Pass 'Basic Alias Analysis (stateless AA impl)'
|
||||
; CHECK: Executing Pass 'Combine redundant instructions'
|
||||
|
||||
target datalayout = "p:8:8-n8"
|
||||
|
@ -70,7 +70,6 @@
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Early CSE w/ MemorySSA
|
||||
; CHECK-NEXT: Speculatively execute instructions if target has divergent branches
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Lazy Value Information Analysis
|
||||
; CHECK-NEXT: Jump Threading
|
||||
@ -134,7 +133,6 @@
|
||||
; CHECK-NEXT: Unroll loops
|
||||
; CHECK-NEXT: MergedLoadStoreMotion
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Memory Dependence Analysis
|
||||
; CHECK-NEXT: Lazy Branch Probability Analysis
|
||||
@ -149,7 +147,6 @@
|
||||
; CHECK-NEXT: Sparse Conditional Constant Propagation
|
||||
; CHECK-NEXT: Demanded bits analysis
|
||||
; CHECK-NEXT: Bit-Tracking Dead Code Elimination
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Lazy Branch Probability Analysis
|
||||
; CHECK-NEXT: Lazy Block Frequency Analysis
|
||||
@ -163,7 +160,6 @@
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Memory Dependence Analysis
|
||||
; CHECK-NEXT: Dead Store Elimination
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Natural Loop Information
|
||||
@ -231,7 +227,6 @@
|
||||
; CHECK-NEXT: Loop Vectorization
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: Scalar Evolution Analysis
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Loop Access Analysis
|
||||
; CHECK-NEXT: Lazy Branch Probability Analysis
|
||||
@ -256,7 +251,6 @@
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: SLP Vectorizer
|
||||
; CHECK-NEXT: Optimize scalar/vector ops
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: Combine redundant instructions
|
||||
|
@ -74,7 +74,6 @@
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Early CSE w/ MemorySSA
|
||||
; CHECK-NEXT: Speculatively execute instructions if target has divergent branches
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Lazy Value Information Analysis
|
||||
; CHECK-NEXT: Jump Threading
|
||||
@ -139,7 +138,6 @@
|
||||
; CHECK-NEXT: Unroll loops
|
||||
; CHECK-NEXT: MergedLoadStoreMotion
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Memory Dependence Analysis
|
||||
; CHECK-NEXT: Lazy Branch Probability Analysis
|
||||
@ -154,7 +152,6 @@
|
||||
; CHECK-NEXT: Sparse Conditional Constant Propagation
|
||||
; CHECK-NEXT: Demanded bits analysis
|
||||
; CHECK-NEXT: Bit-Tracking Dead Code Elimination
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Lazy Branch Probability Analysis
|
||||
; CHECK-NEXT: Lazy Block Frequency Analysis
|
||||
@ -168,7 +165,6 @@
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Memory Dependence Analysis
|
||||
; CHECK-NEXT: Dead Store Elimination
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Natural Loop Information
|
||||
@ -236,7 +232,6 @@
|
||||
; CHECK-NEXT: Loop Vectorization
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: Scalar Evolution Analysis
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Loop Access Analysis
|
||||
; CHECK-NEXT: Lazy Branch Probability Analysis
|
||||
@ -261,7 +256,6 @@
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: SLP Vectorizer
|
||||
; CHECK-NEXT: Optimize scalar/vector ops
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: Combine redundant instructions
|
||||
|
@ -70,7 +70,6 @@
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Early CSE w/ MemorySSA
|
||||
; CHECK-NEXT: Speculatively execute instructions if target has divergent branches
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Lazy Value Information Analysis
|
||||
; CHECK-NEXT: Jump Threading
|
||||
@ -121,7 +120,6 @@
|
||||
; CHECK-NEXT: Unroll loops
|
||||
; CHECK-NEXT: MergedLoadStoreMotion
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Memory Dependence Analysis
|
||||
; CHECK-NEXT: Lazy Branch Probability Analysis
|
||||
@ -136,7 +134,6 @@
|
||||
; CHECK-NEXT: Sparse Conditional Constant Propagation
|
||||
; CHECK-NEXT: Demanded bits analysis
|
||||
; CHECK-NEXT: Bit-Tracking Dead Code Elimination
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Lazy Branch Probability Analysis
|
||||
; CHECK-NEXT: Lazy Block Frequency Analysis
|
||||
@ -150,7 +147,6 @@
|
||||
; CHECK-NEXT: Phi Values Analysis
|
||||
; CHECK-NEXT: Memory Dependence Analysis
|
||||
; CHECK-NEXT: Dead Store Elimination
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Natural Loop Information
|
||||
@ -218,7 +214,6 @@
|
||||
; CHECK-NEXT: Loop Vectorization
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: Scalar Evolution Analysis
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Loop Access Analysis
|
||||
; CHECK-NEXT: Lazy Branch Probability Analysis
|
||||
@ -243,7 +238,6 @@
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: SLP Vectorizer
|
||||
; CHECK-NEXT: Optimize scalar/vector ops
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: Combine redundant instructions
|
||||
|
Loading…
Reference in New Issue
Block a user