sgefa uses truely huge data structures nodes.  Only print part of them if they
are so big


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4035 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/DataStructure/Printer.cpp b/lib/Analysis/DataStructure/Printer.cpp
index b78861c..51ebe63 100644
--- a/lib/Analysis/DataStructure/Printer.cpp
+++ b/lib/Analysis/DataStructure/Printer.cpp
@@ -103,17 +103,22 @@
 
   O << "\tNode" << (void*)this << " [ label =\"{" << Caption;
 
+  unsigned Size = getSize();
+  if (Size > 64) Size = 64;   // Don't print out HUGE graph nodes!
+
   if (getSize() != 0) {
     O << "|{";
-    for (unsigned i = 0; i < getSize(); ++i) {
+    for (unsigned i = 0; i < Size; ++i) {
       if (i) O << "|";
       O << "<g" << i << ">" << (int)MergeMap[i];
     }
+    if (Size != getSize())
+      O << "|truncated...";
     O << "}";
   }
   O << "}\"];\n";
 
-  for (unsigned i = 0; i != getSize(); ++i)
+  for (unsigned i = 0; i != Size; ++i)
     if (const DSNodeHandle *DSN = getLink(i))
       writeEdge(O, this, ":g", i, *DSN);
 }