LLVM: lib/CodeGen/InlineSpiller.cpp File Reference (original) (raw)
Go to the source code of this file.
| 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. |
◆ 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 |