LLVM API Documentation

Classes | Public Types | Public Member Functions | Public Attributes
llvm::LiveInterval Class Reference

#include <LiveInterval.h>

Collaboration diagram for llvm::LiveInterval:
Collaboration graph
[legend]

List of all members.

Classes

struct  InstrSlots

Public Types

typedef SmallVector< LiveRange, 4 > Ranges
typedef SmallVector< VNInfo *, 4 > VNInfoList
typedef Ranges::iterator iterator
typedef Ranges::const_iterator const_iterator
typedef VNInfoList::iterator vni_iterator
typedef VNInfoList::const_iterator const_vni_iterator

Public Member Functions

 LiveInterval (unsigned Reg, float Weight)
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
vni_iterator vni_begin ()
vni_iterator vni_end ()
const_vni_iterator vni_begin () const
const_vni_iterator vni_end () const
iterator advanceTo (iterator I, SlotIndex Pos)
iterator find (SlotIndex Pos)
const_iterator find (SlotIndex Pos) const
void clear ()
bool hasAtLeastOneValue () const
bool containsOneValue () const
unsigned getNumValNums () const
VNInfogetValNumInfo (unsigned ValNo)
const VNInfogetValNumInfo (unsigned ValNo) const
bool containsValue (const VNInfo *VNI) const
 containsValue - Returns true if VNI belongs to this interval.
VNInfogetNextValue (SlotIndex def, VNInfo::Allocator &VNInfoAllocator)
VNInfocreateDeadDef (SlotIndex Def, VNInfo::Allocator &VNInfoAllocator)
VNInfocreateValueCopy (const VNInfo *orig, VNInfo::Allocator &VNInfoAllocator)
void RenumberValues (LiveIntervals &lis)
VNInfoMergeValueNumberInto (VNInfo *V1, VNInfo *V2)
void MergeRangesInAsValue (const LiveInterval &RHS, VNInfo *LHSValNo)
void MergeValueInAsValue (const LiveInterval &RHS, const VNInfo *RHSValNo, VNInfo *LHSValNo)
bool empty () const
SlotIndex beginIndex () const
 beginIndex - Return the lowest numbered slot covered by interval.
SlotIndex endIndex () const
bool expiredAt (SlotIndex index) const
bool liveAt (SlotIndex index) const
bool killedAt (SlotIndex index) const
const LiveRangegetLiveRangeContaining (SlotIndex Idx) const
LiveRangegetLiveRangeContaining (SlotIndex Idx)
VNInfogetVNInfoAt (SlotIndex Idx) const
 getVNInfoAt - Return the VNInfo that is live at Idx, or NULL.
VNInfogetVNInfoBefore (SlotIndex Idx) const
iterator FindLiveRangeContaining (SlotIndex Idx)
const_iterator FindLiveRangeContaining (SlotIndex Idx) const
bool overlaps (const LiveInterval &other) const
bool overlaps (const LiveInterval &Other, const CoalescerPair &CP, const SlotIndexes &) const
bool overlaps (SlotIndex Start, SlotIndex End) const
bool overlapsFrom (const LiveInterval &other, const_iterator I) const
iterator addRange (LiveRange LR)
VNInfoextendInBlock (SlotIndex StartIdx, SlotIndex Kill)
void join (LiveInterval &Other, const int *ValNoAssignments, const int *RHSValNoAssignments, SmallVector< VNInfo *, 16 > &NewVNInfo, MachineRegisterInfo *MRI)
bool isInOneLiveRange (SlotIndex Start, SlotIndex End) const
bool isLocal (SlotIndex Start, SlotIndex End) const
void removeRange (SlotIndex Start, SlotIndex End, bool RemoveDeadValNo=false)
void removeRange (LiveRange LR, bool RemoveDeadValNo=false)
void removeValNo (VNInfo *ValNo)
unsigned getSize () const
bool isZeroLength (SlotIndexes *Indexes) const
bool isSpillable () const
 isSpillable - Can this interval be spilled?
void markNotSpillable ()
 markNotSpillable - Mark interval as not spillable
bool operator< (const LiveInterval &other) const
void print (raw_ostream &OS) const
void dump () const
void verify () const
 Walk the interval and assert if any invariants fail to hold.

Public Attributes

const unsigned reg
float weight
Ranges ranges
VNInfoList valnos

Detailed Description

LiveInterval - This class represents some number of live ranges for a register or value. This class also contains a bit of register allocator state.

Definition at line 136 of file LiveInterval.h.


Member Typedef Documentation

Definition at line 165 of file LiveInterval.h.

Definition at line 173 of file LiveInterval.h.

Definition at line 161 of file LiveInterval.h.

Definition at line 139 of file LiveInterval.h.

Definition at line 169 of file LiveInterval.h.

Definition at line 140 of file LiveInterval.h.


Constructor & Destructor Documentation

llvm::LiveInterval::LiveInterval ( unsigned  Reg,
float  Weight 
) [inline]

Definition at line 158 of file LiveInterval.h.


Member Function Documentation

iterator llvm::LiveInterval::addRange ( LiveRange  LR) [inline]

addRange - Add the specified LiveRange to this interval, merging intervals as appropriate. This returns an iterator to the inserted live range (which may have grown since it was inserted.

Definition at line 377 of file LiveInterval.h.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), and ranges.

Referenced by llvm::LiveIntervals::addLiveRangeToEndOfBlock(), llvm::LiveIntervals::repairIntervalsInRange(), llvm::LiveIntervals::shrinkToUses(), and llvm::MachineBasicBlock::SplitCriticalEdge().

iterator llvm::LiveInterval::advanceTo ( iterator  I,
SlotIndex  Pos 
) [inline]

advanceTo - Advance the specified iterator to point to the LiveRange containing the specified position, or end() if the position is past the end of the interval. If no LiveRange contains this position, but the position is in a hole, this method returns an iterator pointing to the LiveRange immediately after the hole.

Definition at line 182 of file LiveInterval.h.

References llvm::LiveRange::end, end(), endIndex(), and I.

Referenced by llvm::LiveIntervals::addKillFlags(), llvm::LiveIntervals::checkRegMaskInterference(), llvm::LiveIntervalUnion::Query::collectInterferingVRegs(), llvm::SplitAnalysis::countLiveBlocks(), and llvm::LiveIntervalUnion::extract().

iterator llvm::LiveInterval::begin ( ) [inline]
const_iterator llvm::LiveInterval::begin ( ) const [inline]
SlotIndex llvm::LiveInterval::beginIndex ( ) const [inline]

beginIndex - Return the lowest numbered slot covered by interval.

Definition at line 280 of file LiveInterval.h.

References empty(), llvm::SmallVectorTemplateCommon< T, typename >::front(), and ranges.

Referenced by llvm::LiveIntervals::intervalIsInOneMBB(), isLocal(), operator<(), and overlaps().

void llvm::LiveInterval::clear ( ) [inline]

Definition at line 203 of file LiveInterval.h.

References llvm::SmallVectorImpl< T >::clear(), ranges, and valnos.

bool llvm::LiveInterval::containsOneValue ( ) const [inline]
bool llvm::LiveInterval::containsValue ( const VNInfo VNI) const [inline]

containsValue - Returns true if VNI belongs to this interval.

Definition at line 224 of file LiveInterval.h.

References getNumValNums(), getValNumInfo(), and llvm::VNInfo::id.

VNInfo * LiveInterval::createDeadDef ( SlotIndex  Def,
VNInfo::Allocator VNInfoAllocator 
)

createDeadDef - Make sure the interval has a value defined at Def. If one already exists, return it. Otherwise allocate a new value and add liveness for a dead def.

Definition at line 52 of file LiveInterval.cpp.

References llvm::tgtok::Def, end(), find(), llvm::SlotIndex::getDeadSlot(), getNextValue(), I, llvm::SmallVectorImpl< T >::insert(), llvm::SlotIndex::isDead(), llvm::SlotIndex::isEarlierInstr(), llvm::SlotIndex::isSameInstr(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), and ranges.

Referenced by llvm::LiveRangeCalc::createDeadDefs().

VNInfo* llvm::LiveInterval::createValueCopy ( const VNInfo orig,
VNInfo::Allocator VNInfoAllocator 
) [inline]

Create a copy of the given value. The new value will be identical except for the Value number.

Definition at line 244 of file LiveInterval.h.

References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and valnos.

void LiveInterval::dump ( ) const

Definition at line 629 of file LiveInterval.cpp.

References llvm::dbgs().

bool llvm::LiveInterval::empty ( ) const [inline]
iterator llvm::LiveInterval::end ( ) [inline]
const_iterator llvm::LiveInterval::end ( ) const [inline]
SlotIndex llvm::LiveInterval::endIndex ( ) const [inline]

endNumber - return the maximum point of the interval of the whole, exclusive.

Definition at line 287 of file LiveInterval.h.

References llvm::SmallVectorTemplateCommon< T, typename >::back(), empty(), and ranges.

Referenced by advanceTo(), expiredAt(), find(), llvm::LiveIntervals::intervalIsInOneMBB(), and isLocal().

bool llvm::LiveInterval::expiredAt ( SlotIndex  index) const [inline]

Definition at line 292 of file LiveInterval.h.

References endIndex().

VNInfo * LiveInterval::extendInBlock ( SlotIndex  StartIdx,
SlotIndex  Kill 
)

extendInBlock - If this interval is live before Kill in the basic block that starts at StartIdx, extend it to be live up to Kill, and return the value. If there is no live range before Kill, return NULL.

extendInBlock - If this interval is live before Kill in the basic block that starts at StartIdx, extend it to be live up to Kill and return the value. If there is no live range before Kill, return NULL.

Definition at line 335 of file LiveInterval.cpp.

References begin(), empty(), llvm::LiveRange::end, end(), llvm::SlotIndex::getPrevSlot(), I, and llvm::LiveRange::valno.

Referenced by llvm::LiveRangeCalc::extend(), and llvm::LiveIntervals::shrinkToUses().

LiveInterval::iterator LiveInterval::find ( SlotIndex  Pos)

find - Return an iterator pointing to the first range that ends after Pos, or end(). This is the same as advanceTo(begin(), Pos), but faster when searching large intervals.

If Pos is contained in a LiveRange, that range is returned. If Pos is in a hole, the following LiveRange is returned. If Pos is beyond endIndex, end() is returned.

Definition at line 34 of file LiveInterval.cpp.

References begin(), empty(), end(), endIndex(), I, ranges, and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by llvm::LiveRangeUpdater::add(), llvm::LiveIntervals::addKillFlags(), createDeadDef(), find(), FindLiveRangeContaining(), isInOneLiveRange(), llvm::SplitAnalysis::isOriginalEndpoint(), isPlainlyKilled(), killedAt(), liveAt(), llvm::LiveRangeQuery::LiveRangeQuery(), overlaps(), removeRange(), and llvm::LiveIntervals::repairIntervalsInRange().

const_iterator llvm::LiveInterval::find ( SlotIndex  Pos) const [inline]

Definition at line 199 of file LiveInterval.h.

References find().

iterator llvm::LiveInterval::FindLiveRangeContaining ( SlotIndex  Idx) [inline]

FindLiveRangeContaining - Return an iterator to the live range that contains the specified index, or end() if there is none.

Definition at line 339 of file LiveInterval.h.

References end(), find(), I, and llvm::LiveRange::start.

Referenced by getLiveRangeContaining(), getVNInfoAt(), getVNInfoBefore(), and llvm::LiveIntervals::shrinkToUses().

const_iterator llvm::LiveInterval::FindLiveRangeContaining ( SlotIndex  Idx) const [inline]

Definition at line 344 of file LiveInterval.h.

References end(), find(), I, and llvm::LiveRange::start.

const LiveRange* llvm::LiveInterval::getLiveRangeContaining ( SlotIndex  Idx) const [inline]

getLiveRangeContaining - Return the live range that contains the specified index, or null if there is none.

Definition at line 311 of file LiveInterval.h.

References end(), FindLiveRangeContaining(), and I.

LiveRange* llvm::LiveInterval::getLiveRangeContaining ( SlotIndex  Idx) [inline]

getLiveRangeContaining - Return the live range that contains the specified index, or null if there is none.

Definition at line 318 of file LiveInterval.h.

References end(), FindLiveRangeContaining(), and I.

VNInfo* llvm::LiveInterval::getNextValue ( SlotIndex  def,
VNInfo::Allocator VNInfoAllocator 
) [inline]

getNextValue - Create a new value number and return it. MIIdx specifies the instruction that defines the value number.

Definition at line 230 of file LiveInterval.h.

References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and valnos.

Referenced by llvm::LiveIntervals::addLiveRangeToEndOfBlock(), createDeadDef(), and llvm::LiveIntervals::repairIntervalsInRange().

unsigned llvm::LiveInterval::getNumValNums ( ) const [inline]
unsigned LiveInterval::getSize ( ) const

getSize - Returns the sum of sizes of all the LiveRange's.

Definition at line 580 of file LiveInterval.cpp.

References begin(), end(), and I.

Referenced by llvm::VirtRegAuxInfo::CalculateWeightAndHint().

VNInfo* llvm::LiveInterval::getValNumInfo ( unsigned  ValNo) [inline]

getValNumInfo - Returns pointer to the specified val#.

Definition at line 216 of file LiveInterval.h.

References valnos.

Referenced by containsValue(), llvm::ConnectedVNInfoEqClasses::Distribute(), join(), and print().

const VNInfo* llvm::LiveInterval::getValNumInfo ( unsigned  ValNo) const [inline]

Definition at line 219 of file LiveInterval.h.

References valnos.

VNInfo* llvm::LiveInterval::getVNInfoAt ( SlotIndex  Idx) const [inline]
VNInfo* llvm::LiveInterval::getVNInfoBefore ( SlotIndex  Idx) const [inline]

getVNInfoBefore - Return the VNInfo that is live up to but not necessarilly including Idx, or NULL. Use this to find the reaching def used by an instruction at this SlotIndex position.

Definition at line 332 of file LiveInterval.h.

References end(), FindLiveRangeContaining(), llvm::SlotIndex::getPrevSlot(), I, and llvm::LiveRange::valno.

Referenced by llvm::ConnectedVNInfoEqClasses::Classify(), llvm::LiveIntervals::hasPHIKill(), llvm::SplitEditor::overlapIntv(), and llvm::LiveIntervals::shrinkToUses().

bool llvm::LiveInterval::hasAtLeastOneValue ( ) const [inline]
bool llvm::LiveInterval::isInOneLiveRange ( SlotIndex  Start,
SlotIndex  End 
) const [inline]

isInOneLiveRange - Return true if the range specified is entirely in the a single LiveRange of the live interval.

Definition at line 397 of file LiveInterval.h.

References llvm::LiveRange::containsRange(), end(), and find().

bool llvm::LiveInterval::isLocal ( SlotIndex  Start,
SlotIndex  End 
) const [inline]

True iff this live range is a single segment that lies between the specified boundaries, exclusively. Vregs live across a backedge are not considered local. The boundaries are expected to lie within an extended basic block, so vregs that are not live out should contain no holes.

Definition at line 406 of file LiveInterval.h.

References beginIndex(), endIndex(), llvm::SlotIndex::getBaseIndex(), and llvm::SlotIndex::getBoundaryIndex().

bool llvm::LiveInterval::isSpillable ( ) const [inline]

isSpillable - Can this interval be spilled?

Definition at line 439 of file LiveInterval.h.

References HUGE_VALF, and weight.

Referenced by llvm::VirtRegAuxInfo::CalculateWeightAndHint().

bool llvm::LiveInterval::isZeroLength ( SlotIndexes Indexes) const [inline]

Returns true if the live interval is zero length, i.e. no live ranges span instructions. It doesn't pay to spill such an interval.

Definition at line 430 of file LiveInterval.h.

References begin(), end(), llvm::SlotIndex::getBaseIndex(), and llvm::SlotIndexes::getNextNonNullIndex().

Referenced by llvm::VirtRegAuxInfo::CalculateWeightAndHint().

void LiveInterval::join ( LiveInterval Other,
const int *  LHSValNoAssignments,
const int *  RHSValNoAssignments,
SmallVector< VNInfo *, 16 > &  NewVNInfo,
MachineRegisterInfo MRI 
)

join - Join two live intervals (this, and other) together. This applies mappings to the value numbers in the LHS/RHS intervals as specified. If the intervals are not joinable, this aborts.

Definition at line 415 of file LiveInterval.cpp.

References llvm::LiveRangeUpdater::add(), begin(), empty(), llvm::LiveRange::end, end(), llvm::SmallVectorImpl< T >::erase(), getNumValNums(), getValNumInfo(), I, llvm::VNInfo::id, llvm::next(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), ranges, llvm::SmallVectorImpl< T >::resize(), llvm::SmallVectorTemplateCommon< T >::size(), llvm::LiveRange::start, llvm::LiveRange::valno, valnos, and verify().

bool llvm::LiveInterval::killedAt ( SlotIndex  index) const [inline]

killedAt - Return true if a live range ends at index. Note that the kill point is not contained in the half-open live range. It is usually the getDefIndex() slot following its last use.

Definition at line 304 of file LiveInterval.h.

References llvm::LiveRange::end, end(), find(), and llvm::SlotIndex::getRegSlot().

Referenced by llvm::RegPressureTracker::advance(), llvm::RegPressureTracker::bumpDownwardPressure(), llvm::LiveRangeEdit::eliminateDeadDefs(), and llvm::RegPressureTracker::recede().

bool llvm::LiveInterval::liveAt ( SlotIndex  index) const [inline]
void llvm::LiveInterval::markNotSpillable ( ) [inline]

markNotSpillable - Mark interval as not spillable

Definition at line 444 of file LiveInterval.h.

References HUGE_VALF, and weight.

Referenced by llvm::VirtRegAuxInfo::CalculateWeightAndHint().

void LiveInterval::MergeRangesInAsValue ( const LiveInterval RHS,
VNInfo LHSValNo 
)

MergeValueInAsValue - Merge all of the live ranges of a specific val# in RHS into this live interval as the specified value number. The LiveRanges in RHS are allowed to overlap with LiveRanges in the current interval, it will replace the value numbers of the overlaped live ranges with the specified value number.

MergeRangesInAsValue - Merge all of the intervals in RHS into this live interval as the specified value number. The LiveRanges in RHS are allowed to overlap with LiveRanges in the current interval, but only if the overlapping LiveRanges have the specified value number.

Definition at line 500 of file LiveInterval.cpp.

References llvm::LiveRangeUpdater::add(), begin(), end(), and I.

void LiveInterval::MergeValueInAsValue ( const LiveInterval RHS,
const VNInfo RHSValNo,
VNInfo LHSValNo 
)

MergeValueInAsValue - Merge all of the live ranges of a specific val# in RHS into this live interval as the specified value number. The LiveRanges in RHS are allowed to overlap with LiveRanges in the current interval, but only if the overlapping LiveRanges have the specified value number.

MergeValueInAsValue - Merge all of the live ranges of a specific val# in RHS into this live interval as the specified value number. The LiveRanges in RHS are allowed to overlap with LiveRanges in the current interval, it will replace the value numbers of the overlaped live ranges with the specified value number.

Definition at line 512 of file LiveInterval.cpp.

References llvm::LiveRangeUpdater::add(), begin(), end(), and I.

VNInfo * LiveInterval::MergeValueNumberInto ( VNInfo V1,
VNInfo V2 
)

MergeValueNumberInto - This method is called when two value nubmers are found to be equivalent. This eliminates V1, replacing all LiveRanges with the V1 value number with the V2 value number. This can cause merging of V1/V2 values numbers and compaction of the value space.

Definition at line 525 of file LiveInterval.cpp.

References begin(), llvm::VNInfo::copyFrom(), llvm::LiveRange::end, end(), llvm::SmallVectorImpl< T >::erase(), llvm::VNInfo::id, ranges, llvm::LiveRange::start, llvm::swap(), llvm::NVPTX::PTXLdStInstCode::V2, and llvm::LiveRange::valno.

bool llvm::LiveInterval::operator< ( const LiveInterval other) const [inline]

Definition at line 448 of file LiveInterval.h.

References beginIndex(), and reg.

bool llvm::LiveInterval::overlaps ( const LiveInterval other) const [inline]

overlaps - Return true if the intersection of the two live intervals is not empty.

Definition at line 351 of file LiveInterval.h.

References begin(), empty(), and overlapsFrom().

Referenced by llvm::PBQPBuilder::build(), and llvm::LiveRegMatrix::checkRegUnitInterference().

bool LiveInterval::overlaps ( const LiveInterval Other,
const CoalescerPair CP,
const SlotIndexes Indexes 
) const

overlaps - Return true if the two intervals have overlapping segments that are not coalescable according to CP.

Overlapping segments where one interval is defined by a coalescable copy are allowed.

Definition at line 139 of file LiveInterval.cpp.

References beginIndex(), llvm::tgtok::Def, empty(), llvm::LiveRange::end, end(), find(), llvm::SlotIndexes::getInstructionFromIndex(), I, llvm::ARM_PROC::IE, llvm::SlotIndex::isBlock(), llvm::CoalescerPair::isCoalescable(), llvm::LiveRange::start, and llvm::swap().

bool LiveInterval::overlaps ( SlotIndex  Start,
SlotIndex  End 
) const

overlaps - Return true if the live interval overlaps a range specified by [Start, End).

Definition at line 183 of file LiveInterval.cpp.

References begin(), end(), and I.

bool LiveInterval::overlapsFrom ( const LiveInterval other,
const_iterator  I 
) const

overlapsFrom - Return true if the intersection of the two live intervals is not empty. The specified iterator is a hint that we can begin scanning the Other interval starting at I.

Definition at line 98 of file LiveInterval.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), begin(), empty(), llvm::LiveRange::end, end(), ranges, llvm::LiveRange::start, and llvm::swap().

Referenced by overlaps().

void LiveInterval::print ( raw_ostream OS) const
void LiveInterval::removeRange ( SlotIndex  Start,
SlotIndex  End,
bool  RemoveDeadValNo = false 
)

removeRange - Remove the specified range from this interval. Note that the range must be a single LiveRange in its entirety.

removeRange - Remove the specified range from this interval. Note that the range must be in a single LiveRange in its entirety.

Definition at line 351 of file LiveInterval.cpp.

References begin(), llvm::LiveRange::containsRange(), llvm::LiveRange::end, llvm::SmallVectorTemplateCommon< T, typename >::end(), end(), llvm::SmallVectorImpl< T >::erase(), find(), llvm::SmallVectorImpl< T >::insert(), llvm::next(), ranges, llvm::LiveRange::start, and llvm::LiveRange::valno.

Referenced by llvm::LiveIntervals::pruneValue(), removeRange(), llvm::LiveIntervals::repairIntervalsInRange(), llvm::LiveIntervals::shrinkToUses(), and llvm::MachineBasicBlock::SplitCriticalEdge().

void llvm::LiveInterval::removeRange ( LiveRange  LR,
bool  RemoveDeadValNo = false 
) [inline]

Definition at line 416 of file LiveInterval.h.

References llvm::LiveRange::end, removeRange(), and llvm::LiveRange::start.

void LiveInterval::removeValNo ( VNInfo ValNo)

removeValNo - Remove all the ranges defined by the specified value#. Also remove the value# from value# list.

Definition at line 399 of file LiveInterval.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), empty(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorImpl< T >::erase(), I, ranges, and llvm::LiveRange::valno.

Referenced by llvm::LiveRangeEdit::eliminateDeadDefs().

void LiveInterval::RenumberValues ( LiveIntervals lis)

RenumberValues - Renumber all values in order of appearance and remove unused values.

RenumberValues - Renumber all values in order of appearance and delete the remaining unused values.

Definition at line 205 of file LiveInterval.cpp.

References begin(), llvm::SmallVectorImpl< T >::clear(), end(), I, llvm::VNInfo::id, llvm::SmallPtrSet< PtrType, SmallSize >::insert(), llvm::VNInfo::isUnused(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and valnos.

Referenced by llvm::LiveRangeEdit::eliminateDeadDefs().

void LiveInterval::verify ( ) const

Walk the interval and assert if any invariants fail to hold.

Note that this is a no-op when asserts are disabled.

Definition at line 635 of file LiveInterval.cpp.

References begin(), end(), I, llvm::next(), and valnos.

Referenced by llvm::LiveRangeUpdater::flush(), and join().

vni_iterator llvm::LiveInterval::vni_begin ( ) [inline]
const_vni_iterator llvm::LiveInterval::vni_begin ( ) const [inline]
vni_iterator llvm::LiveInterval::vni_end ( ) [inline]
const_vni_iterator llvm::LiveInterval::vni_end ( ) const [inline]

Member Data Documentation


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