LLVM API Documentation
#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"
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 DEBUG_TYPE "pre-alloc-split" |
Definition at line 17 of file PreAllocSplitting.cpp.
| 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" | ||||
| ) |
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.
| DenseMap<unsigned, int> IntervalSSMap |
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] |
| const TargetInstrInfo* TII |
Definition at line 52 of file PreAllocSplitting.cpp.
| const TargetMachine* TM |
Definition at line 51 of file PreAllocSplitting.cpp.
| const TargetRegisterInfo* TRI |
Definition at line 53 of file PreAllocSplitting.cpp.
RegisterPass<PreAllocSplitting> X("pre-alloc-splitting","Pre-Register Allocation Live Interval Splitting") [static] |