LLVM 20.0.0git
|
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 Map & | getMap () 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 LiveInterval * | getOneVReg () const |
NDEBUG. | |
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.
Definition at line 58 of file LiveIntervalUnion.h.
Const version of SegmentIter.
Definition at line 55 of file LiveIntervalUnion.h.
Definition at line 81 of file LiveIntervalUnion.h.
Definition at line 52 of file LiveIntervalUnion.h.
|
inlineexplicit |
Definition at line 65 of file LiveIntervalUnion.h.
|
inline |
Definition at line 69 of file LiveIntervalUnion.h.
|
inline |
Definition at line 72 of file LiveIntervalUnion.h.
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().
|
inline |
Definition at line 97 of file LiveIntervalUnion.h.
Referenced by llvm::LiveIntervalUnion::Array::init().
|
inline |
Definition at line 76 of file LiveIntervalUnion.h.
Referenced by getOneVReg(), and print().
|
inline |
Definition at line 70 of file LiveIntervalUnion.h.
|
inline |
Definition at line 73 of file LiveIntervalUnion.h.
|
inline |
Definition at line 78 of file LiveIntervalUnion.h.
void LiveIntervalUnion::extract | ( | const LiveInterval & | VirtReg, |
const LiveRange & | Range | ||
) |
Definition at line 56 of file LiveIntervalUnion.cpp.
References assert(), llvm::IntervalMap< KeyT, ValT, N, Traits >::find(), and Range.
|
inline |
Definition at line 71 of file LiveIntervalUnion.h.
|
inline |
Definition at line 74 of file LiveIntervalUnion.h.
Definition at line 82 of file LiveIntervalUnion.h.
const LiveInterval * LiveIntervalUnion::getOneVReg | ( | ) | const |
NDEBUG.
Definition at line 103 of file LiveIntervalUnion.cpp.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::begin(), llvm::IntervalMap< SlotIndex, const LiveInterval * >::const_iterator, and empty().
|
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().
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(), llvm::IntervalMap< SlotIndex, const LiveInterval * >::const_iterator, empty(), OS, llvm::printReg(), and TRI.
|
inline |
Definition at line 77 of file LiveIntervalUnion.h.
void LiveIntervalUnion::unify | ( | const LiveInterval & | VirtReg, |
const LiveRange & | Range | ||
) |
Definition at line 28 of file LiveIntervalUnion.cpp.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::find(), and Range.
void LiveIntervalUnion::verify | ( | LiveVirtRegBitSet & | VisitedVRegs | ) |
Definition at line 97 of file LiveIntervalUnion.cpp.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::begin(), and llvm::SparseBitVector< ElementSize >::set().