class DefaultEvictionAdvisor
Declaration
class DefaultEvictionAdvisor : public RegAllocEvictionAdvisor { /* full declaration omitted */ };
Declared at: llvm/lib/CodeGen/RegAllocEvictionAdvisor.h:203
Inherits from: RegAllocEvictionAdvisor
Member Variables
Inherited from RegAllocEvictionAdvisor:
- protected MF
- protected RA
- protected Matrix
- protected LIS
- protected VRM
- protected MRI
- protected TRI
- protected RegClassInfo
- protected RegCosts
- protected EnableLocalReassign
Method Overview
- public DefaultEvictionAdvisor(const llvm::MachineFunction & MF, const llvm::RAGreedy & RA)
- private bool canEvictHintInterference(const llvm::LiveInterval &, llvm::MCRegister, const llvm::SmallVirtRegSet &) const
- private bool canEvictInterferenceBasedOnCost(const llvm::LiveInterval &, llvm::MCRegister, bool, llvm::EvictionCost &, const llvm::SmallVirtRegSet &) const
- private bool shouldEvict(const llvm::LiveInterval & A, bool, const llvm::LiveInterval & B, bool) const
- private llvm::MCRegister tryFindEvictionCandidate(const llvm::LiveInterval &, const llvm::AllocationOrder &, uint8_t, const llvm::SmallVirtRegSet &) const
Inherited from RegAllocEvictionAdvisor:
- protected canAllocatePhysReg
- public canEvictHintInterference
- protected canReassign
- protected getOrderLimit
- public isUnusedCalleeSavedReg
- public tryFindEvictionCandidate
Methods
¶DefaultEvictionAdvisor(
const llvm::MachineFunction& MF,
const llvm::RAGreedy& RA)
DefaultEvictionAdvisor(
const llvm::MachineFunction& MF,
const llvm::RAGreedy& RA)
Declared at: llvm/lib/CodeGen/RegAllocEvictionAdvisor.h:205
Parameters
- const llvm::MachineFunction& MF
- const llvm::RAGreedy& RA
¶bool canEvictHintInterference(
const llvm::LiveInterval&,
llvm::MCRegister,
const llvm::SmallVirtRegSet&) const
bool canEvictHintInterference(
const llvm::LiveInterval&,
llvm::MCRegister,
const llvm::SmallVirtRegSet&) const
Description
Find out if we can evict the live ranges occupying the given PhysReg, which is a hint (preferred register) for VirtReg.
Declared at: llvm/lib/CodeGen/RegAllocEvictionAdvisor.h:212
Parameters
- const llvm::LiveInterval&
- llvm::MCRegister
- const llvm::SmallVirtRegSet&
¶bool canEvictInterferenceBasedOnCost(
const llvm::LiveInterval&,
llvm::MCRegister,
bool,
llvm::EvictionCost&,
const llvm::SmallVirtRegSet&) const
bool canEvictInterferenceBasedOnCost(
const llvm::LiveInterval&,
llvm::MCRegister,
bool,
llvm::EvictionCost&,
const llvm::SmallVirtRegSet&) const
Declared at: llvm/lib/CodeGen/RegAllocEvictionAdvisor.h:214
Parameters
- const llvm::LiveInterval&
- llvm::MCRegister
- bool
- llvm::EvictionCost&
- const llvm::SmallVirtRegSet&
¶bool shouldEvict(const llvm::LiveInterval& A,
bool,
const llvm::LiveInterval& B,
bool) const
bool shouldEvict(const llvm::LiveInterval& A,
bool,
const llvm::LiveInterval& B,
bool) const
Declared at: llvm/lib/CodeGen/RegAllocEvictionAdvisor.h:217
Parameters
- const llvm::LiveInterval& A
- bool
- const llvm::LiveInterval& B
- bool
¶llvm::MCRegister tryFindEvictionCandidate(
const llvm::LiveInterval&,
const llvm::AllocationOrder&,
uint8_t,
const llvm::SmallVirtRegSet&) const
llvm::MCRegister tryFindEvictionCandidate(
const llvm::LiveInterval&,
const llvm::AllocationOrder&,
uint8_t,
const llvm::SmallVirtRegSet&) const
Description
Find a physical register that can be freed by evicting the FixedRegisters, or return NoRegister. The eviction decision is assumed to be correct (i.e. no fixed live ranges are evicted) and profitable.
Declared at: llvm/lib/CodeGen/RegAllocEvictionAdvisor.h:209
Parameters
- const llvm::LiveInterval&
- const llvm::AllocationOrder&
- uint8_t
- const llvm::SmallVirtRegSet&