[RS4GC] Fix base pair printing for constants.
authorManuel Jacob <me@manueljacob.de>
Wed, 23 Dec 2015 00:19:45 +0000 (00:19 +0000)
committerManuel Jacob <me@manueljacob.de>
Wed, 23 Dec 2015 00:19:45 +0000 (00:19 +0000)
Previously, "%" + name of the value was printed for each derived and base
pointer.  This is correct for instructions, but wrong for e.g. globals.

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

lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
test/Transforms/RewriteStatepointsForGC/base-pointers-12.ll
test/Transforms/RewriteStatepointsForGC/base-pointers-13.ll

index 5b3a7644e7844912259abd86e6eac58eb7d7ab30..062fba5cdad8a6c12bfa850b989384564e089cae 100644 (file)
@@ -1208,8 +1208,11 @@ static void findBasePointers(DominatorTree &DT, DefiningValueMapTy &DVCache,
     std::sort(Temp.begin(), Temp.end(), order_by_name);
     for (Value *Ptr : Temp) {
       Value *Base = PointerToBase[Ptr];
-      errs() << " derived %" << Ptr->getName() << " base %" << Base->getName()
-             << "\n";
+      errs() << " derived ";
+      Ptr->printAsOperand(errs(), false);
+      errs() << " base ";
+      Base->printAsOperand(errs(), false);
+      errs() << "\n";;
     }
   }
 
@@ -2378,9 +2381,13 @@ static bool insertParsePoints(Function &F, DominatorTree &DT,
   if (PrintBasePointers) {
     for (auto &Info : Records) {
       errs() << "Base Pairs: (w/Relocation)\n";
-      for (auto Pair : Info.PointerToBase)
-        errs() << " derived %" << Pair.first->getName() << " base %"
-               << Pair.second->getName() << "\n";
+      for (auto Pair : Info.PointerToBase) {
+        errs() << " derived ";
+        Pair.first->printAsOperand(errs(), false);
+        errs() << " base ";
+        Pair.second->printAsOperand(errs(), false);
+        errs() << "\n";
+      }
     }
   }
 
index d4425a77a533b544df7fdfe3c90d440a38177a14..fbe1207e6c1633a60545f6c1f259e1b98e639c51 100644 (file)
@@ -1,6 +1,6 @@
 ; RUN: opt %s -rewrite-statepoints-for-gc -spp-print-base-pointers -S 2>&1 | FileCheck %s
 
-; CHECK: derived %select base %global
+; CHECK: derived %select base @global
 
 @global = external addrspace(1) global i8
 
index 9c16eb236f232f4ab6f2bec85704029eb843dffb..65782c27c98caccfd757e85d8b853469164f14ac 100644 (file)
@@ -1,6 +1,6 @@
 ; RUN: opt %s -rewrite-statepoints-for-gc -spp-print-base-pointers -S 2>&1 | FileCheck %s
 
-; CHECK: derived %derived base %global
+; CHECK: derived %derived base @global
 
 @global = external addrspace(1) global i8