mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-19 02:03:11 +00:00
Add an option to enable the SSA based peephole optimizer.
Eventually this pass will provide substantially better code in the interim between when we have a crappy isel and nice isel. Unfortunately doing so requires fixing the backend to actually SUPPORT all of the fancy addressing modes that we now generate, and writing a DCE pass for machine code. Each of these is a fairly substantial job, so this will remain disabled for the immediate future. :( llvm-svn: 10276
This commit is contained in:
parent
6f1c35bc68
commit
e9269b7cc5
@ -34,6 +34,11 @@ FunctionPass *createX86SimpleInstructionSelector(TargetMachine &TM);
|
||||
///
|
||||
FunctionPass *createX86PatternInstructionSelector(TargetMachine &TM);
|
||||
|
||||
/// createX86SSAPeepholeOptimizerPass - Create a pass to perform SSA-based X86
|
||||
/// specific peephole optimizations.
|
||||
///
|
||||
FunctionPass *createX86SSAPeepholeOptimizerPass();
|
||||
|
||||
/// createX86PeepholeOptimizer - Create a pass to perform X86 specific peephole
|
||||
/// optimizations.
|
||||
///
|
||||
|
@ -29,6 +29,8 @@ namespace {
|
||||
cl::desc("Print generated machine code"));
|
||||
cl::opt<bool> NoPatternISel("disable-pattern-isel", cl::init(true),
|
||||
cl::desc("Use the 'simple' X86 instruction selector"));
|
||||
cl::opt<bool> NoSSAPeephole("disable-ssa-peephole", cl::init(true),
|
||||
cl::desc("Disable the ssa-based peephole optimizer (defaults to disabled)"));
|
||||
}
|
||||
|
||||
// allocateX86TargetMachine - Allocate and return a subclass of TargetMachine
|
||||
@ -66,9 +68,9 @@ bool X86TargetMachine::addPassesToEmitAssembly(PassManager &PM,
|
||||
else
|
||||
PM.add(createX86PatternInstructionSelector(*this));
|
||||
|
||||
// TODO: optional optimizations go here
|
||||
|
||||
// FIXME: Add SSA based peephole optimizer here.
|
||||
// Run optional SSA-based machine code optimizations next...
|
||||
if (!NoSSAPeephole)
|
||||
PM.add(createX86SSAPeepholeOptimizerPass());
|
||||
|
||||
// Print the instruction selected machine code...
|
||||
if (PrintCode)
|
||||
@ -117,7 +119,9 @@ bool X86TargetMachine::addPassesToJITCompile(FunctionPassManager &PM) {
|
||||
else
|
||||
PM.add(createX86PatternInstructionSelector(*this));
|
||||
|
||||
// TODO: optional optimizations go here
|
||||
// Run optional SSA-based machine code optimizations next...
|
||||
if (!NoSSAPeephole)
|
||||
PM.add(createX86SSAPeepholeOptimizerPass());
|
||||
|
||||
// FIXME: Add SSA based peephole optimizer here.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user