LLVM 20.0.0git
|
Result of a LiveRange query. More...
#include "llvm/CodeGen/LiveInterval.h"
Public Member Functions | |
LiveQueryResult (VNInfo *EarlyVal, VNInfo *LateVal, SlotIndex EndPoint, bool Kill) | |
VNInfo * | valueIn () const |
Return the value that is live-in to the instruction. | |
bool | isKill () const |
Return true if the live-in value is killed by this instruction. | |
bool | isDeadDef () const |
Return true if this instruction has a dead def. | |
VNInfo * | valueOut () const |
Return the value leaving the instruction, if any. | |
VNInfo * | valueOutOrDead () const |
Returns the value alive at the end of the instruction, if any. | |
VNInfo * | valueDefined () const |
Return the value defined by this instruction, if any. | |
SlotIndex | endPoint () const |
Return the end point of the last live range segment to interact with the instruction, if any. | |
Result of a LiveRange query.
This class hides the implementation details of live ranges, and it should be used as the primary interface for examining live ranges around instructions.
Definition at line 90 of file LiveInterval.h.
|
inline |
Definition at line 97 of file LiveInterval.h.
|
inline |
Return the end point of the last live range segment to interact with the instruction, if any.
The end point is an invalid SlotIndex only if the live range doesn't intersect the instruction at all.
The end point may be at or past the end of the instruction's basic block. That means the value was live out of the block.
Definition at line 147 of file LiveInterval.h.
Referenced by llvm::LiveIntervals::pruneValue().
|
inline |
Return true if this instruction has a dead def.
Definition at line 117 of file LiveInterval.h.
References llvm::SlotIndex::isDead().
Referenced by llvm::RegisterOperands::detectDeadDefs(), llvm::LiveIntervals::handleMoveIntoNewBundle(), and valueOut().
|
inline |
Return true if the live-in value is killed by this instruction.
This means that either the live range ends at the instruction, or it changes value.
Definition at line 112 of file LiveInterval.h.
Referenced by isDefBetween().
|
inline |
Return the value defined by this instruction, if any.
This includes dead defs, it is the value created by the instruction's def operands.
Definition at line 135 of file LiveInterval.h.
Referenced by llvm::ConnectedVNInfoEqClasses::Distribute(), and llvm::LiveIntervals::shrinkToUses().
|
inline |
Return the value that is live-in to the instruction.
This is the value that will be read by the instruction's use operands. Return NULL if no value is live-in.
Definition at line 105 of file LiveInterval.h.
Referenced by llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), llvm::ConnectedVNInfoEqClasses::Distribute(), isDefBetween(), isLiveThrough(), llvm::VirtRegAuxInfo::isRematerializable(), llvm::LiveIntervals::pruneValue(), llvm::LiveIntervals::shrinkToUses(), and llvm::ScheduleDAGMILive::updatePressureDiffs().
|
inline |
Return the value leaving the instruction, if any.
This can be a live-through value, or a live def. A dead def returns NULL.
Definition at line 123 of file LiveInterval.h.
References isDeadDef().
Referenced by llvm::ConnectedVNInfoEqClasses::Distribute(), isDefBetween(), and isLiveThrough().
|
inline |
Returns the value alive at the end of the instruction, if any.
This can be a live-through value, a live def or a dead def.
Definition at line 129 of file LiveInterval.h.
Referenced by isDefInSubRange(), and llvm::LiveIntervals::pruneValue().