Lines Matching refs:SU
46 getNumDecoderSlots(SUnit *SU) const { in getNumDecoderSlots()
47 const MCSchedClassDesc *SC = getSchedClass(SU); in getNumDecoderSlots()
61 unsigned SystemZHazardRecognizer::getCurrCycleIdx(SUnit *SU) const { in getCurrCycleIdx()
66 if (SU != nullptr && !fitsIntoCurrentGroup(SU)) { in getCurrCycleIdx()
77 getHazardType(SUnit *SU, int Stalls) { in getHazardType() argument
78 return (fitsIntoCurrentGroup(SU) ? NoHazard : Hazard); in getHazardType()
92 SystemZHazardRecognizer::fitsIntoCurrentGroup(SUnit *SU) const { in fitsIntoCurrentGroup()
93 const MCSchedClassDesc *SC = getSchedClass(SU); in fitsIntoCurrentGroup()
105 if (CurrGroupSize == 2 && has4RegOps(SU->getInstr())) in fitsIntoCurrentGroup()
111 assert ((getNumDecoderSlots(SU) <= 1) && (CurrGroupSize < 3) && in fitsIntoCurrentGroup()
167 void SystemZHazardRecognizer::dumpSU(SUnit *SU, raw_ostream &OS) const { in dumpSU() argument
168 OS << "SU(" << SU->NodeNum << "):"; in dumpSU()
169 OS << TII->getName(SU->getInstr()->getOpcode()); in dumpSU()
171 const MCSchedClassDesc *SC = getSchedClass(SU); in dumpSU()
202 if (SU->isUnbuffered) in dumpSU()
204 if (has4RegOps(SU->getInstr())) in dumpSU()
271 EmitInstruction(SUnit *SU) { in EmitInstruction() argument
272 const MCSchedClassDesc *SC = getSchedClass(SU); in EmitInstruction()
273 LLVM_DEBUG(dbgs() << "++ HazardRecognizer emitting "; dumpSU(SU, dbgs()); in EmitInstruction()
279 if (!fitsIntoCurrentGroup(SU)) in EmitInstruction()
283 if (CurGroupDbg.length()) cgd << ", "; dumpSU(SU, cgd);); in EmitInstruction()
285 LastEmittedMI = SU->getInstr(); in EmitInstruction()
288 if (SU->isCall) { in EmitInstruction()
291 LastEmittedMI = SU->getInstr(); in EmitInstruction()
320 if (SU->isUnbuffered) { in EmitInstruction()
321 LastFPdOpCycleIdx = getCurrCycleIdx(SU); in EmitInstruction()
328 CurrGroupSize += getNumDecoderSlots(SU); in EmitInstruction()
329 CurrGroupHas4RegOps |= has4RegOps(SU->getInstr()); in EmitInstruction()
331 assert((CurrGroupSize <= GroupLim || CurrGroupSize == getNumDecoderSlots(SU)) in EmitInstruction()
340 int SystemZHazardRecognizer::groupingCost(SUnit *SU) const { in groupingCost()
341 const MCSchedClassDesc *SC = getSchedClass(SU); in groupingCost()
357 (CurrGroupSize + getNumDecoderSlots(SU)); in groupingCost()
364 if (CurrGroupSize == 2 && has4RegOps(SU->getInstr())) in groupingCost()
371 bool SystemZHazardRecognizer::isFPdOpPreferred_distance(SUnit *SU) const { in isFPdOpPreferred_distance()
372 assert (SU->isUnbuffered); in isFPdOpPreferred_distance()
380 unsigned SUCycleIdx = getCurrCycleIdx(SU); in isFPdOpPreferred_distance()
387 resourcesCost(SUnit *SU) { in resourcesCost() argument
390 const MCSchedClassDesc *SC = getSchedClass(SU); in resourcesCost()
396 if (SU->isUnbuffered) in resourcesCost()
397 Cost = (isFPdOpPreferred_distance(SU) ? INT_MIN : INT_MAX); in resourcesCost()
413 SUnit SU(MI, 0); in emitInstruction() local
416 SU.isCall = MI->isCall(); in emitInstruction()
424 SU.hasReservedResource = true; in emitInstruction()
427 SU.isUnbuffered = true; in emitInstruction()
435 EmitInstruction(&SU); in emitInstruction()