Lines Matching refs:HII

115     const HexagonInstrInfo *HII = nullptr;  member in __anon3f48dee90111::HexagonPacketizer
138 HII = MF.getSubtarget<HexagonSubtarget>().getInstrInfo(); in INITIALIZE_PASS_DEPENDENCY()
207 HII = HST.getInstrInfo(); in runOnMachineFunction()
214 HII->genAllInsnTimingClasses(MF); in runOnMachineFunction()
247 HII->translateInstrsForDup(MF, true); in runOnMachineFunction()
256 while (RB != End && HII->isSchedulingBoundary(*RB, &MB, MF)) in runOnMachineFunction()
261 while (RE != End && !HII->isSchedulingBoundary(*RE, &MB, MF)) in runOnMachineFunction()
276 HII->translateInstrsForDup(MF, false); in runOnMachineFunction()
296 auto *ExtMI = MF.CreateMachineInstr(HII->get(Hexagon::A4_ext), DebugLoc()); in tryAllocateResourcesForConstExt()
310 if (HII->isDeallocRet(MI)) in isCallDependent()
366 if (HII->isHVXVec(MI) && MI.mayStore()) in isNewifiable()
368 return HII->isPredicated(MI) && HII->getDotNewPredOp(MI, nullptr) > 0; in isNewifiable()
371 return HII->mayBeNewStore(MI); in isNewifiable()
381 int CurOpcode = HII->getDotCurOp(MI); in promoteToDotCur()
382 MI.setDesc(HII->get(CurOpcode)); in promoteToDotCur()
390 if (HII->isDotCurInst(*BI)) { in cleanUpDotCur()
403 MI->setDesc(HII->get(HII->getNonDotCurOp(*MI))); in cleanUpDotCur()
411 if (!HII->isHVXVec(MI)) in canPromoteToDotCur()
413 if (!HII->isHVXVec(*MII)) in canPromoteToDotCur()
417 if (HII->isDotCurInst(MI) && !HII->mayBeCurLoad(MI)) in canPromoteToDotCur()
420 if (!HII->mayBeCurLoad(MI)) in canPromoteToDotCur()
465 NewOpcode = HII->getDotNewPredOp(MI, MBPI); in promoteToDotNew()
467 NewOpcode = HII->getDotNewOp(MI); in promoteToDotNew()
468 MI.setDesc(HII->get(NewOpcode)); in promoteToDotNew()
473 int NewOpcode = HII->getDotOldOp(MI); in demoteToDotOld()
474 MI.setDesc(HII->get(NewOpcode)); in demoteToDotOld()
492 if (HII->isValidOffset(Opc, NewOff, HRI)) { in useCallersSP()
523 if (!HII->getBaseAndOffsetPosition(MI, BPI, OPI)) in updateOffset()
526 if (!HII->getBaseAndOffsetPosition(MJ, BPJ, OPJ)) in updateOffset()
539 if (!HII->getIncrementValue(MJ, Incr)) in updateOffset()
543 if (!HII->isValidOffset(MI.getOpcode(), Offset+Incr, HRI)) in updateOffset()
555 if (!HII->getBaseAndOffsetPosition(MI, BP, OP)) in undoChangedOffset()
569 const HexagonInstrInfo *HII) { in getPredicateSense() argument
570 if (!HII->isPredicated(MI)) in getPredicateSense()
572 if (HII->isPredicatedTrue(MI)) in getPredicateSense()
578 const HexagonInstrInfo *HII) { in getPostIncrementOperand() argument
579 assert(HII->isPostIncrement(MI) && "Not a post increment operation."); in getPostIncrementOperand()
655 if (!HII->mayBeNewStore(MI)) in canPromoteToNewValueStore()
666 const TargetRegisterClass *PacketRC = HII->getRegClass(MCID, 0, HRI, MF); in canPromoteToNewValueStore()
681 if (HII->isPostIncrement(MI) && in canPromoteToNewValueStore()
682 getPostIncrementOperand(MI, HII).getReg() == DepReg) { in canPromoteToNewValueStore()
686 if (HII->isPostIncrement(PacketMI) && PacketMI.mayLoad() && in canPromoteToNewValueStore()
687 getPostIncrementOperand(PacketMI, HII).getReg() == DepReg) { in canPromoteToNewValueStore()
701 if (HII->isPredicated(PacketMI)) { in canPromoteToNewValueStore()
702 if (!HII->isPredicated(MI)) in canPromoteToNewValueStore()
744 HII->isDotNewInst(PacketMI) != HII->isDotNewInst(MI) || in canPromoteToNewValueStore()
745 getPredicateSense(MI, HII) != getPredicateSense(PacketMI, HII)) in canPromoteToNewValueStore()
784 if (!HII->isPostIncrement(MI)) { in canPromoteToNewValueStore()
824 if (!HII->mayBeNewStore(MI)) in canPromoteToNewValue()
855 if (HII->isDotNewInst(MI) && !HII->mayBeNewStore(MI)) in canPromoteToDotNew()
879 const TargetRegisterClass *VecRC = HII->getRegClass(MCID, 0, HRI, MF); in canPromoteToDotNew()
885 return HII->predCanBeUsedAsDotNew(PI, DepReg); in canPromoteToDotNew()
887 if (RC != &Hexagon::PredRegsRegClass && !HII->mayBeNewStore(MI)) in canPromoteToDotNew()
892 int NewOpcode = HII->getDotNewOp(MI); in canPromoteToDotNew()
893 const MCInstrDesc &D = HII->get(NewOpcode); in canPromoteToDotNew()
926 if (!HII->isPredicated(*I)) in restrictingDepExistInPacket()
971 if (getPredicateSense(MI1, HII) == PK_Unknown || in arePredicatesComplements()
972 getPredicateSense(MI2, HII) == PK_Unknown) in arePredicatesComplements()
1024 unsigned PReg1 = getPredicatedRegister(MI1, HII); in arePredicatesComplements()
1025 unsigned PReg2 = getPredicatedRegister(MI2, HII); in arePredicatesComplements()
1029 getPredicateSense(MI1, HII) != getPredicateSense(MI2, HII) && in arePredicatesComplements()
1030 HII->isDotNewInst(MI1) == HII->isDotNewInst(MI2); in arePredicatesComplements()
1085 if (HII->isSolo(MI)) in isSoloInstruction()
1102 const HexagonInstrInfo &HII) { in cannotCoexistAsymm() argument
1105 HII.isHVXMemWithAIndirect(MI, MJ)) in cannotCoexistAsymm()
1117 if (HII.isNewValueStore(MI) && MJ.mayStore()) in cannotCoexistAsymm()
1134 unsigned TJ = HII.getType(MJ); in cannotCoexistAsymm()
1153 return cannotCoexistAsymm(MI, MJ, *HII) || cannotCoexistAsymm(MJ, MI, *HII); in cannotCoexist()
1207 if (HII->isPredicated(I) || HII->isPredicated(J)) in hasDeadDependence()
1231 if ((HII->isSaveCalleeSavedRegsCall(I) && in hasControlDependence()
1233 (HII->isSaveCalleeSavedRegsCall(J) && in hasControlDependence()
1245 if (MI.isCall() || HII->isDeallocRet(MI) || HII->isNewValueJump(MI)) in hasControlDependence()
1247 if (HII->isPredicated(MI) && HII->isPredicatedNew(MI) && HII->isJumpR(MI)) in hasControlDependence()
1252 if (HII->isLoopN(I) && isBadForLoopN(J)) in hasControlDependence()
1254 if (HII->isLoopN(J) && isBadForLoopN(I)) in hasControlDependence()
1259 return HII->isDeallocRet(I) && in hasControlDependence()
1279 assert((J.isCall() || HII->isTailCall(J)) && "Regmask on a non-call"); in hasRegMaskDependence()
1301 if (HII->isNewValueInst(J) || HII->isMemOp(J) || HII->isMemOp(I)) in hasDualStoreDependence()
1306 bool MopStI = HII->isMemOp(I) || StoreI; in hasDualStoreDependence()
1307 bool MopStJ = HII->isMemOp(J) || StoreJ; in hasDualStoreDependence()
1312 return (StoreJ && HII->isDeallocRet(I)) || (StoreI && HII->isDeallocRet(J)); in hasDualStoreDependence()
1357 if (NextMII != I.getParent()->end() && HII->isNewValueJump(*NextMII)) { in isLegalToPacketizeTogether()
1382 HII->isLoopN(*PI)) { in isLegalToPacketizeTogether()
1433 if (I.isCall() || HII->isJumpR(I) || I.isReturn() || HII->isTailCall(I)) { in isLegalToPacketizeTogether()
1447 if (DepType == SDep::Data && HII->isDotCurInst(J)) { in isLegalToPacketizeTogether()
1448 if (HII->isHVXVec(I)) in isLegalToPacketizeTogether()
1462 if (HII->isNewValueJump(I)) in isLegalToPacketizeTogether()
1468 if (HII->isPredicated(I) && HII->isPredicated(J) && in isLegalToPacketizeTogether()
1525 bool NVStoreJ = HII->isNewValueStore(J); in isLegalToPacketizeTogether()
1526 bool NVStoreI = HII->isNewValueStore(I); in isLegalToPacketizeTogether()
1527 bool IsVecJ = HII->isHVXVec(J); in isLegalToPacketizeTogether()
1528 bool IsVecI = HII->isHVXVec(I); in isLegalToPacketizeTogether()
1537 (!HII->isMemOp(J) && !HII->isMemOp(I)) && (!IsVecJ && !IsVecI)) in isLegalToPacketizeTogether()
1684 if (HII->isMemOp(*MJ)) in foundLSInPacket()
1688 if (MJ->mayStore() && !HII->isNewValueStore(*MJ)) in foundLSInPacket()
1712 bool ExtMI = HII->isExtended(MI) || HII->isConstExtended(MI); in addToPacket()
1725 bool ExtNvjMI = HII->isExtended(NvjMI) || HII->isConstExtended(NvjMI); in addToPacket()
1796 for (auto &I : make_range(HII->expandVGatherPseudo(*MI), NextMI)) in endPacket()
1807 HII->setBundleNoShuf(BundleMII); in endPacket()
1847 PacketHasSLOT0OnlyInsn |= HII->isPureSlot0(*MJ); in shouldAddToPacket()
1849 int Opcode = HII->getDuplexOpcode(MI, false); in shouldAddToPacket()
1853 if (HII->isDuplexPair(MI, *MJ) && !PacketHasSLOT0OnlyInsn) { in shouldAddToPacket()
1861 MIRef.setDesc(HII->get(Opcode)); in shouldAddToPacket()
1874 noSlot1Store |= HII->isRestrictNoSlot1Store(*J); in isPureSlot0InsnWithNoSlot1Store()
1875 isSlot0Only |= HII->isPureSlot0(*J); in isPureSlot0InsnWithNoSlot1Store()
1930 HII->isNewValueJump(I) || HII->isToBeScheduledASAP(*J, I)) in producesStall()