forked from OSchip/llvm-project
parent
9bf9110d93
commit
c324be32c4
|
@ -38,10 +38,6 @@ static cl::opt<bool>
|
|||
EnableSinking("enable-sinking", cl::init(false), cl::Hidden,
|
||||
cl::desc("Perform sinking on machine code"));
|
||||
static cl::opt<bool>
|
||||
EnableStackColoring("stack-coloring",
|
||||
cl::init(false), cl::Hidden,
|
||||
cl::desc("Perform stack slot coloring"));
|
||||
static cl::opt<bool>
|
||||
EnableLICM("machine-licm",
|
||||
cl::init(false), cl::Hidden,
|
||||
cl::desc("Perform loop-invariant code motion on machine code"));
|
||||
|
@ -103,8 +99,7 @@ LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
|
|||
PM.add(createRegisterAllocator());
|
||||
|
||||
// Perform stack slot coloring.
|
||||
if (EnableStackColoring)
|
||||
PM.add(createStackSlotColoringPass());
|
||||
PM.add(createStackSlotColoringPass());
|
||||
|
||||
if (PrintMachineCode) // Print the register-allocated code
|
||||
PM.add(createMachineFunctionPrinterPass(cerr));
|
||||
|
@ -240,8 +235,7 @@ bool LLVMTargetMachine::addPassesToEmitMachineCode(PassManagerBase &PM,
|
|||
PM.add(createRegisterAllocator());
|
||||
|
||||
// Perform stack slot coloring.
|
||||
if (EnableStackColoring)
|
||||
PM.add(createStackSlotColoringPass());
|
||||
PM.add(createStackSlotColoringPass());
|
||||
|
||||
if (PrintMachineCode)
|
||||
PM.add(createMachineFunctionPrinterPass(cerr));
|
||||
|
|
|
@ -197,3 +197,12 @@ It would be really nice to be able to write patterns in .td files for copies,
|
|||
which would eliminate a bunch of explicit predicates on them (e.g. no side
|
||||
effects). Once this is in place, it would be even better to have tblgen
|
||||
synthesize the various copy insertion/inspection methods in TargetInstrInfo.
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
Stack coloring improvments:
|
||||
|
||||
1. Do proper LiveStackAnalysis on all stack objects including those which are
|
||||
not spill slots.
|
||||
2. Reorder objects to fill in gaps between objects.
|
||||
e.g. 4, 1, <gap>, 4, 1, 1, 1, <gap>, 4 => 4, 1, 1, 1, 1, 4, 4
|
||||
|
|
Loading…
Reference in New Issue