Move enabling the local stack allocation pass into the target where it belongs.

For now it's still a command line option, but the interface to the generic
code doesn't need to know that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111942 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Grosbach
2010-08-24 19:05:43 +00:00
parent 05ea54e886
commit a273442891
6 changed files with 26 additions and 23 deletions
+3 -15
View File
@@ -74,16 +74,6 @@ static cl::opt<bool> EnableMCLogging("enable-mc-api-logging", cl::Hidden,
static cl::opt<bool> VerifyMachineCode("verify-machineinstrs", cl::Hidden,
cl::desc("Verify generated machine code"),
cl::init(getenv("LLVM_VERIFY_MACHINEINSTRS")!=NULL));
// Enabled or disable local stack object block allocation. This is an
// experimental pass that allocates locals relative to one another before
// register allocation and then assigns them to actual stack slots as a block
// later in PEI. This will eventually allow targets with limited index offset
// range to allocate additional base registers (not just FP and SP) to
// more efficiently reference locals, as well as handle situations where
// locals cannot be referenced via SP or FP at all (dynamic stack realignment
// together with variable sized objects, for example).
cl::opt<bool> EnableLocalStackAlloc("enable-local-stack-alloc", cl::init(false),
cl::Hidden, cl::desc("Enable pre-regalloc stack frame index allocation"));
static cl::opt<cl::boolOrDefault>
AsmVerbose("asm-verbose", cl::desc("Add comments to directives."),
@@ -354,11 +344,9 @@ bool LLVMTargetMachine::addCommonCodeGenPasses(PassManagerBase &PM,
if (OptLevel != CodeGenOpt::None)
PM.add(createOptimizePHIsPass());
// Assign local variables to stack slots relative to one another and simplify
// frame index references where possible. Final stack slot locations will be
// assigned in PEI.
if (EnableLocalStackAlloc)
PM.add(createLocalStackSlotAllocationPass());
// If the target requests it, assign local variables to stack slots relative
// to one another and simplify frame index references where possible.
PM.add(createLocalStackSlotAllocationPass());
if (OptLevel != CodeGenOpt::None) {
// With optimization, dead code should already be eliminated. However