mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
Disable GVN Hoist due to still more bugs being found in it. There is
also a discussion about exactly what we should do prior to re-enabling it. The current bug is http://llvm.org/PR32821 and the discussion about this is in the review thread for r300200. llvm-svn: 301505
This commit is contained in:
parent
7228153c53
commit
9932362f35
@ -150,6 +150,10 @@ using namespace llvm;
|
|||||||
static cl::opt<unsigned> MaxDevirtIterations("pm-max-devirt-iterations",
|
static cl::opt<unsigned> MaxDevirtIterations("pm-max-devirt-iterations",
|
||||||
cl::ReallyHidden, cl::init(4));
|
cl::ReallyHidden, cl::init(4));
|
||||||
|
|
||||||
|
static cl::opt<bool> EnableGVNHoist(
|
||||||
|
"enable-npm-gvn-hoist", cl::init(false), cl::Hidden,
|
||||||
|
cl::desc("Enable the GVN hoisting pass for the new PM (default = off)"));
|
||||||
|
|
||||||
static Regex DefaultAliasRegex("^(default|lto-pre-link|lto)<(O[0123sz])>$");
|
static Regex DefaultAliasRegex("^(default|lto-pre-link|lto)<(O[0123sz])>$");
|
||||||
|
|
||||||
static bool isOptimizingForSize(PassBuilder::OptimizationLevel Level) {
|
static bool isOptimizingForSize(PassBuilder::OptimizationLevel Level) {
|
||||||
@ -454,7 +458,8 @@ PassBuilder::buildPerModuleDefaultPipeline(OptimizationLevel Level,
|
|||||||
EarlyFPM.addPass(SROA());
|
EarlyFPM.addPass(SROA());
|
||||||
EarlyFPM.addPass(EarlyCSEPass());
|
EarlyFPM.addPass(EarlyCSEPass());
|
||||||
EarlyFPM.addPass(LowerExpectIntrinsicPass());
|
EarlyFPM.addPass(LowerExpectIntrinsicPass());
|
||||||
EarlyFPM.addPass(GVNHoistPass());
|
if (EnableGVNHoist)
|
||||||
|
EarlyFPM.addPass(GVNHoistPass());
|
||||||
MPM.addPass(createModuleToFunctionPassAdaptor(std::move(EarlyFPM)));
|
MPM.addPass(createModuleToFunctionPassAdaptor(std::move(EarlyFPM)));
|
||||||
|
|
||||||
// Interprocedural constant propagation now that basic cleanup has occured
|
// Interprocedural constant propagation now that basic cleanup has occured
|
||||||
|
@ -137,8 +137,8 @@ static cl::opt<int> PreInlineThreshold(
|
|||||||
"(default = 75)"));
|
"(default = 75)"));
|
||||||
|
|
||||||
static cl::opt<bool> EnableGVNHoist(
|
static cl::opt<bool> EnableGVNHoist(
|
||||||
"enable-gvn-hoist", cl::init(true), cl::Hidden,
|
"enable-gvn-hoist", cl::init(false), cl::Hidden,
|
||||||
cl::desc("Enable the GVN hoisting pass (default = on)"));
|
cl::desc("Enable the GVN hoisting pass (default = off)"));
|
||||||
|
|
||||||
static cl::opt<bool>
|
static cl::opt<bool>
|
||||||
DisableLibCallsShrinkWrap("disable-libcalls-shrinkwrap", cl::init(false),
|
DisableLibCallsShrinkWrap("disable-libcalls-shrinkwrap", cl::init(false),
|
||||||
|
@ -41,7 +41,6 @@ attributes #0 = { optnone noinline }
|
|||||||
; OPT-O1-DAG: Skipping pass 'Combine redundant instructions'
|
; OPT-O1-DAG: Skipping pass 'Combine redundant instructions'
|
||||||
; OPT-O1-DAG: Skipping pass 'Dead Store Elimination'
|
; OPT-O1-DAG: Skipping pass 'Dead Store Elimination'
|
||||||
; OPT-O1-DAG: Skipping pass 'Early CSE'
|
; OPT-O1-DAG: Skipping pass 'Early CSE'
|
||||||
; OPT-O1-DAG: Skipping pass 'Early GVN Hoisting of Expressions'
|
|
||||||
; OPT-O1-DAG: Skipping pass 'Jump Threading'
|
; OPT-O1-DAG: Skipping pass 'Jump Threading'
|
||||||
; OPT-O1-DAG: Skipping pass 'MemCpy Optimization'
|
; OPT-O1-DAG: Skipping pass 'MemCpy Optimization'
|
||||||
; OPT-O1-DAG: Skipping pass 'Reassociate expressions'
|
; OPT-O1-DAG: Skipping pass 'Reassociate expressions'
|
||||||
@ -59,7 +58,6 @@ attributes #0 = { optnone noinline }
|
|||||||
; OPT-MORE-DAG: Skipping pass 'Basic-Block Vectorization'
|
; OPT-MORE-DAG: Skipping pass 'Basic-Block Vectorization'
|
||||||
; OPT-MORE-DAG: Skipping pass 'Dead Code Elimination'
|
; OPT-MORE-DAG: Skipping pass 'Dead Code Elimination'
|
||||||
; OPT-MORE-DAG: Skipping pass 'Dead Instruction Elimination'
|
; OPT-MORE-DAG: Skipping pass 'Dead Instruction Elimination'
|
||||||
; OPT-MORE-DAG: Skipping pass 'Early GVN Hoisting of Expressions'
|
|
||||||
; OPT-MORE-DAG: Skipping pass 'Lower atomic intrinsics
|
; OPT-MORE-DAG: Skipping pass 'Lower atomic intrinsics
|
||||||
|
|
||||||
; Loop IR passes that opt doesn't turn on by default.
|
; Loop IR passes that opt doesn't turn on by default.
|
||||||
|
@ -43,10 +43,6 @@
|
|||||||
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
||||||
; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis
|
; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: LowerExpectIntrinsicPass
|
; CHECK-O-NEXT: Running pass: LowerExpectIntrinsicPass
|
||||||
; CHECK-O-NEXT: Running pass: GVNHoistPass
|
|
||||||
; CHECK-O-NEXT: Running analysis: AAManager
|
|
||||||
; CHECK-O-NEXT: Running analysis: MemoryDependenceAnalysis
|
|
||||||
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
|
|
||||||
; CHECK-O-NEXT: Finished llvm::Function pass manager run.
|
; CHECK-O-NEXT: Finished llvm::Function pass manager run.
|
||||||
; CHECK-O-NEXT: Running pass: IPSCCPPass
|
; CHECK-O-NEXT: Running pass: IPSCCPPass
|
||||||
; CHECK-O-NEXT: Running pass: GlobalOptPass
|
; CHECK-O-NEXT: Running pass: GlobalOptPass
|
||||||
@ -69,6 +65,7 @@
|
|||||||
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy<{{.*}}LazyCallGraph{{.*}}>
|
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy<{{.*}}LazyCallGraph{{.*}}>
|
||||||
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
||||||
; CHECK-O-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy
|
; CHECK-O-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy
|
||||||
|
; CHECK-O-NEXT: Running analysis: AAManager
|
||||||
; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass
|
; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass
|
||||||
; CHECK-O-NEXT: Running pass: CGSCCToFunctionPassAdaptor<{{.*}}PassManager{{.*}}>
|
; CHECK-O-NEXT: Running pass: CGSCCToFunctionPassAdaptor<{{.*}}PassManager{{.*}}>
|
||||||
; CHECK-O-NEXT: Starting llvm::Function pass manager run.
|
; CHECK-O-NEXT: Starting llvm::Function pass manager run.
|
||||||
@ -108,13 +105,18 @@
|
|||||||
; CHECK-O-NEXT: Finished Loop pass manager run.
|
; CHECK-O-NEXT: Finished Loop pass manager run.
|
||||||
; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass
|
; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass
|
||||||
; CHECK-Os-NEXT: Running pass: GVN
|
; CHECK-Os-NEXT: Running pass: GVN
|
||||||
|
; CHECK-Os-NEXT: Running analysis: MemoryDependenceAnalysis
|
||||||
; CHECK-Oz-NEXT: Running pass: MergedLoadStoreMotionPass
|
; CHECK-Oz-NEXT: Running pass: MergedLoadStoreMotionPass
|
||||||
; CHECK-Oz-NEXT: Running pass: GVN
|
; CHECK-Oz-NEXT: Running pass: GVN
|
||||||
|
; CHECK-Oz-NEXT: Running analysis: MemoryDependenceAnalysis
|
||||||
; CHECK-O2-NEXT: Running pass: MergedLoadStoreMotionPass
|
; CHECK-O2-NEXT: Running pass: MergedLoadStoreMotionPass
|
||||||
; CHECK-O2-NEXT: Running pass: GVN
|
; CHECK-O2-NEXT: Running pass: GVN
|
||||||
|
; CHECK-O2-NEXT: Running analysis: MemoryDependenceAnalysis
|
||||||
; CHECK-O3-NEXT: Running pass: MergedLoadStoreMotionPass
|
; CHECK-O3-NEXT: Running pass: MergedLoadStoreMotionPass
|
||||||
; CHECK-O3-NEXT: Running pass: GVN
|
; CHECK-O3-NEXT: Running pass: GVN
|
||||||
|
; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O-NEXT: Running pass: MemCpyOptPass
|
||||||
|
; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: SCCPPass
|
; CHECK-O-NEXT: Running pass: SCCPPass
|
||||||
; CHECK-O-NEXT: Running pass: BDCEPass
|
; CHECK-O-NEXT: Running pass: BDCEPass
|
||||||
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: opt -S -O2 < %s | FileCheck %s
|
; RUN: opt -S -O2 -enable-gvn-hoist < %s | FileCheck %s
|
||||||
|
|
||||||
; Check that the inlined loads are hoisted.
|
; Check that the inlined loads are hoisted.
|
||||||
; CHECK-LABEL: define i32 @fun(
|
; CHECK-LABEL: define i32 @fun(
|
||||||
|
Loading…
Reference in New Issue
Block a user