class LiveIntervalUnion::Query

Declaration

class LiveIntervalUnion::Query { /* full declaration omitted */ };

Description

Query interferences between a single live virtual register and a live interval union.

Declared at: llvm/include/llvm/CodeGen/LiveIntervalUnion.h:112

Member Variables

private const llvm::LiveIntervalUnion* LiveUnion = nullptr
private const llvm::LiveRange* LR = nullptr
private LiveRange::const_iterator LRI
current position in LR
private llvm::LiveIntervalUnion::ConstSegmentIter LiveUnionI
current position in LiveUnion
private SmallVector<const llvm::LiveInterval*, 4> InterferingVRegs
private bool CheckedFirstInterference = false
private bool SeenAllInterferences = false
private unsigned int Tag = 0
private unsigned int UserTag = 0

Method Overview

  • public Query()
  • public Query(const llvm::LiveRange & LR, const llvm::LiveIntervalUnion & LIU)
  • public Query(const llvm::LiveIntervalUnion::Query &)
  • public bool checkInterference()
  • private unsigned int collectInterferingVRegs(unsigned int MaxInterferingRegs)
  • public void init(unsigned int NewUserTag, const llvm::LiveRange & NewLR, const llvm::LiveIntervalUnion & NewLiveUnion)
  • public const SmallVectorImpl<const llvm::LiveInterval *> & interferingVRegs(unsigned int MaxInterferingRegs = std::numeric_limits<unsigned int>::max())
  • private bool isSeenInterference(const llvm::LiveInterval * VirtReg) const
  • public void reset(unsigned int NewUserTag, const llvm::LiveRange & NewLR, const llvm::LiveIntervalUnion & NewLiveUnion)

Methods

Query()

Declared at: llvm/include/llvm/CodeGen/LiveIntervalUnion.h:131

Query(const llvm::LiveRange& LR,
      const llvm::LiveIntervalUnion& LIU)

Declared at: llvm/include/llvm/CodeGen/LiveIntervalUnion.h:132

Parameters

const llvm::LiveRange& LR
const llvm::LiveIntervalUnion& LIU

Query(const llvm::LiveIntervalUnion::Query&)

Declared at: llvm/include/llvm/CodeGen/LiveIntervalUnion.h:134

Parameters

const llvm::LiveIntervalUnion::Query&

bool checkInterference()

Declared at: llvm/include/llvm/CodeGen/LiveIntervalUnion.h:159

unsigned int collectInterferingVRegs(
    unsigned int MaxInterferingRegs)

Declared at: llvm/include/llvm/CodeGen/LiveIntervalUnion.h:125

Parameters

unsigned int MaxInterferingRegs

void init(
    unsigned int NewUserTag,
    const llvm::LiveRange& NewLR,
    const llvm::LiveIntervalUnion& NewLiveUnion)

Declared at: llvm/include/llvm/CodeGen/LiveIntervalUnion.h:148

Parameters

unsigned int NewUserTag
const llvm::LiveRange& NewLR
const llvm::LiveIntervalUnion& NewLiveUnion

const SmallVectorImpl<const llvm::LiveInterval*>&
interferingVRegs(
    unsigned int MaxInterferingRegs =
        std::numeric_limits<unsigned int>::max())

Declared at: llvm/include/llvm/CodeGen/LiveIntervalUnion.h:162

Parameters

unsigned int MaxInterferingRegs = std::numeric_limits<unsigned int>::max()

bool isSeenInterference(
    const llvm::LiveInterval* VirtReg) const

Declared at: llvm/include/llvm/CodeGen/LiveIntervalUnion.h:128

Parameters

const llvm::LiveInterval* VirtReg

void reset(
    unsigned int NewUserTag,
    const llvm::LiveRange& NewLR,
    const llvm::LiveIntervalUnion& NewLiveUnion)

Declared at: llvm/include/llvm/CodeGen/LiveIntervalUnion.h:137

Parameters

unsigned int NewUserTag
const llvm::LiveRange& NewLR
const llvm::LiveIntervalUnion& NewLiveUnion