LLVM API Documentation

RegAllocLocal.cpp File Reference

#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/SSARegMap.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/LiveVariables.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/Statistic.h"
#include <algorithm>
#include <iostream>

Include dependency graph for RegAllocLocal.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "regalloc"

Functions

FunctionPassllvm::createLocalRegisterAllocator ()

Variables

Statistic NumStores ("ra-local","Number of stores added")
Statistic NumLoads ("ra-local","Number of loads added")
Statistic NumFolded ("ra-local","Number of loads/stores folded into ""instructions")
const TargetMachineTM
MachineFunctionMF
const MRegisterInfoRegInfo
LiveVariablesLV
bool * PhysRegsEverUsed
std::map< unsigned, int > StackSlotForVirtReg
DenseMap< unsigned, VirtReg2IndexFunctorVirt2PhysRegMap
std::vector< int > PhysRegsUsed
std::vector< unsigned > PhysRegsUseOrder
std::vector< bool > VirtRegModified


Define Documentation

#define DEBUG_TYPE   "regalloc"

Definition at line 15 of file RegAllocLocal.cpp.


Variable Documentation

LiveVariables* LV

Definition at line 41 of file RegAllocLocal.cpp.

Referenced by OptimizeAwayTrappingUsesOfLoads(), and OptimizeGlobalAddressOfMalloc().

MachineFunction* MF

Definition at line 39 of file RegAllocLocal.cpp.

Referenced by AddLiveIn(), llvm::SparcV9FunctionInfo::allocateSpilledValue(), llvm::SparcV9FunctionInfo::CalculateArgSize(), llvm::LiveRangeInfo::coalesceLRs(), llvm::SparcV9FunctionInfo::computeOffsetforLocalVar(), llvm::LiveRangeInfo::constructLiveRanges(), llvm::MachineCodeForInstruction::destroy(), llvm::MachineFrameInfo::dump(), llvm::X86RegisterInfo::eliminateCallFramePseudoInstr(), llvm::PPCRegisterInfo::eliminateCallFramePseudoInstr(), llvm::IA64RegisterInfo::eliminateCallFramePseudoInstr(), llvm::AlphaRegisterInfo::eliminateCallFramePseudoInstr(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::IA64RegisterInfo::eliminateFrameIndex(), llvm::AlphaRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::emitEpilogue(), llvm::PPCRegisterInfo::emitEpilogue(), llvm::IA64RegisterInfo::emitEpilogue(), llvm::AlphaRegisterInfo::emitEpilogue(), llvm::X86RegisterInfo::emitPrologue(), llvm::SparcRegisterInfo::emitPrologue(), llvm::PPCRegisterInfo::emitPrologue(), llvm::IA64RegisterInfo::emitPrologue(), llvm::AlphaRegisterInfo::emitPrologue(), llvm::MachineCodeForInstruction::get(), llvm::MRegisterInfo::getAllocatableSet(), llvm::X86RegisterInfo::getFrameRegister(), llvm::PPCRegisterInfo::getFrameRegister(), llvm::IA64RegisterInfo::getFrameRegister(), llvm::AlphaRegisterInfo::getFrameRegister(), llvm::MRegisterInfo::getLocation(), llvm::SelectionDAGLowering::GetRegistersForValue(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), llvm::getStaticStackSize(), hasFP(), isAllocatableRegister(), llvm::PPCTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::AlphaTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerCallTo(), llvm::X86TargetLowering::LowerOperation(), llvm::operator<<(), llvm::MachineFrameInfo::print(), llvm::X86RegisterInfo::processFunctionBeforeFrameFinalized(), llvm::SparcV9FunctionInfo::pushTempValue(), llvm::PeepholeOpts::runOnBasicBlock(), llvm::SelectionDAGISel::runOnFunction(), llvm::ModuloSchedulingSBPass::runOnFunction(), llvm::ModuloSchedulingPass::runOnFunction(), llvm::X86IntelAsmPrinter::runOnMachineFunction(), llvm::X86ATTAsmPrinter::runOnMachineFunction(), llvm::SparcV9CodeEmitter::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), and llvm::AsmPrinter::SetupMachineFunction().

Statistic NumFolded("ra-local","Number of loads/stores folded into ""instructions") [static]

Statistic NumLoads("ra-local","Number of loads added") [static]

Statistic NumStores("ra-local","Number of stores added") [static]

bool* PhysRegsEverUsed

Definition at line 42 of file RegAllocLocal.cpp.

std::vector<int> PhysRegsUsed

Definition at line 64 of file RegAllocLocal.cpp.

std::vector<unsigned> PhysRegsUseOrder

Definition at line 74 of file RegAllocLocal.cpp.

const MRegisterInfo* RegInfo

Definition at line 40 of file RegAllocLocal.cpp.

std::map<unsigned, int> StackSlotForVirtReg

Definition at line 46 of file RegAllocLocal.cpp.

const TargetMachine* TM

Definition at line 38 of file RegAllocLocal.cpp.

Referenced by llvm::addX86ELFObjectWriterPass(), llvm::AlphaTargetLowering::AlphaTargetLowering(), llvm::createAlphaISelDag(), llvm::createAsmPrinterPass(), llvm::createIA64DAGToDAGInstructionSelector(), llvm::createPeepholeOptsPass(), llvm::createPPCISelDag(), llvm::createPreSelectionPass(), llvm::createSparcISelDag(), llvm::createX86ISelDag(), findOptimalStorageSize(), llvm::MachineFunction::MachineFunction(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::MachineInstr::print(), and print().

DenseMap<unsigned, VirtReg2IndexFunctor> Virt2PhysRegMap

Definition at line 50 of file RegAllocLocal.cpp.

std::vector<bool> VirtRegModified

Definition at line 81 of file RegAllocLocal.cpp.