LLVM 20.0.0git
|
#include "CodeGen/AllocationOrder.h"
Classes | |
class | Iterator |
Forward iterator for an AllocationOrder. More... | |
Public Member Functions | |
AllocationOrder (SmallVector< MCPhysReg, 16 > &&Hints, ArrayRef< MCPhysReg > Order, bool HardHints) | |
Create an AllocationOrder given the Hits, Order, and HardHits values. | |
Iterator | begin () const |
Iterator | end () const |
Iterator | getOrderLimitEnd (unsigned OrderLimit) const |
ArrayRef< MCPhysReg > | getOrder () const |
Get the allocation order without reordered hints. | |
bool | isHint (Register Reg) const |
Return true if Reg is a preferred physical register. | |
Static Public Member Functions | |
static AllocationOrder | create (unsigned VirtReg, const VirtRegMap &VRM, const RegisterClassInfo &RegClassInfo, const LiveRegMatrix *Matrix) |
Create a new AllocationOrder for VirtReg. | |
Definition at line 30 of file AllocationOrder.h.
|
inline |
Create an AllocationOrder given the Hits, Order, and HardHits values.
Use the create method above - the ctor is for unittests.
Definition at line 90 of file AllocationOrder.h.
References llvm::move(), and llvm::size().
|
inline |
Definition at line 95 of file AllocationOrder.h.
|
static |
Create a new AllocationOrder for VirtReg.
VirtReg | Virtual register to allocate for. |
VRM | Virtual register map for function. |
RegClassInfo | Information about reserved and allocatable registers. |
Definition at line 29 of file AllocationOrder.cpp.
References llvm::all_of(), assert(), llvm::SmallVectorBase< Size_T >::empty(), llvm::VirtRegMap::getMachineFunction(), llvm::RegisterClassInfo::getOrder(), llvm::MachineRegisterInfo::getRegClass(), llvm::MachineFunction::getRegInfo(), llvm::VirtRegMap::getTargetRegInfo(), llvm::is_contained(), LLVM_DEBUG, Matrix, and TRI.
Referenced by llvm::RegAllocEvictionAdvisor::canReassign().
|
inline |
Definition at line 99 of file AllocationOrder.h.
Get the allocation order without reordered hints.
Definition at line 111 of file AllocationOrder.h.
Referenced by llvm::RegAllocEvictionAdvisor::getOrderLimit().
Definition at line 101 of file AllocationOrder.h.
References assert(), and llvm::ArrayRef< T >::size().
Return true if Reg is a preferred physical register.
Definition at line 114 of file AllocationOrder.h.
References assert(), llvm::is_contained(), and Reg.