LLVM API Documentation
#include <LiveInterval.h>

LiveInterval - This class represents some number of live ranges for a register or value. This class also contains a bit of register allocator state.
Definition at line 136 of file LiveInterval.h.
Definition at line 165 of file LiveInterval.h.
Definition at line 173 of file LiveInterval.h.
Definition at line 161 of file LiveInterval.h.
| typedef SmallVector<LiveRange,4> llvm::LiveInterval::Ranges |
Definition at line 139 of file LiveInterval.h.
Definition at line 169 of file LiveInterval.h.
| typedef SmallVector<VNInfo*,4> llvm::LiveInterval::VNInfoList |
Definition at line 140 of file LiveInterval.h.
| llvm::LiveInterval::LiveInterval | ( | unsigned | Reg, |
| float | Weight | ||
| ) | [inline] |
Definition at line 158 of file LiveInterval.h.
addRange - Add the specified LiveRange to this interval, merging intervals as appropriate. This returns an iterator to the inserted live range (which may have grown since it was inserted.
Definition at line 377 of file LiveInterval.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), and ranges.
Referenced by llvm::LiveIntervals::addLiveRangeToEndOfBlock(), llvm::LiveIntervals::repairIntervalsInRange(), llvm::LiveIntervals::shrinkToUses(), and llvm::MachineBasicBlock::SplitCriticalEdge().
advanceTo - Advance the specified iterator to point to the LiveRange containing the specified position, or end() if the position is past the end of the interval. If no LiveRange contains this position, but the position is in a hole, this method returns an iterator pointing to the LiveRange immediately after the hole.
Definition at line 182 of file LiveInterval.h.
References llvm::LiveRange::end, end(), endIndex(), and I.
Referenced by llvm::LiveIntervals::addKillFlags(), llvm::LiveIntervals::checkRegMaskInterference(), llvm::LiveIntervalUnion::Query::collectInterferingVRegs(), llvm::SplitAnalysis::countLiveBlocks(), and llvm::LiveIntervalUnion::extract().
| iterator llvm::LiveInterval::begin | ( | ) | [inline] |
Definition at line 162 of file LiveInterval.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), and ranges.
Referenced by llvm::LiveRangeUpdater::add(), llvm::LiveIntervals::addKillFlags(), llvm::LiveIntervals::checkRegMaskInterference(), llvm::SplitAnalysis::countLiveBlocks(), llvm::ConnectedVNInfoEqClasses::Distribute(), extendInBlock(), llvm::LiveIntervalUnion::extract(), find(), llvm::LiveRangeUpdater::flush(), getSize(), llvm::SplitAnalysis::isOriginalEndpoint(), isZeroLength(), join(), MergeRangesInAsValue(), MergeValueInAsValue(), MergeValueNumberInto(), overlaps(), overlapsFrom(), llvm::LiveRangeUpdater::print(), removeRange(), RenumberValues(), llvm::LiveIntervals::repairIntervalsInRange(), llvm::LiveIntervalUnion::unify(), and verify().
| const_iterator llvm::LiveInterval::begin | ( | ) | const [inline] |
Definition at line 166 of file LiveInterval.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), and ranges.
| SlotIndex llvm::LiveInterval::beginIndex | ( | ) | const [inline] |
beginIndex - Return the lowest numbered slot covered by interval.
Definition at line 280 of file LiveInterval.h.
References empty(), llvm::SmallVectorTemplateCommon< T, typename >::front(), and ranges.
Referenced by llvm::LiveIntervals::intervalIsInOneMBB(), isLocal(), operator<(), and overlaps().
| void llvm::LiveInterval::clear | ( | ) | [inline] |
Definition at line 203 of file LiveInterval.h.
References llvm::SmallVectorImpl< T >::clear(), ranges, and valnos.
| bool llvm::LiveInterval::containsOneValue | ( | ) | const [inline] |
Definition at line 210 of file LiveInterval.h.
References llvm::SmallVectorTemplateCommon< T, typename >::size(), and valnos.
containsValue - Returns true if VNI belongs to this interval.
Definition at line 224 of file LiveInterval.h.
References getNumValNums(), getValNumInfo(), and llvm::VNInfo::id.
| VNInfo * LiveInterval::createDeadDef | ( | SlotIndex | Def, |
| VNInfo::Allocator & | VNInfoAllocator | ||
| ) |
createDeadDef - Make sure the interval has a value defined at Def. If one already exists, return it. Otherwise allocate a new value and add liveness for a dead def.
Definition at line 52 of file LiveInterval.cpp.
References llvm::tgtok::Def, end(), find(), llvm::SlotIndex::getDeadSlot(), getNextValue(), I, llvm::SmallVectorImpl< T >::insert(), llvm::SlotIndex::isDead(), llvm::SlotIndex::isEarlierInstr(), llvm::SlotIndex::isSameInstr(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), and ranges.
Referenced by llvm::LiveRangeCalc::createDeadDefs().
| VNInfo* llvm::LiveInterval::createValueCopy | ( | const VNInfo * | orig, |
| VNInfo::Allocator & | VNInfoAllocator | ||
| ) | [inline] |
Create a copy of the given value. The new value will be identical except for the Value number.
Definition at line 244 of file LiveInterval.h.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and valnos.
| void LiveInterval::dump | ( | ) | const |
Definition at line 629 of file LiveInterval.cpp.
References llvm::dbgs().
| bool llvm::LiveInterval::empty | ( | ) | const [inline] |
Definition at line 277 of file LiveInterval.h.
References llvm::SmallVectorBase::empty(), and ranges.
Referenced by llvm::LiveIntervals::addKillFlags(), beginIndex(), llvm::PBQPBuilder::build(), llvm::LiveRegMatrix::checkInterference(), llvm::LiveIntervals::checkRegMaskInterference(), llvm::LiveRegMatrix::checkRegUnitInterference(), llvm::SplitAnalysis::countLiveBlocks(), llvm::LiveRangeEdit::eliminateDeadDefs(), endIndex(), extendInBlock(), llvm::LiveIntervalUnion::extract(), find(), llvm::SplitAnalysis::isOriginalEndpoint(), join(), overlaps(), overlapsFrom(), print(), removeValNo(), and llvm::LiveIntervalUnion::unify().
| iterator llvm::LiveInterval::end | ( | ) | [inline] |
Definition at line 163 of file LiveInterval.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end(), and ranges.
Referenced by llvm::LiveRangeUpdater::add(), llvm::LiveIntervals::addKillFlags(), advanceTo(), llvm::LiveIntervals::checkRegMaskInterference(), llvm::SplitAnalysis::countLiveBlocks(), createDeadDef(), llvm::ConnectedVNInfoEqClasses::Distribute(), extendInBlock(), llvm::LiveIntervalUnion::extract(), find(), FindLiveRangeContaining(), getLiveRangeContaining(), getSize(), getVNInfoAt(), getVNInfoBefore(), isInOneLiveRange(), llvm::SplitAnalysis::isOriginalEndpoint(), isPlainlyKilled(), isZeroLength(), join(), killedAt(), liveAt(), llvm::LiveRangeQuery::LiveRangeQuery(), MergeRangesInAsValue(), MergeValueInAsValue(), MergeValueNumberInto(), overlaps(), overlapsFrom(), llvm::LiveRangeUpdater::print(), removeRange(), RenumberValues(), llvm::LiveIntervals::repairIntervalsInRange(), llvm::LiveIntervals::shrinkToUses(), llvm::LiveIntervalUnion::unify(), and verify().
| const_iterator llvm::LiveInterval::end | ( | ) | const [inline] |
Definition at line 167 of file LiveInterval.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end(), and ranges.
| SlotIndex llvm::LiveInterval::endIndex | ( | ) | const [inline] |
endNumber - return the maximum point of the interval of the whole, exclusive.
Definition at line 287 of file LiveInterval.h.
References llvm::SmallVectorTemplateCommon< T, typename >::back(), empty(), and ranges.
Referenced by advanceTo(), expiredAt(), find(), llvm::LiveIntervals::intervalIsInOneMBB(), and isLocal().
Definition at line 292 of file LiveInterval.h.
References endIndex().
extendInBlock - If this interval is live before Kill in the basic block that starts at StartIdx, extend it to be live up to Kill, and return the value. If there is no live range before Kill, return NULL.
extendInBlock - If this interval is live before Kill in the basic block that starts at StartIdx, extend it to be live up to Kill and return the value. If there is no live range before Kill, return NULL.
Definition at line 335 of file LiveInterval.cpp.
References begin(), empty(), llvm::LiveRange::end, end(), llvm::SlotIndex::getPrevSlot(), I, and llvm::LiveRange::valno.
Referenced by llvm::LiveRangeCalc::extend(), and llvm::LiveIntervals::shrinkToUses().
| LiveInterval::iterator LiveInterval::find | ( | SlotIndex | Pos | ) |
find - Return an iterator pointing to the first range that ends after Pos, or end(). This is the same as advanceTo(begin(), Pos), but faster when searching large intervals.
If Pos is contained in a LiveRange, that range is returned. If Pos is in a hole, the following LiveRange is returned. If Pos is beyond endIndex, end() is returned.
Definition at line 34 of file LiveInterval.cpp.
References begin(), empty(), end(), endIndex(), I, ranges, and llvm::SmallVectorTemplateCommon< T, typename >::size().
Referenced by llvm::LiveRangeUpdater::add(), llvm::LiveIntervals::addKillFlags(), createDeadDef(), find(), FindLiveRangeContaining(), isInOneLiveRange(), llvm::SplitAnalysis::isOriginalEndpoint(), isPlainlyKilled(), killedAt(), liveAt(), llvm::LiveRangeQuery::LiveRangeQuery(), overlaps(), removeRange(), and llvm::LiveIntervals::repairIntervalsInRange().
| const_iterator llvm::LiveInterval::find | ( | SlotIndex | Pos | ) | const [inline] |
Definition at line 199 of file LiveInterval.h.
References find().
FindLiveRangeContaining - Return an iterator to the live range that contains the specified index, or end() if there is none.
Definition at line 339 of file LiveInterval.h.
References end(), find(), I, and llvm::LiveRange::start.
Referenced by getLiveRangeContaining(), getVNInfoAt(), getVNInfoBefore(), and llvm::LiveIntervals::shrinkToUses().
| const_iterator llvm::LiveInterval::FindLiveRangeContaining | ( | SlotIndex | Idx | ) | const [inline] |
Definition at line 344 of file LiveInterval.h.
References end(), find(), I, and llvm::LiveRange::start.
getLiveRangeContaining - Return the live range that contains the specified index, or null if there is none.
Definition at line 311 of file LiveInterval.h.
References end(), FindLiveRangeContaining(), and I.
getLiveRangeContaining - Return the live range that contains the specified index, or null if there is none.
Definition at line 318 of file LiveInterval.h.
References end(), FindLiveRangeContaining(), and I.
| VNInfo* llvm::LiveInterval::getNextValue | ( | SlotIndex | def, |
| VNInfo::Allocator & | VNInfoAllocator | ||
| ) | [inline] |
getNextValue - Create a new value number and return it. MIIdx specifies the instruction that defines the value number.
Definition at line 230 of file LiveInterval.h.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and valnos.
Referenced by llvm::LiveIntervals::addLiveRangeToEndOfBlock(), createDeadDef(), and llvm::LiveIntervals::repairIntervalsInRange().
| unsigned llvm::LiveInterval::getNumValNums | ( | ) | const [inline] |
Definition at line 212 of file LiveInterval.h.
References llvm::SmallVectorTemplateCommon< T, typename >::size(), and valnos.
Referenced by llvm::ConnectedVNInfoEqClasses::Classify(), containsValue(), llvm::ConnectedVNInfoEqClasses::Distribute(), join(), and print().
| unsigned LiveInterval::getSize | ( | ) | const |
getSize - Returns the sum of sizes of all the LiveRange's.
Definition at line 580 of file LiveInterval.cpp.
References begin(), end(), and I.
Referenced by llvm::VirtRegAuxInfo::CalculateWeightAndHint().
getValNumInfo - Returns pointer to the specified val#.
Definition at line 216 of file LiveInterval.h.
References valnos.
Referenced by containsValue(), llvm::ConnectedVNInfoEqClasses::Distribute(), join(), and print().
Definition at line 219 of file LiveInterval.h.
References valnos.
getVNInfoAt - Return the VNInfo that is live at Idx, or NULL.
Definition at line 324 of file LiveInterval.h.
References end(), FindLiveRangeContaining(), I, and llvm::LiveRange::valno.
Referenced by llvm::LiveRangeEdit::eliminateDeadDefs(), llvm::SplitEditor::enterIntvAfter(), llvm::SplitEditor::enterIntvAtEnd(), llvm::SplitEditor::enterIntvBefore(), llvm::SplitEditor::leaveIntvAfter(), llvm::SplitEditor::leaveIntvAtTop(), llvm::SplitEditor::leaveIntvBefore(), llvm::SplitEditor::overlapIntv(), and llvm::MachineBasicBlock::SplitCriticalEdge().
getVNInfoBefore - Return the VNInfo that is live up to but not necessarilly including Idx, or NULL. Use this to find the reaching def used by an instruction at this SlotIndex position.
Definition at line 332 of file LiveInterval.h.
References end(), FindLiveRangeContaining(), llvm::SlotIndex::getPrevSlot(), I, and llvm::LiveRange::valno.
Referenced by llvm::ConnectedVNInfoEqClasses::Classify(), llvm::LiveIntervals::hasPHIKill(), llvm::SplitEditor::overlapIntv(), and llvm::LiveIntervals::shrinkToUses().
| bool llvm::LiveInterval::hasAtLeastOneValue | ( | ) | const [inline] |
Definition at line 208 of file LiveInterval.h.
References llvm::SmallVectorBase::empty(), and valnos.
Referenced by isPlainlyKilled(), and llvm::LiveIntervals::repairIntervalsInRange().
isInOneLiveRange - Return true if the range specified is entirely in the a single LiveRange of the live interval.
Definition at line 397 of file LiveInterval.h.
References llvm::LiveRange::containsRange(), end(), and find().
True iff this live range is a single segment that lies between the specified boundaries, exclusively. Vregs live across a backedge are not considered local. The boundaries are expected to lie within an extended basic block, so vregs that are not live out should contain no holes.
Definition at line 406 of file LiveInterval.h.
References beginIndex(), endIndex(), llvm::SlotIndex::getBaseIndex(), and llvm::SlotIndex::getBoundaryIndex().
| bool llvm::LiveInterval::isSpillable | ( | ) | const [inline] |
isSpillable - Can this interval be spilled?
Definition at line 439 of file LiveInterval.h.
References HUGE_VALF, and weight.
Referenced by llvm::VirtRegAuxInfo::CalculateWeightAndHint().
| bool llvm::LiveInterval::isZeroLength | ( | SlotIndexes * | Indexes | ) | const [inline] |
Returns true if the live interval is zero length, i.e. no live ranges span instructions. It doesn't pay to spill such an interval.
Definition at line 430 of file LiveInterval.h.
References begin(), end(), llvm::SlotIndex::getBaseIndex(), and llvm::SlotIndexes::getNextNonNullIndex().
Referenced by llvm::VirtRegAuxInfo::CalculateWeightAndHint().
| void LiveInterval::join | ( | LiveInterval & | Other, |
| const int * | LHSValNoAssignments, | ||
| const int * | RHSValNoAssignments, | ||
| SmallVector< VNInfo *, 16 > & | NewVNInfo, | ||
| MachineRegisterInfo * | MRI | ||
| ) |
join - Join two live intervals (this, and other) together. This applies mappings to the value numbers in the LHS/RHS intervals as specified. If the intervals are not joinable, this aborts.
Definition at line 415 of file LiveInterval.cpp.
References llvm::LiveRangeUpdater::add(), begin(), empty(), llvm::LiveRange::end, end(), llvm::SmallVectorImpl< T >::erase(), getNumValNums(), getValNumInfo(), I, llvm::VNInfo::id, llvm::next(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), ranges, llvm::SmallVectorImpl< T >::resize(), llvm::SmallVectorTemplateCommon< T >::size(), llvm::LiveRange::start, llvm::LiveRange::valno, valnos, and verify().
killedAt - Return true if a live range ends at index. Note that the kill point is not contained in the half-open live range. It is usually the getDefIndex() slot following its last use.
Definition at line 304 of file LiveInterval.h.
References llvm::LiveRange::end, end(), find(), and llvm::SlotIndex::getRegSlot().
Referenced by llvm::RegPressureTracker::advance(), llvm::RegPressureTracker::bumpDownwardPressure(), llvm::LiveRangeEdit::eliminateDeadDefs(), and llvm::RegPressureTracker::recede().
Definition at line 296 of file LiveInterval.h.
References end(), find(), and llvm::LiveRange::start.
Referenced by llvm::LiveIntervals::isLiveInToMBB(), llvm::LiveIntervals::isLiveOutOfMBB(), and llvm::MachineBasicBlock::SplitCriticalEdge().
| void llvm::LiveInterval::markNotSpillable | ( | ) | [inline] |
markNotSpillable - Mark interval as not spillable
Definition at line 444 of file LiveInterval.h.
References HUGE_VALF, and weight.
Referenced by llvm::VirtRegAuxInfo::CalculateWeightAndHint().
| void LiveInterval::MergeRangesInAsValue | ( | const LiveInterval & | RHS, |
| VNInfo * | LHSValNo | ||
| ) |
MergeValueInAsValue - Merge all of the live ranges of a specific val# in RHS into this live interval as the specified value number. The LiveRanges in RHS are allowed to overlap with LiveRanges in the current interval, it will replace the value numbers of the overlaped live ranges with the specified value number.
MergeRangesInAsValue - Merge all of the intervals in RHS into this live interval as the specified value number. The LiveRanges in RHS are allowed to overlap with LiveRanges in the current interval, but only if the overlapping LiveRanges have the specified value number.
Definition at line 500 of file LiveInterval.cpp.
References llvm::LiveRangeUpdater::add(), begin(), end(), and I.
| void LiveInterval::MergeValueInAsValue | ( | const LiveInterval & | RHS, |
| const VNInfo * | RHSValNo, | ||
| VNInfo * | LHSValNo | ||
| ) |
MergeValueInAsValue - Merge all of the live ranges of a specific val# in RHS into this live interval as the specified value number. The LiveRanges in RHS are allowed to overlap with LiveRanges in the current interval, but only if the overlapping LiveRanges have the specified value number.
MergeValueInAsValue - Merge all of the live ranges of a specific val# in RHS into this live interval as the specified value number. The LiveRanges in RHS are allowed to overlap with LiveRanges in the current interval, it will replace the value numbers of the overlaped live ranges with the specified value number.
Definition at line 512 of file LiveInterval.cpp.
References llvm::LiveRangeUpdater::add(), begin(), end(), and I.
MergeValueNumberInto - This method is called when two value nubmers are found to be equivalent. This eliminates V1, replacing all LiveRanges with the V1 value number with the V2 value number. This can cause merging of V1/V2 values numbers and compaction of the value space.
Definition at line 525 of file LiveInterval.cpp.
References begin(), llvm::VNInfo::copyFrom(), llvm::LiveRange::end, end(), llvm::SmallVectorImpl< T >::erase(), llvm::VNInfo::id, ranges, llvm::LiveRange::start, llvm::swap(), llvm::NVPTX::PTXLdStInstCode::V2, and llvm::LiveRange::valno.
| bool llvm::LiveInterval::operator< | ( | const LiveInterval & | other | ) | const [inline] |
Definition at line 448 of file LiveInterval.h.
References beginIndex(), and reg.
| bool llvm::LiveInterval::overlaps | ( | const LiveInterval & | other | ) | const [inline] |
overlaps - Return true if the intersection of the two live intervals is not empty.
Definition at line 351 of file LiveInterval.h.
References begin(), empty(), and overlapsFrom().
Referenced by llvm::PBQPBuilder::build(), and llvm::LiveRegMatrix::checkRegUnitInterference().
| bool LiveInterval::overlaps | ( | const LiveInterval & | Other, |
| const CoalescerPair & | CP, | ||
| const SlotIndexes & | Indexes | ||
| ) | const |
overlaps - Return true if the two intervals have overlapping segments that are not coalescable according to CP.
Overlapping segments where one interval is defined by a coalescable copy are allowed.
Definition at line 139 of file LiveInterval.cpp.
References beginIndex(), llvm::tgtok::Def, empty(), llvm::LiveRange::end, end(), find(), llvm::SlotIndexes::getInstructionFromIndex(), I, llvm::ARM_PROC::IE, llvm::SlotIndex::isBlock(), llvm::CoalescerPair::isCoalescable(), llvm::LiveRange::start, and llvm::swap().
overlaps - Return true if the live interval overlaps a range specified by [Start, End).
Definition at line 183 of file LiveInterval.cpp.
| bool LiveInterval::overlapsFrom | ( | const LiveInterval & | other, |
| const_iterator | I | ||
| ) | const |
overlapsFrom - Return true if the intersection of the two live intervals is not empty. The specified iterator is a hint that we can begin scanning the Other interval starting at I.
Definition at line 98 of file LiveInterval.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), begin(), empty(), llvm::LiveRange::end, end(), ranges, llvm::LiveRange::start, and llvm::swap().
Referenced by overlaps().
| void LiveInterval::print | ( | raw_ostream & | OS | ) | const |
Definition at line 597 of file LiveInterval.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::VNInfo::def, empty(), llvm::SmallVectorTemplateCommon< T, typename >::end(), getNumValNums(), getValNumInfo(), I, llvm::VNInfo::isPHIDef(), llvm::VNInfo::isUnused(), ranges, vni_begin(), and vni_end().
Referenced by llvm::operator<<().
removeRange - Remove the specified range from this interval. Note that the range must be a single LiveRange in its entirety.
removeRange - Remove the specified range from this interval. Note that the range must be in a single LiveRange in its entirety.
Definition at line 351 of file LiveInterval.cpp.
References begin(), llvm::LiveRange::containsRange(), llvm::LiveRange::end, llvm::SmallVectorTemplateCommon< T, typename >::end(), end(), llvm::SmallVectorImpl< T >::erase(), find(), llvm::SmallVectorImpl< T >::insert(), llvm::next(), ranges, llvm::LiveRange::start, and llvm::LiveRange::valno.
Referenced by llvm::LiveIntervals::pruneValue(), removeRange(), llvm::LiveIntervals::repairIntervalsInRange(), llvm::LiveIntervals::shrinkToUses(), and llvm::MachineBasicBlock::SplitCriticalEdge().
Definition at line 416 of file LiveInterval.h.
References llvm::LiveRange::end, removeRange(), and llvm::LiveRange::start.
| void LiveInterval::removeValNo | ( | VNInfo * | ValNo | ) |
removeValNo - Remove all the ranges defined by the specified value#. Also remove the value# from value# list.
Definition at line 399 of file LiveInterval.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), empty(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorImpl< T >::erase(), I, ranges, and llvm::LiveRange::valno.
Referenced by llvm::LiveRangeEdit::eliminateDeadDefs().
| void LiveInterval::RenumberValues | ( | LiveIntervals & | lis | ) |
RenumberValues - Renumber all values in order of appearance and remove unused values.
RenumberValues - Renumber all values in order of appearance and delete the remaining unused values.
Definition at line 205 of file LiveInterval.cpp.
References begin(), llvm::SmallVectorImpl< T >::clear(), end(), I, llvm::VNInfo::id, llvm::SmallPtrSet< PtrType, SmallSize >::insert(), llvm::VNInfo::isUnused(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and valnos.
Referenced by llvm::LiveRangeEdit::eliminateDeadDefs().
| void LiveInterval::verify | ( | ) | const |
Walk the interval and assert if any invariants fail to hold.
Note that this is a no-op when asserts are disabled.
Definition at line 635 of file LiveInterval.cpp.
References begin(), end(), I, llvm::next(), and valnos.
Referenced by llvm::LiveRangeUpdater::flush(), and join().
| vni_iterator llvm::LiveInterval::vni_begin | ( | ) | [inline] |
Definition at line 170 of file LiveInterval.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), and valnos.
Referenced by llvm::ConnectedVNInfoEqClasses::Classify(), llvm::SplitEditor::finish(), llvm::LiveIntervals::hasPHIKill(), isRematerializable(), print(), and llvm::LiveIntervals::shrinkToUses().
| const_vni_iterator llvm::LiveInterval::vni_begin | ( | ) | const [inline] |
Definition at line 174 of file LiveInterval.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), and valnos.
| vni_iterator llvm::LiveInterval::vni_end | ( | ) | [inline] |
Definition at line 171 of file LiveInterval.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end(), and valnos.
Referenced by llvm::ConnectedVNInfoEqClasses::Classify(), llvm::SplitEditor::finish(), llvm::LiveIntervals::hasPHIKill(), isRematerializable(), print(), and llvm::LiveIntervals::shrinkToUses().
| const_vni_iterator llvm::LiveInterval::vni_end | ( | ) | const [inline] |
Definition at line 175 of file LiveInterval.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end(), and valnos.
Definition at line 144 of file LiveInterval.h.
Referenced by llvm::LiveRangeUpdater::add(), addRange(), begin(), beginIndex(), clear(), createDeadDef(), llvm::ConnectedVNInfoEqClasses::Distribute(), empty(), end(), endIndex(), find(), llvm::LiveRangeUpdater::flush(), join(), MergeValueNumberInto(), overlapsFrom(), print(), removeRange(), removeValNo(), and llvm::LiveIntervals::shrinkToUses().
Definition at line 142 of file LiveInterval.h.
Referenced by llvm::RegAllocBase::allocatePhysRegs(), llvm::LiveRegMatrix::assign(), llvm::LiveRangeEdit::calculateRegClassAndHint(), llvm::VirtRegAuxInfo::CalculateWeightAndHint(), llvm::LiveRegMatrix::checkRegMaskInterference(), llvm::LiveRegMatrix::checkRegUnitInterference(), llvm::LiveRangeCalc::createDeadDefs(), llvm::ConnectedVNInfoEqClasses::Distribute(), llvm::LiveRangeEdit::eliminateDeadDefs(), llvm::LiveRangeCalc::extendToUses(), llvm::LiveRangeEdit::getReg(), llvm::SplitAnalysis::isOriginalEndpoint(), operator<(), llvm::LiveRangeUpdater::print(), llvm::LiveIntervals::shrinkToUses(), and llvm::LiveRegMatrix::unassign().
Definition at line 145 of file LiveInterval.h.
Referenced by clear(), containsOneValue(), createValueCopy(), llvm::ConnectedVNInfoEqClasses::Distribute(), getNextValue(), getNumValNums(), getValNumInfo(), hasAtLeastOneValue(), join(), RenumberValues(), verify(), vni_begin(), and vni_end().
Definition at line 143 of file LiveInterval.h.
Referenced by llvm::PBQPBuilder::build(), llvm::VirtRegAuxInfo::CalculateWeightAndHint(), isSpillable(), markNotSpillable(), and false::IntervalSorter::operator()().