print out equiv class info.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20704 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/DataStructure/Printer.cpp b/lib/Analysis/DataStructure/Printer.cpp
index cf1a53e..e991bc5 100644
--- a/lib/Analysis/DataStructure/Printer.cpp
+++ b/lib/Analysis/DataStructure/Printer.cpp
@@ -75,8 +75,22 @@
     OS << "\n";
   }
 
-  for (unsigned i = 0, e = N->getGlobals().size(); i != e; ++i) {
-    WriteAsOperand(OS, N->getGlobals()[i], false, true, M);
+  EquivalenceClasses<GlobalValue*> *GlobalECs = 0;
+  if (G) GlobalECs = &G->getGlobalECs();
+  
+  for (unsigned i = 0, e = N->getGlobalsList().size(); i != e; ++i) {
+    WriteAsOperand(OS, N->getGlobalsList()[i], false, true, M);
+
+    // Figure out how many globals are equivalent to this one.
+    if (GlobalECs) {
+      EquivalenceClasses<GlobalValue*>::iterator I =
+        GlobalECs->findValue(N->getGlobalsList()[i]);
+      if (I != GlobalECs->end()) {
+        unsigned NumMembers = 
+          std::distance(GlobalECs->member_begin(I), GlobalECs->member_end());
+        if (NumMembers != 1) OS << " + " << (NumMembers-1) << " EC";
+      }
+    }
     OS << "\n";
   }