LLVM: lib/CodeGen/InlineSpiller.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "regalloc"
Functions
STATISTIC (NumSpilledRanges, "Number of spilled live ranges")
STATISTIC (NumSnippets, "Number of spilled snippets")
STATISTIC (NumSpills, "Number of spills inserted")
STATISTIC (NumSpillsRemoved, "Number of spills removed")
STATISTIC (NumReloads, "Number of reloads inserted")
STATISTIC (NumReloadsRemoved, "Number of reloads removed")
STATISTIC (NumFolded, "Number of folded stack accesses")
STATISTIC (NumFoldedLoads, "Number of folded loads")
STATISTIC (NumRemats, "Number of rematerialized defs for spilling")
static Register isCopyOf (const MachineInstr &MI, Register Reg, const TargetInstrInfo &TII)
isFullCopyOf - If MI is a COPY to or from Reg, return the other register, otherwise return 0.
static Register isCopyOfBundle (const MachineInstr &FirstMI, Register Reg, const TargetInstrInfo &TII)
Check for a copy bundle as formed by SplitKit.
static void getVDefInterval (const MachineInstr &MI, LiveIntervals &LIS)
static LLVM_DUMP_METHOD void dumpMachineInstrRangeWithSlotIndex (MachineBasicBlock::iterator B, MachineBasicBlock::iterator E, LiveIntervals const &LIS, const char *const header, Register VReg=Register())
static bool isRealSpill (const MachineInstr &Def)
Check if Def fully defines a VReg with an undefined value.
Variables
static cl::opt< bool > RestrictStatepointRemat ("restrict-statepoint-remat", cl::init(false), cl::Hidden, cl::desc("Restrict remat for statepoint operands"))

DEBUG_TYPE

#define DEBUG_TYPE "regalloc"

dumpMachineInstrRangeWithSlotIndex()

getVDefInterval()

isCopyOf()

isCopyOfBundle()

Check for a copy bundle as formed by SplitKit.

Definition at line 273 of file InlineSpiller.cpp.

References assert(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::DstOp::getReg(), llvm::SrcOp::getReg(), I, llvm::MachineInstr::isBundled(), llvm::MachineInstr::isBundledWithPred(), llvm::MachineInstr::isBundledWithSucc(), isCopyOf(), MI, Reg, Register, and TII.

isRealSpill()

Check if Def fully defines a VReg with an undefined value.

If that's the case, that means the value of VReg is actually not relevant.

Definition at line 1134 of file InlineSpiller.cpp.

STATISTIC() [1/9]

STATISTIC ( NumFolded ,
"Number of folded stack accesses" )

STATISTIC() [2/9]

STATISTIC ( NumFoldedLoads ,
"Number of folded loads" )

STATISTIC() [3/9]

STATISTIC ( NumReloads ,
"Number of reloads inserted" )

STATISTIC() [4/9]

STATISTIC ( NumReloadsRemoved ,
"Number of reloads removed" )

STATISTIC() [5/9]

STATISTIC ( NumRemats ,
"Number of rematerialized defs for spilling" )

STATISTIC() [6/9]

STATISTIC ( NumSnippets ,
"Number of spilled snippets" )

STATISTIC() [7/9]

STATISTIC ( NumSpilledRanges ,
"Number of spilled live ranges" )

STATISTIC() [8/9]

STATISTIC ( NumSpills ,
"Number of spills inserted" )

STATISTIC() [9/9]

STATISTIC ( NumSpillsRemoved ,
"Number of spills removed" )

RestrictStatepointRemat

cl::opt< bool > RestrictStatepointRemat("restrict-statepoint-remat", cl::init(false), cl::Hidden, cl::desc("Restrict remat for statepoint operands")) ( "restrict-statepoint-remat" , cl::init(false) , cl::Hidden , cl::desc("Restrict remat for statepoint operands") ) static