llvm::LiveRangeCalc

Calculator for live ranges over machine IR.

Synopsis

Declared in <llvm/CodeGen/LiveRangeCalc.h>

class LiveRangeCalc;

Description

Computes live ranges from scratch, or fills in SSA values when live-in and live-out blocks are already known. Caches CFG value information so repeated operations on the same live range (or non-overlapping ranges that share the cache) are faster.

Member Functions

NameDescription
LiveRangeCalc [constructor]Construct an uninitialized live-range calculator.
addLiveInBlock Add a block with an unknown live-in value.
calculateValues Calculate live-in values for blocks added with addLiveInBlock.
extend Extend the live range of LR to reach Use.
reset Prepare caches for a new set of non-overlapping live ranges.
setLiveOutValue Indicate that VNI is live out from MBB.

Static Member Functions

NameDescription
isJointlyDominated Check whether the end of MBB is jointly dominated by Defs.

Protected Member Functions

NameDescription
getDomTree Return the machine dominator tree used for calculations.
getIndexes Return the slot indexes analysis used for calculations.
getMachineFunction Some getters to expose in a read-only way some private fields to subclasses.
getRegInfo Return the machine register info used for calculations.
getVNAlloc Return the allocator used for value numbers.
resetLiveOutMap Reset Map and Seen fields.

Derived Classes

NameDescription
LiveIntervalCalc Extension of LiveRangeCalc for computing and modifying LiveIntervals.