Lines Matching refs:ParentVNI
346 const VNInfo *ParentVNI,
348 assert(ParentVNI && "Mapping NULL value");
350 assert(Edit->getParent().getVNInfoAt(Idx) == ParentVNI && "Bad Parent VNI");
358 Values.insert(std::make_pair(std::make_pair(RegIdx, ParentVNI->id),
361 // This was the first time (RegIdx, ParentVNI) was mapped.
381 void SplitEditor::forceRecompute(unsigned RegIdx, const VNInfo *ParentVNI) {
382 assert(ParentVNI && "Mapping NULL value");
383 ValueForcePair &VFP = Values[std::make_pair(RegIdx, ParentVNI->id)];
386 // ParentVNI was either unmapped or already complex mapped. Either way, just
402 VNInfo *ParentVNI,
415 LiveRangeEdit::Remat RM(ParentVNI);
429 VNInfo *VNI = defValue(RegIdx, ParentVNI, Def);
457 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx);
458 if (!ParentVNI) {
462 DEBUG(dbgs() << ": valno " << ParentVNI->id << '\n');
466 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(), MI);
474 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx);
475 if (!ParentVNI) {
479 DEBUG(dbgs() << ": valno " << ParentVNI->id << '\n');
483 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Idx, *MI->getParent(),
493 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Last);
494 if (!ParentVNI) {
498 DEBUG(dbgs() << ": valno " << ParentVNI->id);
499 VNInfo *VNI = defFromParent(OpenIdx, ParentVNI, Last, MBB,
524 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Boundary);
525 if (!ParentVNI) {
529 DEBUG(dbgs() << ": valno " << ParentVNI->id << '\n');
537 if (SpillMode && !SlotIndex::isSameInstr(ParentVNI->def, Idx) &&
539 forceRecompute(0, ParentVNI);
540 defFromParent(0, ParentVNI, Idx, *MI->getParent(), MI);
544 VNInfo *VNI = defFromParent(0, ParentVNI, Boundary, *MI->getParent(),
555 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Idx);
556 if (!ParentVNI) {
560 DEBUG(dbgs() << ": valno " << ParentVNI->id << '\n');
564 VNInfo *VNI = defFromParent(0, ParentVNI, Idx, *MI->getParent(), MI);
573 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Start);
574 if (!ParentVNI) {
579 VNInfo *VNI = defFromParent(0, ParentVNI, Start, MBB,
588 const VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(Start);
589 assert(ParentVNI == Edit->getParent().getVNInfoAt(End.getPrevSlot()) &&
595 if (ParentVNI)
596 forceRecompute(0, ParentVNI);
709 // Track the nearest common dominator for all back-copies for each ParentVNI,
710 // indexed by ParentVNI->id.
719 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
720 assert(ParentVNI && "Parent not live at complement def");
724 if (Edit->didRematerialize(ParentVNI))
728 DomPair &Dom = NearestDom[ParentVNI->id];
731 // instruction in the complement range. All other copies of ParentVNI
733 if (VNI->def == ParentVNI->def) {
740 if (Values.lookup(std::make_pair(0, ParentVNI->id)).getPointer()) {
746 // First time we see ParentVNI. VNI dominates itself.
765 << " for parent " << ParentVNI->id << '@' << ParentVNI->def
776 VNInfo *ParentVNI = Parent->getValNumInfo(i);
777 MachineBasicBlock *DefMBB = LIS.getMBBFromIndex(ParentVNI->def);
782 defFromParent(0, ParentVNI, Last, *Dom.first,
792 VNInfo *ParentVNI = Edit->getParent().getVNInfoAt(VNI->def);
793 const DomPair &Dom = NearestDom[ParentVNI->id];
797 forceRecompute(0, ParentVNI);
811 VNInfo *ParentVNI = ParentI->valno;
831 // The interval [Start;End) is continuously mapped to RegIdx, ParentVNI.
836 ValueForcePair VFP = Values.lookup(std::make_pair(RegIdx, ParentVNI->id));
880 if (BlockStart == ParentVNI->def) {
882 assert(ParentVNI->isPHIDef() && "Non-phi defined at block start?");
1027 const VNInfo *ParentVNI = *I;
1028 if (ParentVNI->isUnused())
1030 unsigned RegIdx = RegAssign.lookup(ParentVNI->def);
1031 VNInfo *VNI = defValue(RegIdx, ParentVNI, ParentVNI->def);
1032 VNI->setIsPHIDef(ParentVNI->isPHIDef());
1033 VNI->setCopy(ParentVNI->getCopy());
1037 if (Edit->didRematerialize(ParentVNI))
1039 forceRecompute(i, ParentVNI);