LLVM 22.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 91 of file LiveInterval.h.
|
inline |
Definition at line 98 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 148 of file LiveInterval.h.
Referenced by llvm::LiveIntervals::pruneValue().
|
inline |
Return true if this instruction has a dead def.
Definition at line 118 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 113 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 136 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 106 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 124 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 130 of file LiveInterval.h.
Referenced by isDefInSubRange(), and llvm::LiveIntervals::pruneValue().