LLVM API Documentation
#include "VirtRegMap.h"
#include "llvm/Function.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/SSARegMap.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Visibility.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/STLExtras.h"
#include <algorithm>
#include <iostream>
Include dependency graph for VirtRegMap.cpp:
Go to the source code of this file.
Defines | |
#define | DEBUG_TYPE "spiller" |
Enumerations | |
enum | SpillerName { simple, local } |
Functions | |
llvm::Spiller * | llvm::createSpiller () |
Variables | |
static Statistic | NumSpills ("spiller","Number of register spills") |
static Statistic | NumStores ("spiller","Number of stores added") |
static Statistic | NumLoads ("spiller","Number of loads added") |
static Statistic | NumReused ("spiller","Number of values reused") |
static Statistic | NumDSE ("spiller","Number of dead stores elided") |
static Statistic | NumDCE ("spiller","Number of copies elided") |
static cl::opt< SpillerName > | SpillerOpt ("spiller", cl::desc("Spiller to use: (default: local)"), cl::Prefix, cl::values(clEnumVal(simple," simple spiller"), clEnumVal(local," local spiller"), clEnumValEnd), cl::init(local)) |
#define DEBUG_TYPE "spiller" |
Definition at line 19 of file VirtRegMap.cpp.
enum SpillerName |
unsigned AssignedPhysReg |
Definition at line 372 of file VirtRegMap.cpp.
Definition at line 386 of file VirtRegMap.cpp.
Referenced by llvm::MachineInstrBuilder::addConstantPoolIndex(), llvm::MachineInstrBuilder::addExternalSymbol(), llvm::MachineInstrBuilder::addFrameIndex(), llvm::DSNode::addFullFunctionList(), llvm::MachineInstrBuilder::addGlobalAddress(), llvm::MachineInstrBuilder::addImm(), llvm::LiveIntervals::addIntervalsForSpills(), llvm::MachineInstrBuilder::addJumpTableIndex(), llvm::MachineInstrBuilder::addMBB(), llvm::DSGraph::addObjectToGraph(), llvm::MachineInstrBuilder::addReg(), llvm::LiveVariables::addVirtualRegisterDead(), llvm::LiveVariables::addVirtualRegisterKilled(), llvm::BuildMI(), CleanupConstantGlobalUsers(), llvm::X86InstrInfo::commuteInstruction(), llvm::TargetInstrInfo::commuteInstruction(), llvm::PPCInstrInfo::commuteInstruction(), llvm::X86InstrInfo::convertToThreeAddress(), CreateVirtualRegisters(), llvm::LiveVariables::dead_begin(), llvm::LiveVariables::dead_end(), llvm::LiveVariables::dead_range(), llvm::ilist_traits< MachineInstr >::destroySentinel(), llvm::SparcRegisterInfo::eliminateCallFramePseudoInstr(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::IA64RegisterInfo::eliminateFrameIndex(), llvm::ARMRegisterInfo::eliminateFrameIndex(), llvm::AlphaRegisterInfo::eliminateFrameIndex(), llvm::IA64RegisterInfo::emitEpilogue(), llvm::ScheduleDAG::EmitNode(), llvm::X86RegisterInfo::emitPrologue(), llvm::IA64RegisterInfo::emitPrologue(), llvm::Archive::findModuleDefiningSymbol(), llvm::X86RegisterInfo::foldMemoryOperand(), llvm::SparcRegisterInfo::foldMemoryOperand(), llvm::PPCRegisterInfo::foldMemoryOperand(), llvm::AlphaRegisterInfo::foldMemoryOperand(), llvm::LiveVariables::getDeadDefsVector(), llvm::VirtRegMap::getFoldedVirts(), llvm::LiveVariables::getKillsVector(), llvm::EquivalenceClasses< llvm::GlobalValue * >::getLeaderValue(), getNumBytesForInstruction(), llvm::EquivalenceClasses< llvm::GlobalValue * >::getOrInsertLeaderValue(), llvm::SlotMachine::getSlot(), llvm::LiveVariables::HandleVirtRegUse(), HandleVRSaveUpdate(), llvm::UniqueVector< llvm::DIEAbbrev >::idFor(), llvm::UniqueVector< llvm::DIEAbbrev >::insert(), llvm::X86TargetLowering::InsertAtEndOfBasicBlock(), llvm::PPCTargetLowering::InsertAtEndOfBasicBlock(), InstructionUsesRegister(), llvm::X86InstrInfo::isLoadFromStackSlot(), llvm::SparcInstrInfo::isLoadFromStackSlot(), llvm::PPCInstrInfo::isLoadFromStackSlot(), llvm::AlphaInstrInfo::isLoadFromStackSlot(), llvm::X86SharedAsmPrinter::isMem(), llvm::X86InstrInfo::isMoveInstr(), llvm::SparcInstrInfo::isMoveInstr(), llvm::PPCInstrInfo::isMoveInstr(), llvm::IA64InstrInfo::isMoveInstr(), llvm::ARMInstrInfo::isMoveInstr(), llvm::AlphaInstrInfo::isMoveInstr(), llvm::X86InstrInfo::isStoreToStackSlot(), llvm::SparcInstrInfo::isStoreToStackSlot(), llvm::PPCInstrInfo::isStoreToStackSlot(), llvm::AlphaInstrInfo::isStoreToStackSlot(), llvm::LiveVariables::killed_begin(), llvm::LiveVariables::killed_end(), llvm::LiveVariables::killed_range(), llvm::LiveVariables::KillsRegister(), MakeMIInst(), MakeMRIInst(), MakeMRInst(), MakeRMIInst(), MakeRMInst(), llvm::operator<<(), llvm::EquivalenceClasses< llvm::GlobalValue * >::operator=(), OptimizeGlobalAddressOfMalloc(), OptimizeOnceStoredGlobal(), llvm::X86IntelAsmPrinter::PrintAsmMemoryOperand(), llvm::X86ATTAsmPrinter::PrintAsmMemoryOperand(), llvm::X86IntelAsmPrinter::PrintAsmOperand(), llvm::X86ATTAsmPrinter::PrintAsmOperand(), llvm::X86IntelAsmPrinter::printf128mem(), llvm::X86ATTAsmPrinter::printf128mem(), llvm::X86IntelAsmPrinter::printf32mem(), llvm::X86ATTAsmPrinter::printf32mem(), llvm::X86IntelAsmPrinter::printf64mem(), llvm::X86ATTAsmPrinter::printf64mem(), llvm::X86IntelAsmPrinter::printi128mem(), llvm::X86ATTAsmPrinter::printi128mem(), llvm::X86IntelAsmPrinter::printi16mem(), llvm::X86ATTAsmPrinter::printi16mem(), llvm::X86IntelAsmPrinter::printi32mem(), llvm::X86ATTAsmPrinter::printi32mem(), llvm::X86IntelAsmPrinter::printi64mem(), llvm::X86ATTAsmPrinter::printi64mem(), llvm::X86IntelAsmPrinter::printi8mem(), llvm::X86ATTAsmPrinter::printi8mem(), llvm::AsmPrinter::printInlineAsm(), llvm::X86IntelAsmPrinter::printMachineInstruction(), llvm::X86ATTAsmPrinter::printMachineInstruction(), llvm::X86IntelAsmPrinter::printMemReference(), llvm::X86ATTAsmPrinter::printMemReference(), llvm::X86IntelAsmPrinter::printOperand(), llvm::X86ATTAsmPrinter::printOperand(), llvm::X86IntelAsmPrinter::printSSECC(), llvm::X86ATTAsmPrinter::printSSECC(), llvm::MachineBasicBlock::push_back(), llvm::LiveVariables::RegisterDefIsDead(), llvm::VirtRegMap::RemoveFromFoldedVirtMap(), llvm::LiveVariables::VarInfo::removeKill(), llvm::LiveVariables::removeVirtualRegisterDead(), llvm::LiveVariables::removeVirtualRegisterKilled(), llvm::LiveVariables::removeVirtualRegistersDead(), llvm::LiveVariables::removeVirtualRegistersKilled(), RemoveVRSaveCode(), llvm::LiveVariables::runOnMachineFunction(), and llvm::FindUsedTypes::runOnModule().
const MRegisterInfo* MRI |
Definition at line 246 of file VirtRegMap.cpp.
const MRegisterInfo* MRI |
Definition at line 209 of file VirtRegMap.cpp.
Referenced by CreateVirtualRegisters(), getInstrOperandRegClass(), getRegClass(), llvm::SelectionDAGLowering::GetRegistersForValue(), isAllocatableRegister(), OutputReg(), llvm::VirtRegMap::print(), print(), llvm::MachineFunction::print(), llvm::LiveInterval::print(), and updateSpillWeights().
Referenced by llvm::VirtRegMap::assignVirt2StackSlot().
unsigned Operand |
Definition at line 363 of file VirtRegMap.cpp.
Referenced by llvm::SelectionDAG::getNode(), and llvm::AssemblyWriter::writeOperand().
unsigned PhysRegReused |
Definition at line 369 of file VirtRegMap.cpp.
std::multimap<unsigned, int> PhysRegsAvailable |
Definition at line 257 of file VirtRegMap.cpp.
std::vector<ReusedOp> Reuses |
Definition at line 387 of file VirtRegMap.cpp.
cl::opt<SpillerName> SpillerOpt("spiller", cl::desc("Spiller to use: (default: local)"), cl::Prefix, cl::values(clEnumVal(simple," simple spiller"),clEnumVal(local," local spiller"),clEnumValEnd), cl::init(local)) [static] |
Referenced by llvm::createSpiller().
std::map<int, unsigned> SpillSlotsAvailable |
Definition at line 252 of file VirtRegMap.cpp.
unsigned StackSlot |
Definition at line 366 of file VirtRegMap.cpp.
const TargetInstrInfo* TII |
Definition at line 247 of file VirtRegMap.cpp.
const TargetInstrInfo* TII |
Definition at line 210 of file VirtRegMap.cpp.
Referenced by CreateVirtualRegisters(), llvm::MachineBasicBlock::getFirstTerminator(), getInstrOperandRegClass(), llvm::SDNode::getOperationName(), getRegClass(), RemoveVRSaveCode(), ReplaceUsesOfBlockWith(), and llvm::LiveVariables::runOnMachineFunction().
unsigned VirtReg |
Definition at line 375 of file VirtRegMap.cpp.