Lines Matching refs:HII

114     const HexagonInstrInfo *HII;  member in __anond63168020111::HexagonPacketizer
137 HII = MF.getSubtarget<HexagonSubtarget>().getInstrInfo(); in INITIALIZE_PASS_DEPENDENCY()
206 HII = HST.getInstrInfo(); in runOnMachineFunction()
213 HII->genAllInsnTimingClasses(MF); in runOnMachineFunction()
251 while (RB != End && HII->isSchedulingBoundary(*RB, &MB, MF)) in runOnMachineFunction()
256 while (RE != End && !HII->isSchedulingBoundary(*RE, &MB, MF)) in runOnMachineFunction()
287 auto *ExtMI = MF.CreateMachineInstr(HII->get(Hexagon::A4_ext), DebugLoc()); in tryAllocateResourcesForConstExt()
301 if (HII->isDeallocRet(MI)) in isCallDependent()
357 if (HII->isHVXVec(MI) && MI.mayStore()) in isNewifiable()
359 return HII->isPredicated(MI) && HII->getDotNewPredOp(MI, nullptr) > 0; in isNewifiable()
362 return HII->mayBeNewStore(MI); in isNewifiable()
372 int CurOpcode = HII->getDotCurOp(MI); in promoteToDotCur()
373 MI.setDesc(HII->get(CurOpcode)); in promoteToDotCur()
381 if (HII->isDotCurInst(*BI)) { in cleanUpDotCur()
394 MI->setDesc(HII->get(HII->getNonDotCurOp(*MI))); in cleanUpDotCur()
402 if (!HII->isHVXVec(MI)) in canPromoteToDotCur()
404 if (!HII->isHVXVec(*MII)) in canPromoteToDotCur()
408 if (HII->isDotCurInst(MI) && !HII->mayBeCurLoad(MI)) in canPromoteToDotCur()
411 if (!HII->mayBeCurLoad(MI)) in canPromoteToDotCur()
456 NewOpcode = HII->getDotNewPredOp(MI, MBPI); in promoteToDotNew()
458 NewOpcode = HII->getDotNewOp(MI); in promoteToDotNew()
459 MI.setDesc(HII->get(NewOpcode)); in promoteToDotNew()
464 int NewOpcode = HII->getDotOldOp(MI); in demoteToDotOld()
465 MI.setDesc(HII->get(NewOpcode)); in demoteToDotOld()
483 if (HII->isValidOffset(Opc, NewOff, HRI)) { in useCallersSP()
514 if (!HII->getBaseAndOffsetPosition(MI, BPI, OPI)) in updateOffset()
517 if (!HII->getBaseAndOffsetPosition(MJ, BPJ, OPJ)) in updateOffset()
530 if (!HII->getIncrementValue(MJ, Incr)) in updateOffset()
534 if (!HII->isValidOffset(MI.getOpcode(), Offset+Incr, HRI)) in updateOffset()
546 if (!HII->getBaseAndOffsetPosition(MI, BP, OP)) in undoChangedOffset()
560 const HexagonInstrInfo *HII) { in getPredicateSense() argument
561 if (!HII->isPredicated(MI)) in getPredicateSense()
563 if (HII->isPredicatedTrue(MI)) in getPredicateSense()
569 const HexagonInstrInfo *HII) { in getPostIncrementOperand() argument
570 assert(HII->isPostIncrement(MI) && "Not a post increment operation."); in getPostIncrementOperand()
646 if (!HII->mayBeNewStore(MI)) in canPromoteToNewValueStore()
657 const TargetRegisterClass *PacketRC = HII->getRegClass(MCID, 0, HRI, MF); in canPromoteToNewValueStore()
672 if (HII->isPostIncrement(MI) && in canPromoteToNewValueStore()
673 getPostIncrementOperand(MI, HII).getReg() == DepReg) { in canPromoteToNewValueStore()
677 if (HII->isPostIncrement(PacketMI) && PacketMI.mayLoad() && in canPromoteToNewValueStore()
678 getPostIncrementOperand(PacketMI, HII).getReg() == DepReg) { in canPromoteToNewValueStore()
692 if (HII->isPredicated(PacketMI)) { in canPromoteToNewValueStore()
693 if (!HII->isPredicated(MI)) in canPromoteToNewValueStore()
735 HII->isDotNewInst(PacketMI) != HII->isDotNewInst(MI) || in canPromoteToNewValueStore()
736 getPredicateSense(MI, HII) != getPredicateSense(PacketMI, HII)) in canPromoteToNewValueStore()
775 if (!HII->isPostIncrement(MI)) { in canPromoteToNewValueStore()
815 if (!HII->mayBeNewStore(MI)) in canPromoteToNewValue()
846 if (HII->isDotNewInst(MI) && !HII->mayBeNewStore(MI)) in canPromoteToDotNew()
870 const TargetRegisterClass *VecRC = HII->getRegClass(MCID, 0, HRI, MF); in canPromoteToDotNew()
876 return HII->predCanBeUsedAsDotNew(PI, DepReg); in canPromoteToDotNew()
878 if (RC != &Hexagon::PredRegsRegClass && !HII->mayBeNewStore(MI)) in canPromoteToDotNew()
883 int NewOpcode = HII->getDotNewOp(MI); in canPromoteToDotNew()
884 const MCInstrDesc &D = HII->get(NewOpcode); in canPromoteToDotNew()
917 if (!HII->isPredicated(*I)) in restrictingDepExistInPacket()
962 if (getPredicateSense(MI1, HII) == PK_Unknown || in arePredicatesComplements()
963 getPredicateSense(MI2, HII) == PK_Unknown) in arePredicatesComplements()
1015 unsigned PReg1 = getPredicatedRegister(MI1, HII); in arePredicatesComplements()
1016 unsigned PReg2 = getPredicatedRegister(MI2, HII); in arePredicatesComplements()
1020 getPredicateSense(MI1, HII) != getPredicateSense(MI2, HII) && in arePredicatesComplements()
1021 HII->isDotNewInst(MI1) == HII->isDotNewInst(MI2); in arePredicatesComplements()
1077 if (HII->isSolo(MI)) in isSoloInstruction()
1094 const HexagonInstrInfo &HII) { in cannotCoexistAsymm() argument
1097 HII.isHVXMemWithAIndirect(MI, MJ)) in cannotCoexistAsymm()
1109 if (HII.isNewValueStore(MI) && MJ.mayStore()) in cannotCoexistAsymm()
1126 unsigned TJ = HII.getType(MJ); in cannotCoexistAsymm()
1145 return cannotCoexistAsymm(MI, MJ, *HII) || cannotCoexistAsymm(MJ, MI, *HII); in cannotCoexist()
1199 if (HII->isPredicated(I) || HII->isPredicated(J)) in hasDeadDependence()
1223 if ((HII->isSaveCalleeSavedRegsCall(I) && in hasControlDependence()
1225 (HII->isSaveCalleeSavedRegsCall(J) && in hasControlDependence()
1237 if (MI.isCall() || HII->isDeallocRet(MI) || HII->isNewValueJump(MI)) in hasControlDependence()
1239 if (HII->isPredicated(MI) && HII->isPredicatedNew(MI) && HII->isJumpR(MI)) in hasControlDependence()
1244 if (HII->isLoopN(I) && isBadForLoopN(J)) in hasControlDependence()
1246 if (HII->isLoopN(J) && isBadForLoopN(I)) in hasControlDependence()
1251 return HII->isDeallocRet(I) && in hasControlDependence()
1271 assert((J.isCall() || HII->isTailCall(J)) && "Regmask on a non-call"); in hasRegMaskDependence()
1293 if (HII->isNewValueInst(J) || HII->isMemOp(J) || HII->isMemOp(I)) in hasDualStoreDependence()
1298 bool MopStI = HII->isMemOp(I) || StoreI; in hasDualStoreDependence()
1299 bool MopStJ = HII->isMemOp(J) || StoreJ; in hasDualStoreDependence()
1304 return (StoreJ && HII->isDeallocRet(I)) || (StoreI && HII->isDeallocRet(J)); in hasDualStoreDependence()
1349 if (NextMII != I.getParent()->end() && HII->isNewValueJump(*NextMII)) { in isLegalToPacketizeTogether()
1374 HII->isLoopN(*PI)) { in isLegalToPacketizeTogether()
1425 if (I.isCall() || HII->isJumpR(I) || I.isReturn() || HII->isTailCall(I)) { in isLegalToPacketizeTogether()
1439 if (DepType == SDep::Data && HII->isDotCurInst(J)) { in isLegalToPacketizeTogether()
1440 if (HII->isHVXVec(I)) in isLegalToPacketizeTogether()
1454 if (HII->isNewValueJump(I)) in isLegalToPacketizeTogether()
1460 if (HII->isPredicated(I) && HII->isPredicated(J) && in isLegalToPacketizeTogether()
1517 bool NVStoreJ = HII->isNewValueStore(J); in isLegalToPacketizeTogether()
1518 bool NVStoreI = HII->isNewValueStore(I); in isLegalToPacketizeTogether()
1519 bool IsVecJ = HII->isHVXVec(J); in isLegalToPacketizeTogether()
1520 bool IsVecI = HII->isHVXVec(I); in isLegalToPacketizeTogether()
1529 (!HII->isMemOp(J) && !HII->isMemOp(I)) && (!IsVecJ && !IsVecI)) in isLegalToPacketizeTogether()
1676 if (HII->isMemOp(*MJ)) in foundLSInPacket()
1680 if (MJ->mayStore() && !HII->isNewValueStore(*MJ)) in foundLSInPacket()
1704 bool ExtMI = HII->isExtended(MI) || HII->isConstExtended(MI); in addToPacket()
1717 bool ExtNvjMI = HII->isExtended(NvjMI) || HII->isConstExtended(NvjMI); in addToPacket()
1778 for (auto &I : make_range(HII->expandVGatherPseudo(*MI), NextMI)) in endPacket()
1789 HII->setBundleNoShuf(BundleMII); in endPacket()
1853 HII->isNewValueJump(I) || HII->isToBeScheduledASAP(*J, I)) in producesStall()