LLVM: lib/CodeGen/RegisterScavenging.cpp File Reference (original) (raw)

This file implements the machine register scavenger. More...

Go to the source code of this file.

Macros
#define DEBUG_TYPE "reg-scavenging"
Functions
STATISTIC (NumScavengedRegs, "Number of frame index regs scavenged")
static std::pair< MCPhysReg, MachineBasicBlock::iterator > findSurvivorBackwards (const MachineRegisterInfo &MRI, MachineBasicBlock::iterator From, MachineBasicBlock::iterator To, const LiveRegUnits &LiveOut, ArrayRef< MCPhysReg > AllocationOrder, bool RestoreAfter)
Given the bitvector Available of free register units at position From.
static unsigned getFrameIndexOperandNum (MachineInstr &MI)
static Register scavengeVReg (MachineRegisterInfo &MRI, RegScavenger &RS, Register VReg, bool ReserveAfter)
Allocate a register for the virtual register VReg.
static bool scavengeFrameVirtualRegsInBlock (MachineRegisterInfo &MRI, RegScavenger &RS, MachineBasicBlock &MBB)
Allocate (scavenge) vregs inside a single basic block.

This file implements the machine register scavenger.

It can provide information, such as unused registers, at any point in a machine basic block. It also provides a mechanism to make registers available by evicting them to spill slots.

Definition in file RegisterScavenging.cpp.

DEBUG_TYPE

#define DEBUG_TYPE "reg-scavenging"

findSurvivorBackwards()

getFrameIndexOperandNum()

scavengeFrameVirtualRegsInBlock()

scavengeVReg()

STATISTIC()

STATISTIC ( NumScavengedRegs ,
"Number of frame index regs scavenged" )