From e5b2565a02efc2f44d1b5e07438e46974d4b24c1 Mon Sep 17 00:00:00 2001 From: "Vikram S. Adve" Date: Fri, 20 Sep 2002 00:52:43 +0000 Subject: [PATCH] Add peephole optimization pass at the end of code generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3846 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/TargetMachine.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/Target/TargetMachine.cpp b/lib/Target/TargetMachine.cpp index 84149f8934b..8d9a832d281 100644 --- a/lib/Target/TargetMachine.cpp +++ b/lib/Target/TargetMachine.cpp @@ -12,6 +12,7 @@ #include "llvm/CodeGen/InstrSelection.h" #include "llvm/CodeGen/InstrScheduling.h" #include "llvm/CodeGen/RegisterAllocation.h" +#include "llvm/CodeGen/PeepholeOpts.h" #include "llvm/CodeGen/MachineCodeForMethod.h" #include "llvm/CodeGen/MachineCodeForInstruction.h" #include "llvm/Reoptimizer/Mapping/MappingInfo.h" @@ -32,6 +33,9 @@ static cl::opt DisablePreSelect("nopreselect", static cl::opt DisableSched("nosched", cl::desc("Disable local scheduling pass")); +static cl::opt DisablePeephole("nopeephole", + cl::desc("Disable peephole optimization pass")); + //--------------------------------------------------------------------------- // class TargetMachine // @@ -132,13 +136,11 @@ TargetMachine::addPassesToEmitAssembly(PassManager &PM, std::ostream &Out) PM.add(getRegisterAllocator(*this)); - //PM.add(new OptimizeLeafProcedures()); - //PM.add(new DeleteFallThroughBranches()); - //PM.add(new RemoveChainedBranches()); // should be folded with previous - //PM.add(new RemoveRedundantOps()); // operations with %g0, NOP, etc. - PM.add(getPrologEpilogInsertionPass()); + if (!DisablePeephole) + PM.add(createPeepholeOptsPass(*this)); + PM.add(MappingInfoForFunction(Out)); // Output assembly language to the .s file. Assembly emission is split into