Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:SUnit

49     SmallVector<SUnit *, 16> Queue;
53 void push(SUnit *U) {
57 SUnit *pop() {
59 SUnit *V = Queue.back();
77 std::vector<SUnit*> LiveRegDefs;
86 /// AddPred - adds a predecessor edge to SUnit SU.
88 void AddPred(SUnit *SU, const SDep &D) {
92 /// RemovePred - removes a predecessor edge from SUnit SU.
94 void RemovePred(SUnit *SU, const SDep &D) {
99 void ReleasePred(SUnit *SU, SDep *PredEdge);
100 void ReleasePredecessors(SUnit *SU, unsigned CurCycle);
101 void ScheduleNodeBottomUp(SUnit*, unsigned);
102 SUnit *CopyAndMoveSuccessors(SUnit*);
103 void InsertCopiesAndMoveSuccs(SUnit*, unsigned,
106 SmallVectorImpl<SUnit*>&);
107 bool DelayForLiveRegsBottomUp(SUnit*, SmallVectorImpl<unsigned>&);
140 void ScheduleDAGFast::ReleasePred(SUnit *SU, SDep *PredEdge) {
141 SUnit *PredSU = PredEdge->getSUnit();
161 void ScheduleDAGFast::ReleasePredecessors(SUnit *SU, unsigned CurCycle) {
163 for (SUnit::pred_iterator I = SU->Preds.begin(), E = SU->Preds.end();
183 void ScheduleDAGFast::ScheduleNodeBottomUp(SUnit *SU, unsigned CurCycle) {
194 for (SUnit::succ_iterator I = SU->Succs.begin(), E = SU->Succs.end();
213 SUnit *ScheduleDAGFast::CopyAndMoveSuccessors(SUnit *SU) {
221 SUnit *NewSU;
254 SUnit *NewSU = newSUnit(N);
272 SUnit *LoadSU;
286 for (SUnit::pred_iterator I = SU->Preds.begin(), E = SU->Preds.end();
296 for (SUnit::succ_iterator I = SU->Succs.begin(), E = SU->Succs.end();
323 SUnit *SuccDep = D.getSUnit();
331 SUnit *SuccDep = D.getSUnit();
357 // New SUnit has the exact same predecessors.
358 for (SUnit::pred_iterator I = SU->Preds.begin(), E = SU->Preds.end();
365 SmallVector<std::pair<SUnit *, SDep>, 4> DelDeps;
366 for (SUnit::succ_iterator I = SU->Succs.begin(), E = SU->Succs.end();
370 SUnit *SuccSU = I->getSUnit();
387 /// scheduled successors of the given SUnit to the last copy.
388 void ScheduleDAGFast::InsertCopiesAndMoveSuccs(SUnit *SU, unsigned Reg,
391 SmallVectorImpl<SUnit*> &Copies) {
392 SUnit *CopyFromSU = newSUnit(static_cast<SDNode *>(nullptr));
396 SUnit *CopyToSU = newSUnit(static_cast<SDNode *>(nullptr));
402 SmallVector<std::pair<SUnit *, SDep>, 4> DelDeps;
403 for (SUnit::succ_iterator I = SU->Succs.begin(), E = SU->Succs.end();
407 SUnit *SuccSU = I->getSUnit();
448 /// specified register def of the specified SUnit clobbers any "live" registers.
449 static bool CheckForLiveRegDef(SUnit *SU, unsigned Reg,
450 std::vector<SUnit*> &LiveRegDefs,
470 bool ScheduleDAGFast::DelayForLiveRegsBottomUp(SUnit *SU,
477 for (SUnit::pred_iterator I = SU->Preds.begin(), E = SU->Preds.end();
535 SUnit *RootSU = &SUnits[DAG->getRoot().getNode()->getNodeId()];
543 SmallVector<SUnit*, 4> NotReady;
544 DenseMap<SUnit*, SmallVector<unsigned, 4> > LRegsMap;
549 SUnit *CurSU = AvailableQueue.pop();
570 SUnit *TrySU = NotReady[0];
574 SUnit *LRDef = LiveRegDefs[Reg];
587 SUnit *NewDef = nullptr;
596 SmallVector<SUnit*, 2> Copies;