[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