A live range covering selected lanes of a super‐register.

Synopsis

Declared in <llvm/CodeGen/LiveInterval.h>

class SubRange
    : public LiveRange

Description

The LaneMask specifies which parts of the super register are covered by the interval. (

Base Classes

Name

Description

LiveRange

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

Types

Name

Description

Segment

A single continuous liveness interval for one value number.

Type Aliases

Name

Description

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_vni_iterator

Const iterator over value numbers.

iterator

Mutable iterator over live segments.

vni_iterator

Mutable iterator over value numbers.

Member Functions

Name

Description

SubRange [constructor]

Constructors

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.

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

createValueCopy

Create a copy of orig with a fresh value number.

dump

Dump this subrange 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

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.

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.

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.

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 subrange to OS.

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.

size

Return the number of segments in this live range.

verify

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

vni_begin

vni_begin overloads

vni_end

vni_end overloads

vnis

vnis overloads

operator<

Compare live ranges by their begin index.

Data Members

Name

Description

LaneMask

Lane mask describing which parts of the super‐register are covered.

Next

Next subrange in the owning LiveInterval's singly linked list.

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

Name

Description

append

Append segment S to the list of segments.

Created with MrDocs