mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
[MemorySSA] Re-enable MemorySSA use.
Differential Revision: https://reviews.llvm.org/D58311 llvm-svn: 370957
This commit is contained in:
parent
9319be4cee
commit
f8b6cd8d95
@ -84,7 +84,7 @@ bool llvm::VerifyMemorySSA = false;
|
||||
#endif
|
||||
/// Enables memory ssa as a dependency for loop passes in legacy pass manager.
|
||||
cl::opt<bool> llvm::EnableMSSALoopDependency(
|
||||
"enable-mssa-loop-dependency", cl::Hidden, cl::init(false),
|
||||
"enable-mssa-loop-dependency", cl::Hidden, cl::init(true),
|
||||
cl::desc("Enable MemorySSA dependency for loop pass manager"));
|
||||
|
||||
static cl::opt<bool, true>
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "llvm/Analysis/InstructionSimplify.h"
|
||||
#include "llvm/Analysis/LoopInfo.h"
|
||||
#include "llvm/Analysis/LoopPass.h"
|
||||
#include "llvm/Analysis/MemorySSA.h"
|
||||
#include "llvm/Analysis/MemorySSAUpdater.h"
|
||||
#include "llvm/Analysis/MustExecute.h"
|
||||
#include "llvm/Analysis/ScalarEvolution.h"
|
||||
@ -170,6 +171,8 @@ void llvm::getLoopAnalysisUsage(AnalysisUsage &AU) {
|
||||
AU.addPreserved<SCEVAAWrapperPass>();
|
||||
AU.addRequired<ScalarEvolutionWrapperPass>();
|
||||
AU.addPreserved<ScalarEvolutionWrapperPass>();
|
||||
// FIXME: When all loop passes preserve MemorySSA, it can be required and
|
||||
// preserved here instead of the individual handling in each pass.
|
||||
}
|
||||
|
||||
/// Manually defined generic "LoopPass" dependency initialization. This is used
|
||||
@ -190,6 +193,7 @@ void llvm::initializeLoopPassPass(PassRegistry &Registry) {
|
||||
INITIALIZE_PASS_DEPENDENCY(GlobalsAAWrapperPass)
|
||||
INITIALIZE_PASS_DEPENDENCY(SCEVAAWrapperPass)
|
||||
INITIALIZE_PASS_DEPENDENCY(ScalarEvolutionWrapperPass)
|
||||
INITIALIZE_PASS_DEPENDENCY(MemorySSAWrapperPass)
|
||||
}
|
||||
|
||||
/// Create MDNode for input string.
|
||||
|
@ -4,25 +4,24 @@
|
||||
|
||||
define void @lame_encode_buffer_interleaved() local_unnamed_addr {
|
||||
; CHECK-LABEL: lame_encode_buffer_interleaved:
|
||||
; CHECK: # %bb.0:
|
||||
; CHECK-NEXT: lhz 3, 0(0)
|
||||
; CHECK-NEXT: li 5, 1
|
||||
; CHECK-NEXT: sldi 5, 5, 62
|
||||
; CHECK-NEXT: lhz 4, 0(3)
|
||||
; CHECK-NEXT: mtctr 5
|
||||
; CHECK-NEXT: .p2align 5
|
||||
; CHECK-NEXT: .LBB0_1: #
|
||||
; CHECK-NEXT: extsh 3, 3
|
||||
; CHECK-NEXT: extsh 4, 4
|
||||
; CHECK-NEXT: srawi 3, 3, 1
|
||||
; CHECK-NEXT: addze 3, 3
|
||||
; CHECK-NEXT: srawi 4, 4, 1
|
||||
; CHECK-NEXT: addze 4, 4
|
||||
; CHECK-NEXT: bdnz .LBB0_1
|
||||
; CHECK-NEXT: # %bb.2:
|
||||
; CHECK-NEXT: sth 3, 0(0)
|
||||
; CHECK-NEXT: sth 4, 0(3)
|
||||
; CHECK-NEXT: blr
|
||||
; CHECK: # %bb.0:
|
||||
; CHECK-NEXT: lha 3, 0(3)
|
||||
; CHECK-NEXT: li 5, 1
|
||||
; CHECK-NEXT: sldi 5, 5, 62
|
||||
; CHECK-NEXT: lhz 4, 0(0)
|
||||
; CHECK-NEXT: mtctr 5
|
||||
; CHECK-NEXT: srawi 3, 3, 1
|
||||
; CHECK-NEXT: addze 3, 3
|
||||
; CHECK-NEXT: .p2align 4
|
||||
; CHECK-NEXT: .LBB0_1:
|
||||
; CHECK-NEXT: extsh 4, 4
|
||||
; CHECK-NEXT: srawi 4, 4, 1
|
||||
; CHECK-NEXT: addze 4, 4
|
||||
; CHECK-NEXT: bdnz .LBB0_1
|
||||
; CHECK-NEXT: # %bb.2:
|
||||
; CHECK-NEXT: sth 4, 0(0)
|
||||
; CHECK-NEXT: sth 3, 0(3)
|
||||
; CHECK-NEXT: blr
|
||||
br label %1
|
||||
|
||||
1: ; preds = %1, %0
|
||||
|
@ -93,12 +93,13 @@
|
||||
; CHECK-NEXT: Simplify the CFG
|
||||
; CHECK-NEXT: Reassociate expressions
|
||||
; CHECK-NEXT: Dominator Tree Construction
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Natural Loop Information
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: LCSSA Verifier
|
||||
; CHECK-NEXT: Loop-Closed SSA Form Pass
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Scalar Evolution Analysis
|
||||
; CHECK-NEXT: Loop Pass Manager
|
||||
; CHECK-NEXT: Rotate Loops
|
||||
@ -153,12 +154,13 @@
|
||||
; 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
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: LCSSA Verifier
|
||||
; CHECK-NEXT: Loop-Closed SSA Form Pass
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Scalar Evolution Analysis
|
||||
; CHECK-NEXT: Loop Pass Manager
|
||||
; CHECK-NEXT: Loop Invariant Code Motion
|
||||
@ -185,12 +187,13 @@
|
||||
; CHECK-NEXT: FunctionPass Manager
|
||||
; CHECK-NEXT: Float to int
|
||||
; CHECK-NEXT: Dominator Tree Construction
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Natural Loop Information
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: LCSSA Verifier
|
||||
; CHECK-NEXT: Loop-Closed SSA Form Pass
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Scalar Evolution Analysis
|
||||
; CHECK-NEXT: Loop Pass Manager
|
||||
; CHECK-NEXT: Rotate Loops
|
||||
@ -246,6 +249,7 @@
|
||||
; CHECK-NEXT: Lazy Block Frequency Analysis
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: Combine redundant instructions
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: LCSSA Verifier
|
||||
; CHECK-NEXT: Loop-Closed SSA Form Pass
|
||||
|
@ -98,12 +98,13 @@
|
||||
; CHECK-NEXT: Simplify the CFG
|
||||
; CHECK-NEXT: Reassociate expressions
|
||||
; CHECK-NEXT: Dominator Tree Construction
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Natural Loop Information
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: LCSSA Verifier
|
||||
; CHECK-NEXT: Loop-Closed SSA Form Pass
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Scalar Evolution Analysis
|
||||
; CHECK-NEXT: Loop Pass Manager
|
||||
; CHECK-NEXT: Rotate Loops
|
||||
@ -158,12 +159,13 @@
|
||||
; 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
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: LCSSA Verifier
|
||||
; CHECK-NEXT: Loop-Closed SSA Form Pass
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Scalar Evolution Analysis
|
||||
; CHECK-NEXT: Loop Pass Manager
|
||||
; CHECK-NEXT: Loop Invariant Code Motion
|
||||
@ -190,12 +192,13 @@
|
||||
; CHECK-NEXT: FunctionPass Manager
|
||||
; CHECK-NEXT: Float to int
|
||||
; CHECK-NEXT: Dominator Tree Construction
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Natural Loop Information
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: LCSSA Verifier
|
||||
; CHECK-NEXT: Loop-Closed SSA Form Pass
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Scalar Evolution Analysis
|
||||
; CHECK-NEXT: Loop Pass Manager
|
||||
; CHECK-NEXT: Rotate Loops
|
||||
@ -251,6 +254,7 @@
|
||||
; CHECK-NEXT: Lazy Block Frequency Analysis
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: Combine redundant instructions
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: LCSSA Verifier
|
||||
; CHECK-NEXT: Loop-Closed SSA Form Pass
|
||||
|
@ -80,12 +80,13 @@
|
||||
; CHECK-NEXT: Simplify the CFG
|
||||
; CHECK-NEXT: Reassociate expressions
|
||||
; CHECK-NEXT: Dominator Tree Construction
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Natural Loop Information
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: LCSSA Verifier
|
||||
; CHECK-NEXT: Loop-Closed SSA Form Pass
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Scalar Evolution Analysis
|
||||
; CHECK-NEXT: Loop Pass Manager
|
||||
; CHECK-NEXT: Rotate Loops
|
||||
@ -140,12 +141,13 @@
|
||||
; 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
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: LCSSA Verifier
|
||||
; CHECK-NEXT: Loop-Closed SSA Form Pass
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Scalar Evolution Analysis
|
||||
; CHECK-NEXT: Loop Pass Manager
|
||||
; CHECK-NEXT: Loop Invariant Code Motion
|
||||
@ -172,12 +174,13 @@
|
||||
; CHECK-NEXT: FunctionPass Manager
|
||||
; CHECK-NEXT: Float to int
|
||||
; CHECK-NEXT: Dominator Tree Construction
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Natural Loop Information
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: LCSSA Verifier
|
||||
; CHECK-NEXT: Loop-Closed SSA Form Pass
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Scalar Evolution Analysis
|
||||
; CHECK-NEXT: Loop Pass Manager
|
||||
; CHECK-NEXT: Rotate Loops
|
||||
@ -233,6 +236,7 @@
|
||||
; CHECK-NEXT: Lazy Block Frequency Analysis
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: Combine redundant instructions
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Canonicalize natural loops
|
||||
; CHECK-NEXT: LCSSA Verifier
|
||||
; CHECK-NEXT: Loop-Closed SSA Form Pass
|
||||
|
Loading…
Reference in New Issue
Block a user