LLVM 22.0.0git
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.
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.
bool changedSince (unsigned tag) const
 changedSince - Return true if the union change since getTag returned tag.
void unify (const LiveInterval &VirtReg, const LiveRange &Range)
void extract (const LiveInterval &VirtReg, const LiveRange &Range)
void clear ()
void print (raw_ostream &OS, const TargetRegisterInfo *TRI) const
void verify (LiveVirtRegBitSet &VisitedVRegs)
const LiveIntervalgetOneVReg () const
 NDEBUG.

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

◆ Map

Definition at line 81 of file LiveIntervalUnion.h.

◆ SegmentIter

Constructor & Destructor Documentation

◆ LiveIntervalUnion()

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.

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

◆ 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 ( const LiveInterval & VirtReg,
const LiveRange & Range )

Definition at line 56 of file LiveIntervalUnion.cpp.

References assert(), and Range.

◆ find() [1/2]

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

Definition at line 71 of file LiveIntervalUnion.h.

◆ find() [2/2]

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

Definition at line 74 of file LiveIntervalUnion.h.

◆ getMap()

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

Definition at line 82 of file LiveIntervalUnion.h.

◆ getOneVReg()

const LiveInterval * LiveIntervalUnion::getOneVReg ( ) const

NDEBUG.

Definition at line 103 of file LiveIntervalUnion.cpp.

References empty().

◆ 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

Definition at line 83 of file LiveIntervalUnion.cpp.

References empty(), llvm::printReg(), and TRI.

◆ startIndex()

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

Definition at line 77 of file LiveIntervalUnion.h.

◆ unify()

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

Definition at line 28 of file LiveIntervalUnion.cpp.

References Range.

◆ verify()

void LiveIntervalUnion::verify ( LiveVirtRegBitSet & VisitedVRegs)

Definition at line 97 of file LiveIntervalUnion.cpp.

References llvm::SparseBitVector< ElementSize >::set().


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