LLVM  8.0.1
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 (NumCoalesced, "Number of copies coalesced")
 
 INITIALIZE_PASS (RegAllocFast, "regallocfast", "Fast Register Allocator", false, false) void RegAllocFast
 

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   
)

Definition at line 227 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, E, llvm::MachineInstr::emitError(), llvm::MachineInstr::findTiedOperandIdx(), 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::MachineOperand::getParent(), llvm::MachineInstr::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::MCRegisterInfo::getSubReg(), llvm::MachineOperand::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::RegState::Kill, llvm::MachineBasicBlock::liveins(), LLVM_DEBUG, LLVM_FALLTHROUGH, llvm_unreachable, llvm::TargetInstrInfo::loadRegFromStackSlot(), MI, llvm::MachineInstr::operands(), llvm::printReg(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::MachineInstr::readsVirtualRegister(), Reg, 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::setIsRenamable(), llvm::MachineOperand::setReg(), llvm::MachineOperand::setSubReg(), 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 ( NumCoalesced  ,
"Number of copies coalesced"   
)

Variable Documentation

◆ fastRegAlloc

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