mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-20 17:03:09 +00:00
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
This commit is contained in:
parent
d55697cf13
commit
e5b2565a02
@ -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<bool> DisablePreSelect("nopreselect",
|
||||
static cl::opt<bool> DisableSched("nosched",
|
||||
cl::desc("Disable local scheduling pass"));
|
||||
|
||||
static cl::opt<bool> 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
|
||||
|
Loading…
x
Reference in New Issue
Block a user