LLVM  6.0.0svn
Macros | Functions | Variables
RegAllocFast.cpp File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/IndexedMap.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/SparseSet.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/RegAllocRegistry.h"
#include "llvm/CodeGen/RegisterClassInfo.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/Metadata.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <tuple>
#include <vector>
Include dependency graph for RegAllocFast.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "regalloc"
 

Functions

 STATISTIC (NumStores, "Number of stores added")
 
 STATISTIC (NumLoads, "Number of loads added")
 
 STATISTIC (NumCopies, "Number of copies coalesced")
 
 INITIALIZE_PASS (RegAllocFast, "regallocfast", "Fast Register Allocator", false, false) int RegAllocFast
 This allocates space for the specified virtual register to be held on the stack. More...
 

Variables

static RegisterRegAlloc fastRegAlloc ("fast", "fast register allocator", createFastRegisterAllocator)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "regalloc"

Definition at line 53 of file RegAllocFast.cpp.

Function Documentation

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( RegAllocFast  ,
"regallocfast"  ,
"Fast Register Allocator ,
false  ,
false   
)

This allocates space for the specified virtual register to be held on the stack.

Definition at line 225 of file RegAllocFast.cpp.

References llvm::MachineRegisterInfo::addPhysRegsUsedFromRegMask(), llvm::MachineInstr::addRegisterDefined(), llvm::MachineInstr::addRegisterKilled(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, assert(), llvm::MachineBasicBlock::begin(), llvm::buildDbgValueForSpill(), llvm::IndexedMap< T, ToIndexT >::clear(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::clear(), llvm::SmallVectorImpl< T >::clear(), llvm::TargetRegisterClass::contains(), llvm::SmallSet< T, N, C >::count(), llvm::MachineFrameInfo::CreateSpillStackObject(), llvm::dbgs(), llvm::RegState::Dead, DEBUG, E, llvm::MachineInstr::emitError(), llvm::MachineInstr::findTiedOperandIdx(), llvm::ISD::FrameIndex, llvm::MachineInstr::getDesc(), llvm::MachineFunction::getFrameInfo(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineFunction::getName(), llvm::MCInstrDesc::getNumDefs(), llvm::MachineInstr::getNumOperands(), llvm::MCRegisterInfo::getNumRegs(), llvm::MCRegisterInfo::getNumRegUnits(), llvm::MachineInstr::getOperand(), llvm::MCInstrDesc::getOperandConstraint(), llvm::RegisterClassInfo::getOrder(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getParent(), llvm::MachineOperand::getReg(), llvm::MachineRegisterInfo::getRegClass(), llvm::TargetRegisterInfo::getRegClassName(), llvm::MachineFunction::getRegInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineOperand::getRegMask(), llvm::TargetRegisterInfo::getSpillAlignment(), llvm::TargetRegisterInfo::getSpillSize(), llvm::MachineOperand::getSubReg(), llvm::MCRegisterInfo::getSubReg(), llvm::MachineFunction::getSubtarget(), llvm::MachineRegisterInfo::hasOneNonDBGUse(), I, llvm::SmallSet< T, N, C >::insert(), llvm::MachineRegisterInfo::isAllocatable(), llvm::MachineInstr::isCall(), llvm::MachineInstr::isCopy(), llvm::MachineInstr::isCopyLike(), llvm::MachineOperand::isDead(), llvm::MachineInstr::isDebugValue(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isEarlyClobber(), llvm::MachineOperand::isImplicit(), llvm::MachineInstr::isInlineAsm(), llvm::MachineOperand::isKill(), llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isRegMask(), llvm::MCRegisterInfo::isSuperRegister(), llvm::MachineOperand::isTied(), llvm::MachineOperand::isUndef(), llvm::MachineOperand::isUse(), llvm::MCRegAliasIterator::isValid(), llvm::TargetRegisterInfo::isVirtualRegister(), llvm::MachineBasicBlock::liveins(), LLVM_FALLTHROUGH, llvm_unreachable, llvm::TargetInstrInfo::loadRegFromStackSlot(), MI, llvm::MachineInstr::operands(), llvm::printReg(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::MachineInstr::readsVirtualRegister(), llvm::MachineRegisterInfo::reg_nodbg_begin(), llvm::MachineRegisterInfo::reg_nodbg_end(), llvm::IndexedMap< T, ToIndexT >::resize(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::MachineOperand::setIsDead(), llvm::MachineOperand::setIsKill(), llvm::MachineOperand::setIsRenamableIfNoExtraRegAllocReq(), llvm::MachineOperand::setReg(), llvm::MachineOperand::setSubReg(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Size, llvm::TargetInstrInfo::storeRegToStackSlot(), llvm::MCOI::TIED_TO, llvm::updateDbgValueForSpill(), llvm::MachineRegisterInfo::use_instr_nodbg_begin(), and UseMI.

◆ STATISTIC() [1/3]

STATISTIC ( NumStores  ,
"Number of stores added"   
)

◆ STATISTIC() [2/3]

STATISTIC ( NumLoads  ,
"Number of loads added"   
)

◆ STATISTIC() [3/3]

STATISTIC ( NumCopies  ,
"Number of copies coalesced"   
)

Variable Documentation

◆ fastRegAlloc

RegisterRegAlloc fastRegAlloc("fast", "fast register allocator", createFastRegisterAllocator)
static