[pypy-commit] pypy heapcache-refactor: replace InputArgXxx with FrontendOps (still a bad call to set_position, I think)

fijal pypy.commits at gmail.com
Fri Mar 18 16:56:44 EDT 2016


Author: fijal
Branch: heapcache-refactor
Changeset: r83151:fd211f9b818b
Date: 2016-03-18 22:55 +0200
http://bitbucket.org/pypy/pypy/changeset/fd211f9b818b/

Log:	replace InputArgXxx with FrontendOps (still a bad call to
	set_position, I think)

diff --git a/rpython/jit/metainterp/history.py b/rpython/jit/metainterp/history.py
--- a/rpython/jit/metainterp/history.py
+++ b/rpython/jit/metainterp/history.py
@@ -614,8 +614,9 @@
         return intmask(p) >> FO_POSITION_SHIFT
 
     def set_position(self, new_pos):
-        flags = self.position_and_flags & (~FO_POSITION_MASK)
-        self.position_and_flags = flags | r_uint(new_pos)
+        self.__init__(new_pos)
+        #flags = self.position_and_flags & (~FO_POSITION_MASK)
+        #self.position_and_flags = flags | r_uint(new_pos)
 
     def is_replaced_with_const(self):
         return bool(self.position_and_flags & FO_REPLACED_WITH_CONST)
diff --git a/rpython/jit/metainterp/resume.py b/rpython/jit/metainterp/resume.py
--- a/rpython/jit/metainterp/resume.py
+++ b/rpython/jit/metainterp/resume.py
@@ -1,9 +1,9 @@
 from rpython.jit.codewriter.effectinfo import EffectInfo
 from rpython.jit.metainterp import jitprof
 from rpython.jit.metainterp.history import (Const, ConstInt, getkind,
-    INT, REF, FLOAT, AbstractDescr)
-from rpython.jit.metainterp.resoperation import rop, InputArgInt,\
-     InputArgFloat, InputArgRef
+    INT, REF, FLOAT, AbstractDescr, IntFrontendOp, RefFrontendOp,
+    FloatFrontendOp)
+from rpython.jit.metainterp.resoperation import rop
 from rpython.rlib import rarithmetic, rstack
 from rpython.rlib.objectmodel import (we_are_translated, specialize,
         compute_unique_id)
@@ -1264,11 +1264,14 @@
             num += len(self.liveboxes)
             assert num >= 0
         if kind == INT:
-            box = InputArgInt(self.cpu.get_int_value(self.deadframe, num))
+            box = IntFrontendOp(0)
+            box.setint(self.cpu.get_int_value(self.deadframe, num))
         elif kind == REF:
-            box = InputArgRef(self.cpu.get_ref_value(self.deadframe, num))
+            box = RefFrontendOp(0)
+            box.setref_base(self.cpu.get_ref_value(self.deadframe, num))
         elif kind == FLOAT:
-            box = InputArgFloat(self.cpu.get_float_value(self.deadframe, num))
+            box = FloatFrontendOp(0)
+            box.setfloatstorage(self.cpu.get_float_value(self.deadframe, num))
         else:
             assert 0, "bad kind: %d" % ord(kind)
         self.liveboxes[num] = box
diff --git a/rpython/jit/metainterp/warmstate.py b/rpython/jit/metainterp/warmstate.py
--- a/rpython/jit/metainterp/warmstate.py
+++ b/rpython/jit/metainterp/warmstate.py
@@ -75,7 +75,9 @@
             if in_const_box:
                 return history.ConstPtr(value)
             else:
-                return history.RefFrontendOp(xxx)
+                res = history.RefFrontendOp(0)
+                res.setref_base(value)
+                return res
         else:
             adr = llmemory.cast_ptr_to_adr(value)
             value = heaptracker.adr2int(adr)
@@ -89,7 +91,9 @@
         if in_const_box:
             return history.ConstFloat(value)
         else:
-            return resoperation.InputArgFloat(value)
+            res = history.FloatFrontendOp(0)
+            res.setfloatstorage(value)
+            return res
     elif isinstance(value, str) or isinstance(value, unicode):
         assert len(value) == 1     # must be a character
         value = ord(value)
@@ -100,7 +104,9 @@
     if in_const_box:
         return history.ConstInt(value)
     else:
-        return resoperation.InputArgInt(value)
+        res = history.IntFrontendOp(0)
+        res.setint(value)
+        return res
 
 @specialize.arg(0)
 def equal_whatever(TYPE, x, y):


More information about the pypy-commit mailing list