• Home
  • Raw
  • Download

Lines Matching refs:SU

78   SUnit *SU = &SUnits.back();  in newSUnit()  local
83 SU->SchedulingPref = Sched::None; in newSUnit()
85 SU->SchedulingPref = TLI.getSchedulingPreference(N); in newSUnit()
86 return SU; in newSUnit()
90 SUnit *SU = newSUnit(Old->getNode()); in Clone() local
91 SU->OrigNode = Old->OrigNode; in Clone()
92 SU->Latency = Old->Latency; in Clone()
93 SU->isVRegCycle = Old->isVRegCycle; in Clone()
94 SU->isCall = Old->isCall; in Clone()
95 SU->isCallOp = Old->isCallOp; in Clone()
96 SU->isTwoAddress = Old->isTwoAddress; in Clone()
97 SU->isCommutable = Old->isCommutable; in Clone()
98 SU->hasPhysRegDefs = Old->hasPhysRegDefs; in Clone()
99 SU->hasPhysRegClobbers = Old->hasPhysRegClobbers; in Clone()
100 SU->isScheduleHigh = Old->isScheduleHigh; in Clone()
101 SU->isScheduleLow = Old->isScheduleLow; in Clone()
102 SU->SchedulingPref = Old->SchedulingPref; in Clone()
104 return SU; in Clone()
406 SUnit *SU = CallSUnits.pop_back_val(); in BuildSchedUnits() local
407 for (const SDNode *SUNode = SU->getNode(); SUNode; in BuildSchedUnits()
427 SUnit *SU = &SUnits[su]; in AddSchedEdges() local
428 SDNode *MainNode = SU->getNode(); in AddSchedEdges()
435 SU->isTwoAddress = true; in AddSchedEdges()
440 SU->isCommutable = true; in AddSchedEdges()
444 for (SDNode *N = SU->getNode(); N; N = N->getGluedNode()) { in AddSchedEdges()
447 SU->hasPhysRegClobbers = true; in AddSchedEdges()
452 SU->hasPhysRegDefs = true; in AddSchedEdges()
460 if (OpSU == SU) continue; // In the same group. in AddSchedEdges()
491 ST.adjustSchedDependency(OpSU, SU, Dep); in AddSchedEdges()
494 if (!SU->addPred(Dep) && !Dep.isCtrl() && OpSU->NumRegDefsLeft > 1) { in AddSchedEdges()
558 ScheduleDAGSDNodes::RegDefIter::RegDefIter(const SUnit *SU, in RegDefIter() argument
560 : SchedDAG(SD), Node(SU->getNode()), DefIdx(0), NodeNumDefs(0) { in RegDefIter()
583 void ScheduleDAGSDNodes::InitNumRegDefsLeft(SUnit *SU) { in InitNumRegDefsLeft() argument
584 assert(SU->NumRegDefsLeft == 0 && "expect a new node"); in InitNumRegDefsLeft()
585 for (RegDefIter I(SU, this); I.IsValid(); I.Advance()) { in InitNumRegDefsLeft()
586 assert(SU->NumRegDefsLeft < USHRT_MAX && "overflow is ok but unexpected"); in InitNumRegDefsLeft()
587 ++SU->NumRegDefsLeft; in InitNumRegDefsLeft()
591 void ScheduleDAGSDNodes::computeLatency(SUnit *SU) { in computeLatency() argument
592 SDNode *N = SU->getNode(); in computeLatency()
598 SU->Latency = 0; in computeLatency()
604 SU->Latency = 1; in computeLatency()
611 SU->Latency = HighLatencyCycles; in computeLatency()
613 SU->Latency = 1; in computeLatency()
619 SU->Latency = 0; in computeLatency()
620 for (SDNode *N = SU->getNode(); N; N = N->getGluedNode()) in computeLatency()
622 SU->Latency += TII->getInstrLatency(InstrItins, N); in computeLatency()
652 void ScheduleDAGSDNodes::dumpNode(const SUnit *SU) const { in dumpNode()
654 if (!SU->getNode()) { in dumpNode()
659 SU->getNode()->dump(DAG); in dumpNode()
662 for (SDNode *N = SU->getNode()->getGluedNode(); N; N = N->getGluedNode()) in dumpNode()
676 if (SUnit *SU = Sequence[i]) in dumpSchedule() local
677 SU->dump(this); in dumpSchedule()
758 EmitPhysRegCopy(SUnit *SU, DenseMap<SUnit*, unsigned> &VRBaseMap, in EmitPhysRegCopy() argument
760 for (SUnit::const_pred_iterator I = SU->Preds.begin(), E = SU->Preds.end(); in EmitPhysRegCopy()
769 for (SUnit::const_succ_iterator II = SU->Succs.begin(), in EmitPhysRegCopy()
770 EE = SU->Succs.end(); II != EE; ++II) { in EmitPhysRegCopy()
782 unsigned VRBase = MRI.createVirtualRegister(SU->CopyDstRC); in EmitPhysRegCopy()
783 bool isNew = VRBaseMap.insert(std::make_pair(SU, VRBase)).second; in EmitPhysRegCopy()
818 SUnit *SU = Sequence[i]; in EmitSchedule() local
819 if (!SU) { in EmitSchedule()
827 if (!SU->getNode()) { in EmitSchedule()
829 EmitPhysRegCopy(SU, CopyVRBaseMap, InsertPos); in EmitSchedule()
834 for (SDNode *N = SU->getNode()->getGluedNode(); N; N = N->getGluedNode()) in EmitSchedule()
838 Emitter.EmitNode(GluedNodes.back(), SU->OrigNode != SU, SU->isCloned, in EmitSchedule()
845 Emitter.EmitNode(SU->getNode(), SU->OrigNode != SU, SU->isCloned, in EmitSchedule()
849 ProcessSourceNode(SU->getNode(), DAG, Emitter, VRBaseMap, Orders, in EmitSchedule()