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.  :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10276 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-12-01 05:18:30 +00:00
parent 4537076ee8
commit 9b527704f7
2 changed files with 13 additions and 4 deletions

View File

@ -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.
///

View File

@ -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.