Lines Matching refs:ParentVNI
373 const VNInfo *ParentVNI,
375 assert(ParentVNI && "Mapping NULL value");
377 assert(Edit->getParent().getVNInfoAt(Idx) == ParentVNI && "Bad Parent VNI");
385 Values.insert(std::make_pair(std::make_pair(RegIdx, ParentVNI->id),
388 // This was the first time (RegIdx, ParentVNI) was mapped.
408 void SplitEditor::forceRecompute(unsigned RegIdx, const VNInfo *ParentVNI) {
409 assert(ParentVNI && "Mapping NULL value");
410 ValueForcePair &VFP = Values[std::make_pair(RegIdx, ParentVNI->id)];
413 // ParentVNI was either unmapped or already complex mapped. Either way, just
429 VNInfo *ParentVNI,
442 LiveRangeEdit::Remat RM(ParentVNI);
456 return defValue(RegIdx, ParentVNI, Def);
482 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx);
483 if (!ParentVNI) {
487 DEBUG(dbgs() << ": valno " << ParentVNI->id << '\n');
491 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(), MI);
499 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx);
500 if (!ParentVNI) {
504 DEBUG(dbgs() << ": valno " << ParentVNI->id << '\n');
508 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(),
518 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Last);
519 if (!ParentVNI) {
523 DEBUG(dbgs() << ": valno " << ParentVNI->id);
524 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Last, MBB,
549 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Boundary);
550 if (!ParentVNI) {
554 DEBUG(dbgs() << ": valno " << ParentVNI->id << '\n');
562 if (SpillMode && !SlotIndex::isSameInstr(ParentVNI->def, Idx) &&
564 forceRecompute(0, ParentVNI);
565 defFromParent(0, ParentVNI, Idx, *MI->getParent(), MI);
569 VNInfo *VNI = defFromParent(0, ParentVNI, Boundary, *MI->getParent(),
580 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx);
581 if (!ParentVNI) {
585 DEBUG(dbgs() << ": valno " << ParentVNI->id << '\n');
589 VNInfo *VNI = defFromParent(0, ParentVNI, Idx, *MI->getParent(), MI);
598 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Start);
599 if (!ParentVNI) {
604 VNInfo *VNI = defFromParent(0, ParentVNI, Start, MBB,
613 const VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Start);
614 assert(ParentVNI == Edit->getParent().getVNInfoBefore(End) &&
620 if (ParentVNI)
621 forceRecompute(0, ParentVNI);
734 // Track the nearest common dominator for all back-copies for each ParentVNI,
735 // indexed by ParentVNI->id.
746 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
747 assert(ParentVNI && "Parent not live at complement def");
751 if (Edit->didRematerialize(ParentVNI))
755 DomPair &Dom = NearestDom[ParentVNI->id];
758 // instruction in the complement range. All other copies of ParentVNI
760 if (VNI->def == ParentVNI->def) {
767 if (Values.lookup(std::make_pair(0, ParentVNI->id)).getPointer()) {
773 // First time we see ParentVNI. VNI dominates itself.
792 << " for parent " << ParentVNI->id << '@' << ParentVNI->def
803 VNInfo *ParentVNI = Parent->getValNumInfo(i);
804 MachineBasicBlock *DefMBB = LIS.getMBBFromIndex(ParentVNI->def);
809 defFromParent(0, ParentVNI, Last, *Dom.first,
821 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
822 const DomPair &Dom = NearestDom[ParentVNI->id];
826 forceRecompute(0, ParentVNI);
840 VNInfo *ParentVNI = ParentI->valno;
860 // The interval [Start;End) is continuously mapped to RegIdx, ParentVNI.
865 ValueForcePair VFP = Values.lookup(std::make_pair(RegIdx, ParentVNI->id));
909 if (BlockStart == ParentVNI->def) {
911 assert(ParentVNI->isPHIDef() && "Non-phi defined at block start?");
1052 const VNInfo *ParentVNI = *I;
1053 if (ParentVNI->isUnused())
1055 unsigned RegIdx = RegAssign.lookup(ParentVNI->def);
1056 defValue(RegIdx, ParentVNI, ParentVNI->def);
1060 if (Edit->didRematerialize(ParentVNI))
1062 forceRecompute(i, ParentVNI);