summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/ScheduleDAG.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/CodeGen/ScheduleDAG.cpp')
-rw-r--r--llvm/lib/CodeGen/ScheduleDAG.cpp100
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;
}
OpenPOWER on IntegriCloud