LLVM  6.0.0svn
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
 
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)
 

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 43 of file LiveIntervalUnion.h.

Member Typedef Documentation

◆ Allocator

Definition at line 59 of file LiveIntervalUnion.h.

◆ ConstSegmentIter

Const version of SegmentIter.

Definition at line 56 of file LiveIntervalUnion.h.

◆ Map

Definition at line 81 of file LiveIntervalUnion.h.

◆ SegmentIter

Definition at line 53 of file LiveIntervalUnion.h.

Constructor & Destructor Documentation

◆ LiveIntervalUnion()

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

Definition at line 66 of file LiveIntervalUnion.h.

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

Member Function Documentation

◆ begin() [1/2]

SegmentIter llvm::LiveIntervalUnion::begin ( )
inline

◆ begin() [2/2]

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

◆ 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.

References extract(), and unify().

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

◆ clear()

void llvm::LiveIntervalUnion::clear ( )
inline

◆ empty()

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

Definition at line 77 of file LiveIntervalUnion.h.

References llvm::IntervalMap< KeyT, ValT, N, Traits >::empty().

Referenced by print().

◆ end() [1/2]

SegmentIter llvm::LiveIntervalUnion::end ( )
inline

◆ end() [2/2]

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

◆ extract()

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

◆ find() [1/2]

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

◆ find() [2/2]

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

◆ getMap()

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

Definition at line 82 of file LiveIntervalUnion.h.

◆ 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.

◆ print()

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

◆ startIndex()

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

◆ 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: