LLVM API Documentation

PreAllocSplitting.cpp File Reference

#include "llvm/CodeGen/LiveIntervalAnalysis.h"
#include "llvm/CodeGen/LiveStackAnalysis.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/RegisterCoalescer.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/Target/TargetRegisterInfo.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/Statistic.h"

Include dependency graph for PreAllocSplitting.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "pre-alloc-split"

Functions

 STATISTIC (NumSplits,"Number of intervals split")
 STATISTIC (NumRemats,"Number of intervals split by rematerialization")
 STATISTIC (NumFolds,"Number of intervals split with spill folding")
 STATISTIC (NumRenumbers,"Number of intervals renumbered into new registers")
 STATISTIC (NumDeadSpills,"Number of dead spills removed")

Variables

static cl::opt< int > PreSplitLimit ("pre-split-limit", cl::init(-1), cl::Hidden)
static cl::opt< int > DeadSplitLimit ("dead-split-limit", cl::init(-1), cl::Hidden)
static RegisterPass
< PreAllocSplitting > 
X ("pre-alloc-splitting","Pre-Register Allocation Live Interval Splitting")


Define Documentation

#define DEBUG_TYPE   "pre-alloc-split"

Definition at line 17 of file PreAllocSplitting.cpp.


Function Documentation

STATISTIC ( NumDeadSpills  ,
"Number of dead spills removed"   
)

STATISTIC ( NumRenumbers  ,
"Number of intervals renumbered into new registers"   
)

STATISTIC ( NumFolds  ,
"Number of intervals split with spill folding"   
)

STATISTIC ( NumRemats  ,
"Number of intervals split by rematerialization"   
)

STATISTIC ( NumSplits  ,
"Number of intervals split"   
)


Variable Documentation

Definition at line 60 of file PreAllocSplitting.cpp.

Definition at line 66 of file PreAllocSplitting.cpp.

Definition at line 63 of file PreAllocSplitting.cpp.

Definition at line 69 of file PreAllocSplitting.cpp.

Definition at line 50 of file PreAllocSplitting.cpp.

Definition at line 72 of file PreAllocSplitting.cpp.

Definition at line 75 of file PreAllocSplitting.cpp.

cl::opt<int> DeadSplitLimit("dead-split-limit", cl::init(-1), cl::Hidden) [static]

Definition at line 81 of file PreAllocSplitting.cpp.

char ID [static]

Definition at line 84 of file PreAllocSplitting.cpp.

Definition at line 78 of file PreAllocSplitting.cpp.

Definition at line 56 of file PreAllocSplitting.cpp.

Definition at line 57 of file PreAllocSplitting.cpp.

Definition at line 54 of file PreAllocSplitting.cpp.

Referenced by llvm::addFrameReference(), llvm::MipsRegisterInfo::adjustMipsStackFrame(), CheckDAGForTailCallsAndFixThem(), llvm::SPURegisterInfo::determineFrameLayout(), llvm::PPCRegisterInfo::determineFrameLayout(), llvm::SPURegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::emitEpilogue(), llvm::X86RegisterInfo::emitEpilogue(), llvm::SPURegisterInfo::emitEpilogue(), llvm::PPCRegisterInfo::emitEpilogue(), llvm::MipsRegisterInfo::emitEpilogue(), llvm::IA64RegisterInfo::emitEpilogue(), llvm::ARMRegisterInfo::emitEpilogue(), llvm::AlphaRegisterInfo::emitEpilogue(), llvm::X86RegisterInfo::emitFrameMoves(), llvm::XCoreRegisterInfo::emitPrologue(), llvm::X86RegisterInfo::emitPrologue(), llvm::SPURegisterInfo::emitPrologue(), llvm::SparcRegisterInfo::emitPrologue(), llvm::PPCRegisterInfo::emitPrologue(), llvm::MipsRegisterInfo::emitPrologue(), llvm::IA64RegisterInfo::emitPrologue(), llvm::ARMRegisterInfo::emitPrologue(), llvm::AlphaRegisterInfo::emitPrologue(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::X86RegisterInfo::getCalleeSavedRegClasses(), llvm::X86RegisterInfo::getCalleeSavedRegs(), llvm::TargetRegisterInfo::getFrameIndexOffset(), llvm::X86RegisterInfo::hasFP(), llvm::SPURegisterInfo::hasFP(), llvm::PPCRegisterInfo::hasFP(), llvm::MipsRegisterInfo::hasFP(), llvm::IA64RegisterInfo::hasFP(), llvm::ARMRegisterInfo::hasFP(), llvm::AlphaRegisterInfo::hasFP(), llvm::XCoreInstrInfo::isInvariantLoad(), llvm::X86InstrInfo::isInvariantLoad(), llvm::IA64TargetLowering::LowerArguments(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), LowerFORMAL_ARGUMENT(), LowerFORMAL_ARGUMENTS(), MeetsMaxMemopRequirement(), MustSaveLR(), needsFP(), llvm::XCoreRegisterInfo::needsFrameMoves(), llvm::X86RegisterInfo::needsStackRealignment(), llvm::XCoreRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::PPCRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::ARMRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::MipsRegisterInfo::processFunctionBeforeFrameFinalized(), and llvm::XCoreInstrInfo::spillCalleeSavedRegisters().

Definition at line 55 of file PreAllocSplitting.cpp.

cl::opt<int> PreSplitLimit("pre-split-limit", cl::init(-1), cl::Hidden) [static]

Definition at line 52 of file PreAllocSplitting.cpp.

const TargetMachine* TM

Definition at line 51 of file PreAllocSplitting.cpp.

Definition at line 53 of file PreAllocSplitting.cpp.

RegisterPass<PreAllocSplitting> X("pre-alloc-splitting","Pre-Register Allocation Live Interval Splitting") [static]