Debug printing for SUnits that carry MachineInstrs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59279 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
index 8ff50c1..66ada59 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
@@ -446,17 +446,24 @@
                                                        const ScheduleDAG *G) {
   std::string Op;
 
-  if (!SU->getNode())
-    Op = "<CROSS RC COPY>";
-  else {
-    SmallVector<SDNode *, 4> FlaggedNodes;
-    for (SDNode *N = SU->getNode(); N; N = N->getFlaggedNode())
-      FlaggedNodes.push_back(N);
-    while (!FlaggedNodes.empty()) {
-      Op += DOTGraphTraits<SelectionDAG*>::getNodeLabel(FlaggedNodes.back(),
-                                                        G->DAG) + "\n";
-      FlaggedNodes.pop_back();
+  if (G->DAG) {
+    if (!SU->getNode())
+      Op = "<CROSS RC COPY>";
+    else {
+      SmallVector<SDNode *, 4> FlaggedNodes;
+      for (SDNode *N = SU->getNode(); N; N = N->getFlaggedNode())
+        FlaggedNodes.push_back(N);
+      while (!FlaggedNodes.empty()) {
+        Op += DOTGraphTraits<SelectionDAG*>::getNodeLabel(FlaggedNodes.back(),
+                                                          G->DAG) + "\n";
+        FlaggedNodes.pop_back();
+      }
     }
+  } else {
+    std::string s;
+    raw_string_ostream oss(s);
+    SU->MI->print(oss);
+    Op += oss.str();
   }
 
   return Op;