Lines Matching defs:SUnit

65   EntrySU = SUnit();
66 ExitSU = SUnit();
106 bool SUnit::addPred(const SDep &D, bool Required) {
117 SUnit *PredSU = PredDep.getSUnit();
138 SUnit *N = D.getSUnit();
175 void SUnit::removePred(const SDep &D) {
183 SUnit *N = D.getSUnit();
217 void SUnit::setDepthDirty() {
219 SmallVector<SUnit*, 8> WorkList;
222 SUnit *SU = WorkList.pop_back_val();
225 SUnit *SuccSU = SuccDep.getSUnit();
232 void SUnit::setHeightDirty() {
234 SmallVector<SUnit*, 8> WorkList;
237 SUnit *SU = WorkList.pop_back_val();
240 SUnit *PredSU = PredDep.getSUnit();
247 void SUnit::setDepthToAtLeast(unsigned NewDepth) {
255 void SUnit::setHeightToAtLeast(unsigned NewHeight) {
264 void SUnit::ComputeDepth() {
265 SmallVector<SUnit*, 8> WorkList;
268 SUnit *Cur = WorkList.back();
273 SUnit *PredSU = PredDep.getSUnit();
295 void SUnit::ComputeHeight() {
296 SmallVector<SUnit*, 8> WorkList;
299 SUnit *Cur = WorkList.back();
304 SUnit *SuccSU = SuccDep.getSUnit();
325 void SUnit::biasCriticalPath() {
329 SUnit::pred_iterator BestI = Preds.begin();
331 for (SUnit::pred_iterator I = std::next(BestI), E = Preds.end(); I != E;
343 LLVM_DUMP_METHOD void SUnit::dumpAttributes() const {
356 LLVM_DUMP_METHOD void ScheduleDAG::dumpNodeName(const SUnit &SU) const {
365 LLVM_DUMP_METHOD void ScheduleDAG::dumpNodeAll(const SUnit &SU) const {
395 for (const SUnit &SUnit : SUnits) {
396 if (!SUnit.isScheduled) {
397 if (SUnit.NumPreds == 0 && SUnit.NumSuccs == 0) {
403 dumpNode(SUnit);
407 if (SUnit.isScheduled &&
408 (isBottomUp ? SUnit.getHeight() : SUnit.getDepth()) >
412 dumpNode(SUnit);
418 if (SUnit.NumSuccsLeft != 0) {
421 dumpNode(SUnit);
426 if (SUnit.NumPredsLeft != 0) {
429 dumpNode(SUnit);
473 std::vector<SUnit*> WorkList;
482 for (SUnit &SU : SUnits) {
490 assert(SU.Succs.empty() && "SUnit should have no successors");
498 SUnit *SU = WorkList.back();
503 SUnit *SU = PredDep.getSUnit();
516 for (SUnit &SU : SUnits) {
538 void ScheduleDAGTopologicalSort::AddPredQueued(SUnit *Y, SUnit *X) {
550 void ScheduleDAGTopologicalSort::AddPred(SUnit *Y, SUnit *X) {
568 void ScheduleDAGTopologicalSort::RemovePred(SUnit *M, SUnit *N) {
572 void ScheduleDAGTopologicalSort::DFS(const SUnit *SU, int UpperBound,
574 std::vector<const SUnit*> WorkList;
599 std::vector<int> ScheduleDAGTopologicalSort::GetSubGraph(const SUnit &StartSU,
600 const SUnit &TargetSU,
602 std::vector<const SUnit*> WorkList;
621 const SUnit *SU = WorkList.back();
624 const SUnit *Succ = SD.getSUnit();
655 const SUnit *SU = WorkList.back();
658 const SUnit *Pred = SD.getSUnit();
675 assert(Found && "Error in SUnit Graph!");
705 bool ScheduleDAGTopologicalSort::WillCreateCycle(SUnit *TargetSU, SUnit *SU) {
717 void ScheduleDAGTopologicalSort::AddSUnitWithoutPredecessors(const SUnit *SU) {
725 bool ScheduleDAGTopologicalSort::IsReachable(const SUnit *SU,
726 const SUnit *TargetSU) {
727 assert(TargetSU != nullptr && "Invalid target SUnit");
728 assert(SU != nullptr && "Invalid SUnit");
751 ScheduleDAGTopologicalSort(std::vector<SUnit> &sunits, SUnit *exitsu)