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" | ) |