Union of live intervals that are strong candidates for coalescing.

Synopsis

Declared in <llvm/CodeGen/LiveIntervalUnion.h>

class LiveIntervalUnion;

Description

The intervals may be coalesced 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.

Types

Name

Description

Array

Fixed‐size array of LiveIntervalUnion instances.

Query

Query interferences between a single live virtual register and a live interval union.

Type Aliases

Name

Description

Allocator

Allocator type shared by LiveIntervalUnion instances.

ConstSegmentIter

Const version of SegmentIter.

Map

Underlying interval map type used by the union.

SegmentIter

Iterator over segments ordered by starting position.

Member Functions

Name

Description

LiveIntervalUnion [constructor]

Construct an empty union that allocates segments from a.

begin

begin overloads

changedSince

changedSince ‐ Return true if the union change since getTag returned tag.

clear

Remove all inserted virtual registers.

clearAllSegmentsReferencing

Remove all segments referencing VirtRegLI.

empty

Return true if the union contains no segments.

end

end overloads

endIndex

Return the end index of the last segment in the union.

extract

Remove a live virtual register's segments from this union.

find

find overloads

getMap

Return the underlying map to allow overlap iteration.

getOneVReg

Return any virtual register assigned to this physical unit, or nullptr.

getTag

getTag ‐ Return an opaque tag representing the current state of the union.

print

Print the union, using TRI to translate register names.

startIndex

Return the start index of the first segment in the union.

unify

Add a live virtual register to this union and merge its segments.

verify

Verify the live intervals in this union and add them to VisitedVRegs.

Created with MrDocs