LLVM
8.0.1
|
VNInfo - Value Number Information. More...
#include "llvm/CodeGen/LiveInterval.h"
Public Types | |
using | Allocator = BumpPtrAllocator |
Public Member Functions | |
VNInfo (unsigned i, SlotIndex d) | |
VNInfo constructor. More... | |
VNInfo (unsigned i, const VNInfo &orig) | |
VNInfo constructor, copies values from orig, except for the value number. More... | |
void | copyFrom (VNInfo &src) |
Copy from the parameter into this VNInfo. More... | |
bool | isPHIDef () const |
Returns true if this value is defined by a PHI instruction (or was, PHI instructions may have been eliminated). More... | |
bool | isUnused () const |
Returns true if this value is unused. More... | |
void | markUnused () |
Mark this value as unused. More... | |
Public Attributes | |
unsigned | id |
The ID number of this value. More... | |
SlotIndex | def |
The index of the defining instruction. More... | |
VNInfo - Value Number Information.
This class holds information about a machine level values, including definition and use points.
Definition at line 53 of file LiveInterval.h.
Definition at line 55 of file LiveInterval.h.
VNInfo constructor.
Definition at line 64 of file LiveInterval.h.
Referenced by llvm::LiveRange::createValueCopy(), and llvm::LiveRange::getNextValue().
VNInfo constructor, copies values from orig, except for the value number.
Definition at line 67 of file LiveInterval.h.
|
inline |
Copy from the parameter into this VNInfo.
Definition at line 70 of file LiveInterval.h.
References def.
Referenced by llvm::LiveRange::MergeValueNumberInto().
|
inline |
Returns true if this value is defined by a PHI instruction (or was, PHI instructions may have been eliminated).
PHI-defs begin at a block boundary, all other defs begin at register or EC slots.
Definition at line 78 of file LiveInterval.h.
References llvm::SlotIndex::isBlock().
Referenced by addSegmentsWithValNo(), llvm::ConnectedVNInfoEqClasses::Classify(), llvm::SplitAnalysis::clear(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), llvm::LiveRangeCalc::constructMainRangeFromSubranges(), createSegmentsForValues(), llvm::createSIWholeQuadModePass(), definesFullReg(), llvm::LiveIntervals::hasPHIKill(), isDefInSubRange(), isFullCopyOf(), isRematerializable(), matchPair(), llvm::LiveRange::print(), llvm::LiveIntervals::shrinkToUses(), and subRangeLiveAt().
|
inline |
Returns true if this value is unused.
Definition at line 81 of file LiveInterval.h.
References llvm::SlotIndex::isValid().
Referenced by addSegmentsWithValNo(), llvm::ConnectedVNInfoEqClasses::Classify(), llvm::SplitAnalysis::clear(), llvm::LiveRangeCalc::constructMainRangeFromSubranges(), definesFullReg(), llvm::ConnectedVNInfoEqClasses::Distribute(), llvm::SplitEditor::finish(), llvm::LiveIntervals::hasPHIKill(), isDefInSubRange(), isFullCopyOf(), isRematerializable(), matchPair(), llvm::LiveRange::print(), llvm::LiveRange::RenumberValues(), llvm::LiveIntervals::shrinkToUses(), and subRangeLiveAt().
|
inline |
Mark this value as unused.
Definition at line 84 of file LiveInterval.h.
Referenced by addSegmentsWithValNo(), llvm::LiveRange::covers(), isDefInSubRange(), and llvm::LiveIntervals::shrinkToUses().
SlotIndex llvm::VNInfo::def |
The index of the defining instruction.
Definition at line 61 of file LiveInterval.h.
Referenced by addSegmentsWithValNo(), allPhiOperandsUndefined(), llvm::LiveRangeEdit::checkRematerializable(), llvm::ConnectedVNInfoEqClasses::Classify(), llvm::SplitAnalysis::clear(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), llvm::LiveRangeCalc::constructMainRangeFromSubranges(), copyFrom(), llvm::createCopyConstrainDAGMutation(), llvm::LiveRange::createDeadDef(), createSegmentsForValues(), llvm::createSIWholeQuadModePass(), definesFullReg(), llvm::ConnectedVNInfoEqClasses::Distribute(), llvm::SplitEditor::dump(), llvm::SplitEditor::enterIntvAfter(), llvm::SplitEditor::enterIntvBefore(), llvm::LiveRangeEdit::eraseVirtReg(), llvm::SIRegisterInfo::findReachingDef(), llvm::SplitEditor::finish(), llvm::LiveRange::getNextValue(), llvm::LiveIntervals::hasPHIKill(), llvm::InsertPointAnalysis::InsertPointAnalysis(), llvm::CoalescerPair::isCoalescable(), isDefInSubRange(), isFullCopyOf(), isFullUndefDef(), isRematerializable(), llvm::SplitEditor::leaveIntvAfter(), llvm::SplitEditor::leaveIntvBefore(), matchPair(), MoveAndTeeForMultiUse(), llvm::LiveRange::print(), llvm::LiveRange::Query(), llvm::LiveIntervals::removeVRegDefAt(), llvm::LiveIntervals::shrinkToUses(), subRangeLiveAt(), llvm::LiveIntervals::HMEditor::updateAllRanges(), and llvm::MachineFunction::verify().
unsigned llvm::VNInfo::id |
The ID number of this value.
Definition at line 58 of file LiveInterval.h.
Referenced by llvm::LiveRange::assign(), llvm::ConnectedVNInfoEqClasses::Classify(), llvm::LiveRange::containsValue(), llvm::LiveRange::covers(), llvm::DistributeRange(), llvm::SplitEditor::dump(), llvm::SplitEditor::enterIntvAfter(), llvm::SplitEditor::enterIntvBefore(), llvm::ConnectedVNInfoEqClasses::getEqClass(), isFullCopyOf(), llvm::LiveRange::join(), llvm::SplitEditor::leaveIntvAfter(), llvm::SplitEditor::leaveIntvBefore(), matchPair(), llvm::LiveRange::MergeValueNumberInto(), llvm::operator<<(), llvm::LiveIntervals::print(), llvm::LiveRange::RenumberValues(), and llvm::MachineFunction::verify().