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:

Methods

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

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

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

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

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&