[llvm-commits] [llvm] r56845 - /llvm/branches/ggreif/use-diet/lib/VMCore/getValue.cpp
Gabor Greif
ggreif at gmail.com
Tue Sep 30 08:25:38 PDT 2008
Author: ggreif
Date: Tue Sep 30 10:25:35 2008
New Revision: 56845
URL: http://llvm.org/viewvc/llvm-project?rev=56845&view=rev
Log:
fix a scenario where waymarks could be placed,
but haven't been
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=56845&r1=56844&r2=56845&view=diff
==============================================================================
--- llvm/branches/ggreif/use-diet/lib/VMCore/getValue.cpp (original)
+++ llvm/branches/ggreif/use-diet/lib/VMCore/getValue.cpp Tue Sep 30 10:25:35 2008
@@ -122,11 +122,16 @@
// try to pick up exactly requiredSteps digits
int digits = requiredSteps;
Acc = 0;
+ Use* Tagspace = 0;
+ Use* OrigTagspace(Next);
while (1) {
- if (!digits)
+ if (!digits) {
+ if (Tagspace && Cushion <= -requiredSteps) {
+ repaintByCopying(Tagspace, OrigTagspace);
+ }
return reinterpret_cast<Value*>(Acc << spareBits);
-
+ }
Next = Next->Next;
__builtin_prefetch(Next);
--Cushion;
@@ -146,6 +151,10 @@
goto efficiency;
}
default:
+ if (digits == requiredSteps /*!Tagspace*/) {
+ Tagspace = OrigTagspace;
+ OrigTagspace = (Use*)stripTag<Use::tagMask>(U->Prev);
+ }
--digits;
Acc = (Acc << 1) | (Tag & 1);
if (Cushion <= 0) {
More information about the llvm-commits
mailing list