LLVM
8.0.1
|
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 Map & | getMap () 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) |
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.
Definition at line 59 of file LiveIntervalUnion.h.
Const version of SegmentIter.
Definition at line 56 of file LiveIntervalUnion.h.
Definition at line 81 of file LiveIntervalUnion.h.
Definition at line 53 of file LiveIntervalUnion.h.
|
inlineexplicit |
Definition at line 66 of file LiveIntervalUnion.h.
Referenced by llvm::LiveIntervalUnion::Array::clear().
|
inline |
Definition at line 70 of file LiveIntervalUnion.h.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::begin().
|
inline |
Definition at line 73 of file LiveIntervalUnion.h.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::begin().
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().
|
inline |
Definition at line 97 of file LiveIntervalUnion.h.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::clear(), print(), TRI, and verify().
Referenced by llvm::LiveIntervalUnion::Array::size(), and llvm::LiveIntervalUnion::Array::~Array().
|
inline |
Definition at line 77 of file LiveIntervalUnion.h.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::empty().
Referenced by print().
|
inline |
Definition at line 71 of file LiveIntervalUnion.h.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::end().
|
inline |
Definition at line 74 of file LiveIntervalUnion.h.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::end().
void LiveIntervalUnion::extract | ( | LiveInterval & | VirtReg, |
const LiveRange & | Range | ||
) |
Definition at line 57 of file LiveIntervalUnion.cpp.
References llvm::LiveRange::advanceTo(), llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::advanceTo(), assert(), llvm::LiveRange::begin(), llvm::LiveRange::empty(), llvm::LiveRange::end(), llvm::IntervalMap< KeyT, ValT, N, Traits >::iterator::erase(), llvm::IntervalMap< KeyT, ValT, N, Traits >::find(), llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::start(), llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::valid(), and llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::value().
Referenced by changedSince().
|
inline |
Definition at line 72 of file LiveIntervalUnion.h.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::find().
|
inline |
Definition at line 75 of file LiveIntervalUnion.h.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::find().
Definition at line 82 of file LiveIntervalUnion.h.
|
inline |
getTag - Return an opaque tag representing the current state of the union.
Definition at line 85 of file LiveIntervalUnion.h.
void LiveIntervalUnion::print | ( | raw_ostream & | OS, |
const TargetRegisterInfo * | TRI | ||
) | const |
Definition at line 83 of file LiveIntervalUnion.cpp.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::begin(), empty(), llvm::printReg(), SI, and TRI.
Referenced by clear().
|
inline |
Definition at line 78 of file LiveIntervalUnion.h.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::start().
void LiveIntervalUnion::unify | ( | LiveInterval & | VirtReg, |
const LiveRange & | Range | ||
) |
Definition at line 30 of file LiveIntervalUnion.cpp.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::advanceTo(), llvm::LiveRange::begin(), llvm::LiveRange::empty(), llvm::LiveRange::end(), llvm::IntervalMap< KeyT, ValT, N, Traits >::find(), llvm::IntervalMap< KeyT, ValT, N, Traits >::iterator::insert(), and llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::valid().
Referenced by changedSince().
void LiveIntervalUnion::verify | ( | LiveVirtRegBitSet & | VisitedVRegs | ) |
Definition at line 97 of file LiveIntervalUnion.cpp.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::begin(), llvm::SparseBitVector< ElementSize >::set(), and SI.
Referenced by clear().