Lines Matching refs:LiveRange
9 // This file implements the LiveRange and LiveInterval classes. Given some
15 // individual segment is represented as an instance of LiveRange::Segment,
16 // and the whole range is represented as an instance of LiveRange.
67 LiveRange *LR;
70 CalcLiveRangeUtilBase(LiveRange *LR) : LR(LR) {}
73 using Segment = LiveRange::Segment;
76 /// A counterpart of LiveRange::createDeadDef: Make sure the range has a
283 CalcLiveRangeUtilBase<CalcLiveRangeUtilVector, LiveRange::iterator,
284 LiveRange::Segments>;
288 CalcLiveRangeUtilVector(LiveRange *LR) : CalcLiveRangeUtilVectorBase(LR) {}
293 LiveRange::Segments &segmentsColl() { return LR->segments; }
309 CalcLiveRangeUtilBase<CalcLiveRangeUtilSet, LiveRange::SegmentSet::iterator,
310 LiveRange::SegmentSet>;
314 CalcLiveRangeUtilSet(LiveRange *LR) : CalcLiveRangeUtilSetBase(LR) {}
319 LiveRange::SegmentSet &segmentsColl() { return *LR->segmentSet; }
347 // LiveRange methods
350 LiveRange::iterator LiveRange::find(SlotIndex Pos) {
355 VNInfo *LiveRange::createDeadDef(SlotIndex Def, VNInfo::Allocator &VNIAlloc) {
363 VNInfo *LiveRange::createDeadDef(VNInfo *VNI) {
389 bool LiveRange::overlapsFrom(const LiveRange& other,
430 bool LiveRange::overlaps(const LiveRange &Other, const CoalescerPair &CP,
473 bool LiveRange::overlaps(SlotIndex Start, SlotIndex End) const {
479 bool LiveRange::covers(const LiveRange &Other) const {
504 void LiveRange::markValNoForDeletion(VNInfo *ValNo) {
516 void LiveRange::RenumberValues() {
529 void LiveRange::addSegmentToSet(Segment S) {
533 LiveRange::iterator LiveRange::addSegment(Segment S) {
543 void LiveRange::append(const Segment S) {
549 std::pair<VNInfo*,bool> LiveRange::extendInBlock(ArrayRef<SlotIndex> Undefs,
558 VNInfo *LiveRange::extendInBlock(SlotIndex StartIdx, SlotIndex Kill) {
566 void LiveRange::removeSegment(SlotIndex Start, SlotIndex End,
606 LiveRange::iterator LiveRange::removeSegment(iterator I, bool RemoveDeadValNo) {
614 void LiveRange::removeValNoIfDead(VNInfo *ValNo) {
621 void LiveRange::removeValNo(VNInfo *ValNo) {
629 void LiveRange::join(LiveRange &Other,
688 // LiveRange now. Also remove dead val#'s.
713 void LiveRange::MergeSegmentsInAsValue(const LiveRange &RHS,
725 void LiveRange::MergeValueInAsValue(const LiveRange &RHS,
738 VNInfo *LiveRange::MergeValueNumberInto(VNInfo *V1, VNInfo *V2) {
793 void LiveRange::flushSegmentSet() {
803 bool LiveRange::isLiveAtIndexes(ArrayRef<SlotIndex> Slots) const {
989 raw_ostream& llvm::operator<<(raw_ostream& OS, const LiveRange::Segment &S) {
994 LLVM_DUMP_METHOD void LiveRange::Segment::dump() const {
999 void LiveRange::print(raw_ostream &OS) const {
1031 << static_cast<const LiveRange &>(*this);
1044 LLVM_DUMP_METHOD void LiveRange::dump() const {
1058 void LiveRange::verify() const {
1157 static inline bool coalescable(const LiveRange::Segment &A,
1158 const LiveRange::Segment &B) {
1168 void LiveRangeUpdater::add(LiveRange::Segment Seg) {
1191 LiveRange::iterator E = LR->end();
1256 LiveRange::iterator Src = WriteI;
1257 LiveRange::iterator Dst = Src + NumMoved;
1258 LiveRange::iterator SpillSrc = Spills.end();
1259 LiveRange::iterator B = LR->begin();
1295 LR->segments.insert(ReadI, Spills.size() - GapSize, LiveRange::Segment());
1307 unsigned ConnectedVNInfoEqClasses::Classify(const LiveRange &LR) {