mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-17 05:31:32 +00:00
Add an option to disable spill hoisting.
When -split-spill-mode is enabled, spill hoisting is performed by SplitKit instead of by InlineSpiller. This hidden command line option is for testing the splitter spill mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139845 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fd8b851908
commit
b9edad0163
@ -28,6 +28,7 @@
|
||||
#include "llvm/CodeGen/MachineRegisterInfo.h"
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
#include "llvm/Target/TargetInstrInfo.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Support/Debug.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
|
||||
@ -45,6 +46,9 @@ STATISTIC(NumRemats, "Number of rematerialized defs for spilling");
|
||||
STATISTIC(NumOmitReloadSpill, "Number of omitted spills of reloads");
|
||||
STATISTIC(NumHoists, "Number of hoisted spills");
|
||||
|
||||
static cl::opt<bool> DisableHoisting("disable-spill-hoist", cl::Hidden,
|
||||
cl::desc("Disable inline spill hoisting"));
|
||||
|
||||
namespace {
|
||||
class InlineSpiller : public Spiller {
|
||||
MachineFunctionPass &Pass;
|
||||
@ -367,7 +371,7 @@ void InlineSpiller::propagateSiblingValue(SibValueMap::iterator SVI,
|
||||
|
||||
// Should this value be propagated as a preferred spill candidate? We don't
|
||||
// propagate values of registers that are about to spill.
|
||||
bool PropSpill = !isRegToSpill(SV.SpillReg);
|
||||
bool PropSpill = !DisableHoisting && !isRegToSpill(SV.SpillReg);
|
||||
unsigned SpillDepth = ~0u;
|
||||
|
||||
for (TinyPtrVector<VNInfo*>::iterator DepI = Deps->begin(),
|
||||
|
Loading…
x
Reference in New Issue
Block a user