}
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
+static void dumpSUIdentifier(const ScheduleDAG &DAG, const SUnit &SU) {
+ if (&SU == &DAG.ExitSU)
+ dbgs() << "ExitSU";
+ else if (&SU == &DAG.EntrySU)
+ dbgs() << "EntrySU";
+ else
+ dbgs() << "SU(" << SU.NodeNum << ")";
+}
+
/// SUnit - Scheduling unit. It's an wrapper around either a single SDNode or
/// a group of nodes flagged together.
void SUnit::dump(const ScheduleDAG *G) const {
- dbgs() << "SU(" << NodeNum << "): ";
+ dumpSUIdentifier(*G, *this);
+ dbgs() << ": ";
G->dumpNode(this);
}
case SDep::Output: dbgs() << "out "; break;
case SDep::Order: dbgs() << "ord "; break;
}
- dbgs() << "SU(" << I->getSUnit()->NodeNum << ")";
+ dumpSUIdentifier(*G, *I->getSUnit());
if (I->isArtificial())
dbgs() << " *";
dbgs() << ": Latency=" << I->getLatency();
case SDep::Output: dbgs() << "out "; break;
case SDep::Order: dbgs() << "ord "; break;
}
- dbgs() << "SU(" << I->getSUnit()->NodeNum << ")";
+ dumpSUIdentifier(*G, *I->getSUnit());
if (I->isArtificial())
dbgs() << " *";
dbgs() << ": Latency=" << I->getLatency();