LLVM 24.0.0git
RegAllocFast.cpp File Reference

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) bool RegAllocFastImpl
static bool dominates (InstrPosIndexes &PosIndexes, const MachineInstr &A, const MachineInstr &B)
static bool isCoalescable (const MachineInstr &MI)
static const MachineOperand & getTiedOperand (const MachineInstr &MI, const MachineOperand &MO)
 The operand MO is tied to.
static Register getTiedUseReg (const MachineInstr &MI, const MachineOperand &DefMO)
 The register DefMO's tied use reads, when the two end up in the same register: a subregister index on either side makes them differ.
static bool isLiveThroughDef (const MachineInstr &MI, const MachineOperand &MO)
 Early clobber, partial def, or tied to a use that carries a value: the register is occupied while the uses are read.

Variables

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

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "regalloc"

Definition at line 62 of file RegAllocFast.cpp.

Function Documentation

◆ dominates()

◆ getTiedOperand()

const MachineOperand & getTiedOperand ( const MachineInstr & MI,
const MachineOperand & MO )
static

The operand MO is tied to.

Definition at line 934 of file RegAllocFast.cpp.

References MI.

Referenced by getTiedUseReg().

◆ getTiedUseReg()

Register getTiedUseReg ( const MachineInstr & MI,
const MachineOperand & DefMO )
static

The register DefMO's tied use reads, when the two end up in the same register: a subregister index on either side makes them differ.

Definition at line 941 of file RegAllocFast.cpp.

References llvm::MachineOperand::getReg(), llvm::MachineOperand::getSubReg(), getTiedOperand(), llvm::MachineOperand::isTied(), MI, and Register.

◆ INITIALIZE_PASS()

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

Definition at line 477 of file RegAllocFast.cpp.

References assert(), const, Reg, and TRI.

◆ isCoalescable()

bool isCoalescable ( const MachineInstr & MI)
static

Definition at line 931 of file RegAllocFast.cpp.

References MI.

◆ isLiveThroughDef()

bool isLiveThroughDef ( const MachineInstr & MI,
const MachineOperand & MO )
static

Early clobber, partial def, or tied to a use that carries a value: the register is occupied while the uses are read.

Definition at line 1545 of file RegAllocFast.cpp.

References assert(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isEarlyClobber(), llvm::MachineOperand::isTied(), MI, and llvm::MachineOperand::readsReg().

◆ STATISTIC() [1/3]

STATISTIC ( NumCoalesced ,
"Number of copies coalesced"  )

◆ STATISTIC() [2/3]

STATISTIC ( NumLoads ,
"Number of loads added"  )

◆ STATISTIC() [3/3]

STATISTIC ( NumStores ,
"Number of stores added"  )

Variable Documentation

◆ fastRegAlloc

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