LLVM 20.0.0git
Public Member Functions | List of all members
llvm::LiveQueryResult Class Reference

Result of a LiveRange query. More...

#include "llvm/CodeGen/LiveInterval.h"

Public Member Functions

 LiveQueryResult (VNInfo *EarlyVal, VNInfo *LateVal, SlotIndex EndPoint, bool Kill)
 
VNInfovalueIn () 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.
 
VNInfovalueOut () const
 Return the value leaving the instruction, if any.
 
VNInfovalueOutOrDead () const
 Returns the value alive at the end of the instruction, if any.
 
VNInfovalueDefined () 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.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ LiveQueryResult()

llvm::LiveQueryResult::LiveQueryResult ( VNInfo EarlyVal,
VNInfo LateVal,
SlotIndex  EndPoint,
bool  Kill 
)
inline

Definition at line 97 of file LiveInterval.h.

Member Function Documentation

◆ endPoint()

SlotIndex llvm::LiveQueryResult::endPoint ( ) const
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().

◆ isDeadDef()

bool llvm::LiveQueryResult::isDeadDef ( ) const
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().

◆ isKill()

bool llvm::LiveQueryResult::isKill ( ) const
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().

◆ valueDefined()

VNInfo * llvm::LiveQueryResult::valueDefined ( ) const
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().

◆ valueIn()

VNInfo * llvm::LiveQueryResult::valueIn ( ) const
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().

◆ valueOut()

VNInfo * llvm::LiveQueryResult::valueOut ( ) const
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().

◆ valueOutOrDead()

VNInfo * llvm::LiveQueryResult::valueOutOrDead ( ) const
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().


The documentation for this class was generated from the following file: