LLVM API Documentation

Namespaces | Defines | Functions | Variables
InlineSpiller.cpp File Reference
#include "Spiller.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/TinyPtrVector.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/CodeGen/LiveIntervalAnalysis.h"
#include "llvm/CodeGen/LiveRangeEdit.h"
#include "llvm/CodeGen/LiveStackAnalysis.h"
#include "llvm/CodeGen/MachineBlockFrequencyInfo.h"
#include "llvm/CodeGen/MachineBranchProbabilityInfo.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineInstrBundle.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/VirtRegMap.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Target/TargetMachine.h"
Include dependency graph for InlineSpiller.cpp:

Go to the source code of this file.

Namespaces

namespace  llvm
 

List of target independent CodeGen pass IDs.


Defines

#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")
 STATISTIC (NumOmitReloadSpill,"Number of omitted spills of reloads")
 STATISTIC (NumHoists,"Number of hoisted spills")
Spillerllvm::createInlineSpiller (MachineFunctionPass &pass, MachineFunction &mf, VirtRegMap &vrm)
static unsigned isFullCopyOf (const MachineInstr *MI, unsigned Reg)
static raw_ostreamoperator<< (raw_ostream &OS, const InlineSpiller::SibValueInfo &SVI)
static void dumpMachineInstrRangeWithSlotIndex (MachineBasicBlock::iterator B, MachineBasicBlock::iterator E, LiveIntervals const &LIS, const char *const header, unsigned VReg=0)

Variables

static cl::opt< boolDisableHoisting ("disable-spill-hoist", cl::Hidden, cl::desc("Disable inline spill hoisting"))

Define Documentation

#define DEBUG_TYPE   "regalloc"

Definition at line 41 of file InlineSpiller.cpp.


Function Documentation

static unsigned isFullCopyOf ( const MachineInstr MI,
unsigned  Reg 
) [static]

isFullCopyOf - If MI is a COPY to or from Reg, return the other register, otherwise return 0.

Definition at line 209 of file InlineSpiller.cpp.

References llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and llvm::MachineInstr::isFullCopy().

static raw_ostream& operator<< ( raw_ostream OS,
const InlineSpiller::SibValueInfo &  SVI 
) [static]

Definition at line 315 of file InlineSpiller.cpp.

References if().

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"   
)
STATISTIC ( NumOmitReloadSpill  ,
"Number of omitted spills of reloads"   
)
STATISTIC ( NumHoists  ,
"Number of hoisted spills"   
)

Variable Documentation

cl::opt<bool> DisableHoisting("disable-spill-hoist", cl::Hidden, cl::desc("Disable inline spill hoisting")) [static]