[llvm-commits] [llvm] r56197 -	/llvm/branches/ggreif/use-diet/lib/VMCore/getValue.cpp
    Gabor Greif 
    ggreif at gmail.com
       
    Sun Sep 14 11:41:27 PDT 2008
    
    
  
Author: ggreif
Date: Sun Sep 14 13:41:26 2008
New Revision: 56197
URL: http://llvm.org/viewvc/llvm-project?rev=56197&view=rev
Log:
fix an ugly bug with not updating the Junk window's start pointer
in obscure cases. With this fix the test do not assert out from my code.
Also enabled an efficiency hack, and now we show the waymarks in a better manner.
Modified:
    llvm/branches/ggreif/use-diet/lib/VMCore/getValue.cpp
Modified: llvm/branches/ggreif/use-diet/lib/VMCore/getValue.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/ggreif/use-diet/lib/VMCore/getValue.cpp?rev=56197&r1=56196&r2=56197&view=diff
==============================================================================
--- llvm/branches/ggreif/use-diet/lib/VMCore/getValue.cpp (original)
+++ llvm/branches/ggreif/use-diet/lib/VMCore/getValue.cpp Sun Sep 14 13:41:26 2008
@@ -132,7 +132,7 @@
     case Use::fullStopTagN:
         return reinterpret_cast<Value*>(Next);
     case Use::stopTagN: {
-        // efficiency:
+        efficiency:
         // try to pick up exactly requiredSteps digits
         int digits = requiredSteps;
         Acc = 0;
@@ -158,11 +158,15 @@
                         PrevU = U;
                         U = stripTag<Use::tagMaskN>(U->Next);
                     }
-                    break;
+                    goto efficiency;
                 }
                 default:
                     --digits;
                     Acc = (Acc << 1) | (Tag & 1);
+                    if (Cushion <= 0) {
+		      PrevU = U;
+		      U = stripTag<Use::tagMaskN>(U->Next);
+                    }
                     continue;
             }
             break;
@@ -290,11 +294,17 @@
   return addTag((Use*)V, fullStopTagN);
 }
 
+static bool again(false);
+
 Value *Use::get() const {
   Value *V(Val1);
+  //  if ((size_t)V == 0x5b0d150)
+  //    getValue();
   Value *ValComp(getValue());
   if (V != ValComp)
     assert(V == ValComp && "Computed Value wrong?");
+  if (again)
+    getValue();
   return V;
 }
 
@@ -314,8 +324,11 @@
   std::cerr << TagChar(TagHere);
 
   me = stripTag<tagMaskN>(me);
-  if (TagHere == fullStopTagN)
+  if (TagHere == fullStopTagN) {
     std::cerr << " ---> " << me << std::endl;
+    std::cerr << "1234567890123456789012345678901234567890123456789012345678901234567890" << std::endl;
+    std::cerr << "         1         2         3         4         5         6         7" << std::endl;
+  }
   else
     me->showWaymarks();
 }
    
    
More information about the llvm-commits
mailing list