print out equiv class info.
authorChris Lattner <sabre@nondot.org>
Sun, 20 Mar 2005 02:40:11 +0000 (02:40 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 20 Mar 2005 02:40:11 +0000 (02:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20704 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/DataStructure/Printer.cpp

index cf1a53ebe1ca2c86cddff90b252b361284dddbf7..e991bc51cc8c89f06d578f00c4d854864cc1db60 100644 (file)
@@ -75,8 +75,22 @@ static std::string getCaption(const DSNode *N, const DSGraph *G) {
     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";
   }