Lines Matching defs:IntB

132     /// HasOtherReachingDefs - Return true if there are definitions of IntB
134 bool HasOtherReachingDefs(LiveInterval &IntA, LiveInterval &IntB,
391 /// being the source and IntB being the dest, thus this defines a value number
392 /// in IntB. If the source value number (in IntA) is defined by a copy from B,
414 LiveInterval &IntB =
420 LiveInterval::iterator BLR = IntB.FindLiveRangeContaining(CopyIdx);
421 if (BLR == IntB.end()) return false;
436 // If AValNo is defined as a copy from IntB, we can potentially process this.
442 // Get the LiveRange in IntB that this value number starts with.
444 IntB.FindLiveRangeContaining(AValNo->def.getPrevSlot());
445 if (ValLR == IntB.end())
457 // IntB, we can merge them.
463 if (TargetRegisterInfo::isPhysicalRegister(IntB.reg)) {
464 for (const uint16_t *AS = TRI->getAliasSet(IntB.reg); *AS; ++AS)
476 IntB.print(dbgs(), TRI);
488 IntB.addRange(LiveRange(FillerStart, FillerEnd, BValNo));
490 // If the IntB live range is assigned to a physical register, and if that
492 if (TargetRegisterInfo::isPhysicalRegister(IntB.reg)) {
493 for (const uint16_t *SR = TRI->getSubRegisters(IntB.reg); *SR; ++SR) {
508 IntB.MergeValueNumberInto(BValNo, ValLR->valno);
514 IntB.print(dbgs(), TRI);
520 int UIdx = ValLREndInst->findRegisterUseOperandIdx(IntB.reg, true);
528 CopyMI->substituteRegister(IntA.reg, IntB.reg, CP.getSubIdx(),
537 /// HasOtherReachingDefs - Return true if there are definitions of IntB
540 LiveInterval &IntB,
547 std::upper_bound(IntB.ranges.begin(), IntB.ranges.end(), AI->start);
548 if (BI != IntB.ranges.begin())
550 for (; BI != IntB.ranges.end() && AI->end >= BI->start; ++BI) {
563 /// IntA being the source and IntB being the dest, thus this defines a value
564 /// number in IntB. If the source value number (in IntA) is defined by a
602 LiveInterval &IntB =
607 VNInfo *BValNo = IntB.getVNInfoAt(CopyIdx);
645 if (NewReg != IntB.reg || !NewDstMO.isKill())
648 // Make sure there are no other definitions of IntB that would reach the
650 if (HasOtherReachingDefs(IntA, IntB, AValNo, BValNo))
653 // Abort if the aliases of IntB.reg have values that are not simply the
655 if (TargetRegisterInfo::isPhysicalRegister(IntB.reg))
656 for (const uint16_t *AS = TRI->getAliasSet(IntB.reg); *AS; ++AS)
685 TargetRegisterInfo::isVirtualRegister(IntB.reg) &&
686 !MRI->constrainRegClass(IntB.reg, MRI->getRegClass(IntA.reg)))
706 // Update uses of IntA of the specific Val# with IntB.
732 if (UseMI->getOperand(0).getReg() != IntB.reg ||
739 VNInfo *DVNI = IntB.getVNInfoAt(DefIdx);
744 BValNo = IntB.MergeValueNumberInto(BValNo, DVNI);
755 IntB.addRange(LiveRange(AI->start, AI->end, ValNo));
757 DEBUG(dbgs() << "\t\textended: " << IntB << '\n');