OSDN Git Service

[CodeGen] Only print successors when the list is not empty
authorFrancis Visoiu Mistrih <francisvm@yahoo.com>
Fri, 9 Feb 2018 00:12:53 +0000 (00:12 +0000)
committerFrancis Visoiu Mistrih <francisvm@yahoo.com>
Fri, 9 Feb 2018 00:12:53 +0000 (00:12 +0000)
Follow-up of r324685.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324686 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/MachineBasicBlock.cpp

index f2f84cf..8f4d9b7 100644 (file)
@@ -334,27 +334,30 @@ void MachineBasicBlock::print(raw_ostream &OS, ModuleSlotTracker &MST,
     OS << '\n';
   }
 
-  // Print the successors
-  OS.indent(2) << "successors: ";
-  for (auto I = succ_begin(), E = succ_end(); I != E; ++I) {
-    if (I != succ_begin())
-      OS << ", ";
-    OS << printMBBReference(**I);
-    OS << '(' << format("0x%08" PRIx32, getSuccProbability(I).getNumerator())
-       << ')';
-  }
-  // Print human readable probabilities as comments.
-  OS << "; ";
-  for (auto I = succ_begin(), E = succ_end(); I != E; ++I) {
-    const BranchProbability &BP = *getProbabilityIterator(I);
-    if (I != succ_begin())
-      OS << ", ";
-    OS << printMBBReference(**I) << '('
-       << format("%.2f%%",
-                 rint(((double)BP.getNumerator() / BP.getDenominator()) *
-                      100.0 * 100.0) /
-                     100.0)
-       << ')';
+  if (!succ_empty()) {
+    // Print the successors
+    OS.indent(2) << "successors: ";
+    for (auto I = succ_begin(), E = succ_end(); I != E; ++I) {
+      if (I != succ_begin())
+        OS << ", ";
+      OS << printMBBReference(**I);
+      OS << '(' << format("0x%08" PRIx32, getSuccProbability(I).getNumerator())
+         << ')';
+    }
+    // Print human readable probabilities as comments.
+    OS << "; ";
+    for (auto I = succ_begin(), E = succ_end(); I != E; ++I) {
+      const BranchProbability &BP = *getProbabilityIterator(I);
+      if (I != succ_begin())
+        OS << ", ";
+      OS << printMBBReference(**I) << '('
+         << format("%.2f%%",
+                   rint(((double)BP.getNumerator() / BP.getDenominator()) *
+                        100.0 * 100.0) /
+                       100.0)
+         << ')';
+    }
+    OS << '\n';
   }
 
   // Print the preds of this block according to the CFG.