LLVM  14.0.0git
Classes | Public Types | Public Member Functions | List of all members
llvm::LiveIntervalUnion Class Reference

Union of live intervals that are strong candidates for coalescing into a single register (either physical or virtual depending on the context). More...

#include "llvm/CodeGen/LiveIntervalUnion.h"

Classes

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

Public Types

using SegmentIter = LiveSegments::iterator
 
using ConstSegmentIter = LiveSegments::const_iterator
 Const version of SegmentIter. More...
 
using Allocator = LiveSegments::Allocator
 
using Map = LiveSegments
 

Public Member Functions

 LiveIntervalUnion (Allocator &a)
 
SegmentIter begin ()
 
SegmentIter end ()
 
SegmentIter find (SlotIndex x)
 
ConstSegmentIter begin () const
 
ConstSegmentIter end () const
 
ConstSegmentIter find (SlotIndex x) const
 
bool empty () const
 
SlotIndex startIndex () const
 
SlotIndex endIndex () const
 
const MapgetMap () const
 
unsigned getTag () const
 getTag - Return an opaque tag representing the current state of the union. More...
 
bool changedSince (unsigned tag) const
 changedSince - Return true if the union change since getTag returned tag. More...
 
void unify (LiveInterval &VirtReg, const LiveRange &Range)
 
void extract (LiveInterval &VirtReg, const LiveRange &Range)
 
void clear ()
 
void print (raw_ostream &OS, const TargetRegisterInfo *TRI) const
 
void verify (LiveVirtRegBitSet &VisitedVRegs)
 
LiveIntervalgetOneVReg () const
 NDEBUG. More...
 

Detailed Description

Union of live intervals that are strong candidates for coalescing into a single register (either physical or virtual depending on the context).

We expect the constituent live intervals to be disjoint, although we may eventually make exceptions to handle value-based interference.

Definition at line 42 of file LiveIntervalUnion.h.

Member Typedef Documentation

◆ Allocator

using llvm::LiveIntervalUnion::Allocator = LiveSegments::Allocator

Definition at line 58 of file LiveIntervalUnion.h.

◆ ConstSegmentIter

Const version of SegmentIter.

Definition at line 55 of file LiveIntervalUnion.h.

◆ Map

Definition at line 81 of file LiveIntervalUnion.h.

◆ SegmentIter

Definition at line 52 of file LiveIntervalUnion.h.

Constructor & Destructor Documentation

◆ LiveIntervalUnion()

llvm::LiveIntervalUnion::LiveIntervalUnion ( Allocator a)
inlineexplicit

Definition at line 65 of file LiveIntervalUnion.h.

Referenced by llvm::LiveIntervalUnion::Array::clear().

Member Function Documentation

◆ begin() [1/2]

SegmentIter llvm::LiveIntervalUnion::begin ( )
inline

Definition at line 69 of file LiveIntervalUnion.h.

◆ begin() [2/2]

ConstSegmentIter llvm::LiveIntervalUnion::begin ( ) const
inline

Definition at line 72 of file LiveIntervalUnion.h.

◆ changedSince()

bool llvm::LiveIntervalUnion::changedSince ( unsigned  tag) const
inline

changedSince - Return true if the union change since getTag returned tag.

Definition at line 88 of file LiveIntervalUnion.h.

Referenced by llvm::LiveIntervalUnion::Query::init().

◆ clear()

void llvm::LiveIntervalUnion::clear ( )
inline

Definition at line 97 of file LiveIntervalUnion.h.

◆ empty()

bool llvm::LiveIntervalUnion::empty ( ) const
inline

Definition at line 76 of file LiveIntervalUnion.h.

Referenced by getOneVReg(), and print().

◆ end() [1/2]

SegmentIter llvm::LiveIntervalUnion::end ( )
inline

Definition at line 70 of file LiveIntervalUnion.h.

◆ end() [2/2]

ConstSegmentIter llvm::LiveIntervalUnion::end ( ) const
inline

Definition at line 73 of file LiveIntervalUnion.h.

◆ endIndex()

SlotIndex llvm::LiveIntervalUnion::endIndex ( ) const
inline

Definition at line 78 of file LiveIntervalUnion.h.

◆ extract()

void LiveIntervalUnion::extract ( LiveInterval VirtReg,
const LiveRange Range 
)

◆ find() [1/2]

SegmentIter llvm::LiveIntervalUnion::find ( SlotIndex  x)
inline

Definition at line 71 of file LiveIntervalUnion.h.

References x.

◆ find() [2/2]

ConstSegmentIter llvm::LiveIntervalUnion::find ( SlotIndex  x) const
inline

Definition at line 74 of file LiveIntervalUnion.h.

References x.

◆ getMap()

const Map& llvm::LiveIntervalUnion::getMap ( ) const
inline

Definition at line 82 of file LiveIntervalUnion.h.

◆ getOneVReg()

LiveInterval * LiveIntervalUnion::getOneVReg ( ) const

◆ getTag()

unsigned llvm::LiveIntervalUnion::getTag ( ) const
inline

getTag - Return an opaque tag representing the current state of the union.

Definition at line 85 of file LiveIntervalUnion.h.

Referenced by llvm::LiveIntervalUnion::Query::reset().

◆ print()

void LiveIntervalUnion::print ( raw_ostream OS,
const TargetRegisterInfo TRI 
) const

◆ startIndex()

SlotIndex llvm::LiveIntervalUnion::startIndex ( ) const
inline

Definition at line 77 of file LiveIntervalUnion.h.

◆ unify()

void LiveIntervalUnion::unify ( LiveInterval VirtReg,
const LiveRange Range 
)

◆ verify()

void LiveIntervalUnion::verify ( LiveVirtRegBitSet VisitedVRegs)

The documentation for this class was generated from the following files: