Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:Segment

67     "use-segment-set-for-physregs", cl::Hidden, cl::init(true),
69 "Use segment set for the computation of the live ranges of physregs."));
286 // Flush the segment set to the segment vector.
320 // Use segment set to speed-up initial computation of the live range.
347 LR.addSegment(LiveRange::Segment(Def, Def.getDeadSlot(), VNI));
391 LR.addSegment(LiveRange::Segment(BlockStart, Idx, VNI));
473 assert(I != LI.end() && "Missing segment for VNI");
561 const LiveRange::Segment *Segment = SR.getSegmentContaining(VNI->def);
562 assert(Segment != nullptr && "Missing segment for VNI");
563 if (Segment->end != VNI->def.getDeadSlot())
569 SR.removeSegment(*Segment);
623 // This block isn't part of the VNI segment. Prune the search.
681 // Every instruction that kills Reg corresponds to a segment range end
758 // If an instruction writes to a subregister, a new segment starts in
763 // Next segment has to be adjacent in the subregister write case.
827 LiveRange::Segment
833 LiveRange::Segment S(SlotIndex(getInstructionIndex(startInst).getRegSlot()),
875 // Loop over all slots overlapping this segment.
889 // *SlotI is beyond the current LI segment.
1007 // Segment going into OldIdx.
1036 // Extend the segment before NewIdx if necessary.
1062 // to the segment starting there.
1069 // of the segment to NewIdx.
1099 assert(INext != E && "Must have following segment");
1102 // We don't need INext->valno anymore and will reuse for the new segment
1108 // If NewIdx is behind the last segment, extend that and append a new one.
1115 // The last segment is undefined now, reuse it for a dead def.
1117 *NewSegment = LiveRange::Segment(NewIdxDef, NewIdxDef.getDeadSlot(),
1133 // NewIdxDef into the segment "Prev" followed by "NewSegment".
1135 *NewSegment = LiveRange::Segment(NewIdxDef, Prev->end, Prev->valno);
1138 *Prev = LiveRange::Segment(Prev->start, NewIdxDef, DefVNI);
1142 // turn Prev into a segment from NewIdx to AfterNewIdx->start.
1143 *Prev = LiveRange::Segment(NewIdxDef, AfterNewIdx->start, DefVNI);
1159 // at NewIdx. Shift segments over the old OldIdxOut segment, this frees
1160 // a new segment at the place where we want to construct the dead def.
1169 *NewSegment = LiveRange::Segment(NewIdxDef, NewIdxDef.getDeadSlot(),
1178 // Segment going into OldIdx.
1212 // to the segment starting there.
1227 // Remove segment starting at NewIdx and move begin of OldIdxOut to
1249 *OldIdxOut = LiveRange::Segment(OldIdxIn->start, OldIdxOut->end,
1262 *NewSegment = LiveRange::Segment(Next->start, SplitPos,
1264 *Next = LiveRange::Segment(SplitPos, Next->end, OldIdxVNI);
1269 *NewSegment = LiveRange::Segment(SplitPos, Next->start, OldIdxVNI);
1286 // OldIdxVNI can be reused now to build a new dead def segment.
1289 *NewSegment = LiveRange::Segment(NewIdxDef, NewIdxDef.getDeadSlot(),
1453 LiveRange::Segment S(instrIdx.getRegSlot(),
1458 LiveRange::Segment S(instrIdx.getRegSlot(), lastUseIdx, VNI);