diff options
Diffstat (limited to 'llvm/lib/CodeGen/ScheduleDAG.cpp')
-rw-r--r-- | llvm/lib/CodeGen/ScheduleDAG.cpp | 100 |
1 files changed, 44 insertions, 56 deletions
diff --git a/llvm/lib/CodeGen/ScheduleDAG.cpp b/llvm/lib/CodeGen/ScheduleDAG.cpp index 46064012d9d..6c135b3d69d 100644 --- a/llvm/lib/CodeGen/ScheduleDAG.cpp +++ b/llvm/lib/CodeGen/ScheduleDAG.cpp @@ -68,39 +68,36 @@ const MCInstrDesc *ScheduleDAG::getNodeDesc(const SDNode *Node) const { return &TII->get(Node->getMachineOpcode()); } -LLVM_DUMP_METHOD -raw_ostream &SDep::print(raw_ostream &OS, const TargetRegisterInfo *TRI) const { +LLVM_DUMP_METHOD void SDep::dump(const TargetRegisterInfo *TRI) const { switch (getKind()) { - case Data: OS << "Data"; break; - case Anti: OS << "Anti"; break; - case Output: OS << "Out "; break; - case Order: OS << "Ord "; break; + case Data: dbgs() << "Data"; break; + case Anti: dbgs() << "Anti"; break; + case Output: dbgs() << "Out "; break; + case Order: dbgs() << "Ord "; break; } switch (getKind()) { case Data: - OS << " Latency=" << getLatency(); + dbgs() << " Latency=" << getLatency(); if (TRI && isAssignedRegDep()) - OS << " Reg=" << printReg(getReg(), TRI); + dbgs() << " Reg=" << printReg(getReg(), TRI); break; case Anti: case Output: - OS << " Latency=" << getLatency(); + dbgs() << " Latency=" << getLatency(); break; case Order: - OS << " Latency=" << getLatency(); + dbgs() << " Latency=" << getLatency(); switch(Contents.OrdKind) { - case Barrier: OS << " Barrier"; break; + case Barrier: dbgs() << " Barrier"; break; case MayAliasMem: - case MustAliasMem: OS << " Memory"; break; - case Artificial: OS << " Artificial"; break; - case Weak: OS << " Weak"; break; - case Cluster: OS << " Cluster"; break; + case MustAliasMem: dbgs() << " Memory"; break; + case Artificial: dbgs() << " Artificial"; break; + case Weak: dbgs() << " Weak"; break; + case Cluster: dbgs() << " Cluster"; break; } break; } - - return OS; } bool SUnit::addPred(const SDep &D, bool Required) { @@ -337,33 +334,7 @@ void SUnit::biasCriticalPath() { } #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) -LLVM_DUMP_METHOD -raw_ostream &SUnit::print(raw_ostream &OS, - const SUnit *Entry, const SUnit *Exit) const { - if (this == Entry) - OS << "EntrySU"; - else if (this == Exit) - OS << "ExitSU"; - else - OS << "SU(" << NodeNum << ")"; - return OS; -} - -LLVM_DUMP_METHOD -raw_ostream &SUnit::print(raw_ostream &OS, const ScheduleDAG *G) const { - return print(OS, &G->EntrySU, &G->ExitSU); -} - -LLVM_DUMP_METHOD -void SUnit::dump(const ScheduleDAG *G) const { - print(dbgs(), G); - dbgs() << ": "; - G->dumpNode(this); -} - -LLVM_DUMP_METHOD void SUnit::dumpAll(const ScheduleDAG *G) const { - dump(G); - +LLVM_DUMP_METHOD void SUnit::dumpAttributes() const { dbgs() << " # preds left : " << NumPredsLeft << "\n"; dbgs() << " # succs left : " << NumSuccsLeft << "\n"; if (WeakPredsLeft) @@ -374,21 +345,38 @@ LLVM_DUMP_METHOD void SUnit::dumpAll(const ScheduleDAG *G) const { dbgs() << " Latency : " << Latency << "\n"; dbgs() << " Depth : " << getDepth() << "\n"; dbgs() << " Height : " << getHeight() << "\n"; +} + +LLVM_DUMP_METHOD void ScheduleDAG::dumpNodeName(const SUnit &SU) const { + if (&SU == &EntrySU) + dbgs() << "EntrySU"; + else if (&SU == &ExitSU) + dbgs() << "ExitSU"; + else + dbgs() << "SU(" << SU.NodeNum << ")"; +} - if (Preds.size() != 0) { +LLVM_DUMP_METHOD void ScheduleDAG::dumpNodeAll(const SUnit &SU) const { + dumpNode(SU); + SU.dumpAttributes(); + if (SU.Preds.size() > 0) { dbgs() << " Predecessors:\n"; - for (const SDep &Dep : Preds) { + for (const SDep &Dep : SU.Preds) { dbgs() << " "; - Dep.getSUnit()->print(dbgs(), G); dbgs() << ": "; - Dep.print(dbgs(), G->TRI); dbgs() << '\n'; + dumpNodeName(*Dep.getSUnit()); + dbgs() << ": "; + Dep.dump(TRI); + dbgs() << '\n'; } } - if (Succs.size() != 0) { + if (SU.Succs.size() > 0) { dbgs() << " Successors:\n"; - for (const SDep &Dep : Succs) { + for (const SDep &Dep : SU.Succs) { dbgs() << " "; - Dep.getSUnit()->print(dbgs(), G); dbgs() << ": "; - Dep.print(dbgs(), G->TRI); dbgs() << '\n'; + dumpNodeName(*Dep.getSUnit()); + dbgs() << ": "; + Dep.dump(TRI); + dbgs() << '\n'; } } } @@ -406,7 +394,7 @@ unsigned ScheduleDAG::VerifyScheduledDAG(bool isBottomUp) { } if (!AnyNotSched) dbgs() << "*** Scheduling failed! ***\n"; - SUnit.dump(this); + dumpNode(SUnit); dbgs() << "has not been scheduled!\n"; AnyNotSched = true; } @@ -415,7 +403,7 @@ unsigned ScheduleDAG::VerifyScheduledDAG(bool isBottomUp) { unsigned(std::numeric_limits<int>::max())) { if (!AnyNotSched) dbgs() << "*** Scheduling failed! ***\n"; - SUnit.dump(this); + dumpNode(SUnit); dbgs() << "has an unexpected " << (isBottomUp ? "Height" : "Depth") << " value!\n"; AnyNotSched = true; @@ -424,7 +412,7 @@ unsigned ScheduleDAG::VerifyScheduledDAG(bool isBottomUp) { if (SUnit.NumSuccsLeft != 0) { if (!AnyNotSched) dbgs() << "*** Scheduling failed! ***\n"; - SUnit.dump(this); + dumpNode(SUnit); dbgs() << "has successors left!\n"; AnyNotSched = true; } @@ -432,7 +420,7 @@ unsigned ScheduleDAG::VerifyScheduledDAG(bool isBottomUp) { if (SUnit.NumPredsLeft != 0) { if (!AnyNotSched) dbgs() << "*** Scheduling failed! ***\n"; - SUnit.dump(this); + dumpNode(SUnit); dbgs() << "has predecessors left!\n"; AnyNotSched = true; } |