llvm::LiveInterval

LiveInterval - This class represents the liveness of a register, or stack slot.

Synopsis

Declared in <llvm/CodeGen/LiveInterval.h>

class LiveInterval
    : public LiveRange

Base Classes

NameDescription
LiveRangeRepresents the liveness of a register, stack slot, or similar entity.

Types

NameDescription
Segment A single continuous liveness interval for one value number.
SingleLinkedListIterator Forward iterator over a singly linked list of nodes with a Next pointer.
SubRange A live range covering selected lanes of a super-register.

Type Aliases

NameDescription
SegmentSet Ordered set used temporarily while building a live range.
Segments Ordered vector of live segments.
VNInfoList Vector of value numbers owned by this live range.
const_iterator Const iterator over live segments.
const_subrange_iterator Const iterator over subregister live ranges.
const_vni_iterator Const iterator over value numbers.
iterator Mutable iterator over live segments.
subrange_iterator Mutable iterator over subregister live ranges.
super Base LiveRange type of this live interval.
vni_iterator Mutable iterator over value numbers.

Member Functions

NameDescription
LiveInterval [constructor]Construct a live interval for Reg with initial weight Weight.
~LiveInterval [destructor]Destroy the live interval and free its subranges.
FindSegmentContaining FindSegmentContaining overloads
MergeSegmentsInAsValue Merge all segments from RHS into this range as LHSValNo.
MergeValueInAsValue Merge segments of RHSValNo from RHS as LHSValNo.
MergeValueNumberInto Merge equivalent value number V1 into V2.
Query Query liveness around instruction Idx.
RenumberValues RenumberValues - Renumber all values in order of appearance and remove unused values.
addSegment Add segment S to this range, merging as appropriate.
advanceTo advanceTo overloads
assign Copy value numbers and live segments from Other into this range.
begin begin overloads
beginIndex beginIndex - Return the lowest numbered slot covered.
clear Remove all segments and value numbers from this range.
clearSubRanges Removes all subregister liveness information.
computeSubRangeUndefs Compute indexes where LaneMask is undef due to read-undef defs.
containsOneValue Return true if this range has exactly one value number.
containsValue Return true if VNI belongs to this range.
covers Return true if every segment of Other is covered by this range.
createDeadDef createDeadDef overloads
createSubRange Create a new empty subregister live range for LaneMask.
createSubRangeFrom Create a subrange for LaneMask copied from CopyFrom.
createValueCopy Create a copy of orig with a fresh value number.
dump Dump this live interval to the debug stream.
empty Return true if this live range contains no segments.
end end overloads
endIndex endNumber - return the maximum point of the range of the whole, exclusive.
expiredAt Return true if liveness has ended by slot index index.
extendInBlock extendInBlock overloads
find find overloads
findIndexesLiveAt Store indexes from R at which this live range is live into O.
flushSegmentSet Flush the temporary segment set into the segment vector.
getNextValue Create and return a new value number defined at Def.
getNumValNums Return the number of value numbers in this range.
getSegmentContaining getSegmentContaining overloads
getSize getSize - Returns the sum of sizes of all the LiveRange's.
getVNInfoAt Return the VNInfo live at Idx, or null.
getVNInfoBefore Return the VNInfo live up to but not necessarily including Idx.
getValNumInfo getValNumInfo overloads
hasAtLeastOneValue Return true if this range has at least one value number.
hasSubRanges Returns true if subregister liveness information is available.
incrementWeight Increase the spill weight by Inc.
isLiveAtIndexes Return true if any segment contains one of the provided slot indexes.
isLocal Return true if this range is a single local segment between the bounds.
isSpillable isSpillable - Can this interval be spilled?
isUndefIn Return true if there is an explicit undef in []Begin, End).
isZeroLength Return true if no live segment spans an instruction.
join Join live range Other into this range using value-number mappings.
liveAt Return true if this range is live at slot index index.
markNotSpillable markNotSpillable - Mark interval as not spillable
mergeAdjacentSegments Merge the segment at I with adjacent same-value neighbors.
overlaps overlaps overloads
overlapsFrom Return true if this range overlaps Other from StartPos onward.
print Print this live interval to OS.
refineSubRanges Refine subranges so that LaneMask matches an exact subrange set.
reg Return the register or stack slot represented by this interval.
removeEmptySubRanges Removes all subranges without any segments (subranges without segments are not considered valid and should only exist temporarily).
removeSegment removeSegment overloads
removeValNo Remove all segments defined by ValNo and drop the value number.
removeValNoIfDead Mark ValNo for deletion if no segments in this range use it.
setWeight Set the spill weight to Value.
size Return the number of segments in this live range.
subrange_begin subrange_begin overloads
subrange_end subrange_end overloads
subranges subranges overloads
verify verify overloads
vni_begin vni_begin overloads
vni_end vni_end overloads
vnis vnis overloads
weight Return the spill weight of this interval.
operator< Less-than operators

Data Members

NameDescription
segmentSet Optional segment set used during initial live-range construction.
segments Liveness segments in ascending start order.
valnos Value numbers referenced by segments.

Protected Member Functions

NameDescription
append Append segment S to the list of segments.