Lines Matching full:inta
279 /// other than BValNo val# that can reach uses of AValno val# of IntA.
280 bool hasOtherReachingDefs(LiveInterval &IntA, LiveInterval &IntB,
620 LiveInterval &IntA = in adjustCopiesBackFrom() local
626 // We have a non-trivially-coalescable copy with IntA being the source and in adjustCopiesBackFrom()
628 // source value number (in IntA) is defined by a copy from B, see if we can in adjustCopiesBackFrom()
653 LiveInterval::iterator AS = IntA.FindSegmentContaining(CopyUseIdx); in adjustCopiesBackFrom()
655 if (AS == IntA.end()) return false; in adjustCopiesBackFrom()
733 CopyMI->substituteRegister(IntA.reg(), IntB.reg(), 0, *TRI); in adjustCopiesBackFrom()
738 for (LiveInterval::SubRange &S : IntA.subranges()) { in adjustCopiesBackFrom()
747 shrinkToUses(&IntA); in adjustCopiesBackFrom()
753 bool RegisterCoalescer::hasOtherReachingDefs(LiveInterval &IntA, in hasOtherReachingDefs() argument
759 if (LIS->hasPHIKill(IntA, AValNo)) in hasOtherReachingDefs()
762 for (LiveRange::Segment &ASeg : IntA.segments) { in hasOtherReachingDefs()
809 LiveInterval &IntA = in removeCopyByCommutingDef() local
814 // We found a non-trivially-coalescable copy with IntA being the source and in removeCopyByCommutingDef()
816 // source value number (in IntA) is defined by a commutable instruction and in removeCopyByCommutingDef()
841 VNInfo *AValNo = IntA.getVNInfoAt(CopyIdx.getRegSlot(true)); in removeCopyByCommutingDef()
852 int DefIdx = DefMI->findRegisterDefOperandIdx(IntA.reg(), /*TRI=*/nullptr); in removeCopyByCommutingDef()
878 if (hasOtherReachingDefs(IntA, IntB, AValNo, BValNo)) in removeCopyByCommutingDef()
881 // If some of the uses of IntA.reg is already coalesced away, return false. in removeCopyByCommutingDef()
883 for (MachineOperand &MO : MRI->use_nodbg_operands(IntA.reg())) { in removeCopyByCommutingDef()
887 LiveInterval::iterator US = IntA.FindSegmentContaining(UseIdx); in removeCopyByCommutingDef()
888 if (US == IntA.end() || US->valno != AValNo) in removeCopyByCommutingDef()
905 if (IntA.reg().isVirtual() && IntB.reg().isVirtual() && in removeCopyByCommutingDef()
906 !MRI->constrainRegClass(IntB.reg(), MRI->getRegClass(IntA.reg()))) in removeCopyByCommutingDef()
924 // Update uses of IntA of the specific Val# with IntB. in removeCopyByCommutingDef()
926 llvm::make_early_inc_range(MRI->use_operands(IntA.reg()))) { in removeCopyByCommutingDef()
937 LiveInterval::iterator US = IntA.FindSegmentContaining(UseIdx); in removeCopyByCommutingDef()
938 assert(US != IntA.end() && "Use must be live"); in removeCopyByCommutingDef()
976 // Extend BValNo by merging in IntA live segments of AValNo. Val# definition in removeCopyByCommutingDef()
980 if (IntA.hasSubRanges() || IntB.hasSubRanges()) { in removeCopyByCommutingDef()
981 if (!IntA.hasSubRanges()) { in removeCopyByCommutingDef()
982 LaneBitmask Mask = MRI->getMaxLaneMaskForVReg(IntA.reg()); in removeCopyByCommutingDef()
983 IntA.createSubRangeFrom(Allocator, Mask, IntA); in removeCopyByCommutingDef()
991 for (LiveInterval::SubRange &SA : IntA.subranges()) { in removeCopyByCommutingDef()
1017 // Go over all subranges of IntB that have not been covered by IntA, in removeCopyByCommutingDef()
1019 // IntA has undef lanes that are defined in IntB. in removeCopyByCommutingDef()
1030 auto P = addSegmentsWithValNo(IntB, BValNo, IntA, AValNo); in removeCopyByCommutingDef()
1034 LIS->removeVRegDefAt(IntA, AValNo->def); in removeCopyByCommutingDef()
1036 LLVM_DEBUG(dbgs() << "\t\ttrimmed: " << IntA << '\n'); in removeCopyByCommutingDef()
1103 LiveInterval &IntA = in removePartialRedundancy() local
1110 VNInfo *AValNo = IntA.getVNInfoAt(CopyIdx); in removePartialRedundancy()
1124 VNInfo *PVal = IntA.getVNInfoBefore(LIS->getMBBEndIdx(Pred)); in removePartialRedundancy()
1131 if (DefMI->getOperand(0).getReg() != IntA.reg() || in removePartialRedundancy()
1161 // reverse copy, CopyMI can be removed trivially if only IntA/IntB is updated. in removePartialRedundancy()
1163 // update IntA/IntB. in removePartialRedundancy()
1190 .addReg(IntA.reg()); in removePartialRedundancy()
1266 // Finally, update the live-range of IntA. in removePartialRedundancy()
1267 shrinkToUses(&IntA); in removePartialRedundancy()