[pypy-svn] r71690 - in pypy/trunk/pypy/jit: backend backend/llgraph backend/llsupport metainterp
fijal at codespeak.net
fijal at codespeak.net
Wed Mar 3 03:41:38 CET 2010
Author: fijal
Date: Wed Mar 3 03:41:36 2010
New Revision: 71690
Modified:
pypy/trunk/pypy/jit/backend/llgraph/runner.py
pypy/trunk/pypy/jit/backend/llsupport/llmodel.py
pypy/trunk/pypy/jit/backend/model.py
pypy/trunk/pypy/jit/metainterp/pyjitpl.py
Log:
Store a base class of calldescr on CPU, hence avoiding demoting method
get_extra_info up to abstract descr
Modified: pypy/trunk/pypy/jit/backend/llgraph/runner.py
==============================================================================
--- pypy/trunk/pypy/jit/backend/llgraph/runner.py (original)
+++ pypy/trunk/pypy/jit/backend/llgraph/runner.py Wed Mar 3 03:41:36 2010
@@ -74,6 +74,8 @@
class BaseCPU(model.AbstractCPU):
supports_floats = True
+ CallDescrClass = Descr
+
def __init__(self, rtyper, stats=None, opts=None,
translate_support_code=False,
annmixlevel=None, gcdescr=None):
Modified: pypy/trunk/pypy/jit/backend/llsupport/llmodel.py
==============================================================================
--- pypy/trunk/pypy/jit/backend/llsupport/llmodel.py (original)
+++ pypy/trunk/pypy/jit/backend/llsupport/llmodel.py Wed Mar 3 03:41:36 2010
@@ -17,6 +17,8 @@
class AbstractLLCPU(AbstractCPU):
from pypy.jit.metainterp.typesystem import llhelper as ts
+ CallDescrClass = BaseCallDescr
+
def __init__(self, rtyper, stats, opts, translate_support_code=False,
gcdescr=None):
assert type(opts) is not bool
Modified: pypy/trunk/pypy/jit/backend/model.py
==============================================================================
--- pypy/trunk/pypy/jit/backend/model.py (original)
+++ pypy/trunk/pypy/jit/backend/model.py Wed Mar 3 03:41:36 2010
@@ -8,6 +8,8 @@
portal_calldescr = None
done_with_this_frame_int_v = -1
+ CallDescrClass = None # a base class for all CallDescrs
+
def __init__(self):
self.fail_descr_list = []
Modified: pypy/trunk/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/pyjitpl.py (original)
+++ pypy/trunk/pypy/jit/metainterp/pyjitpl.py Wed Mar 3 03:41:36 2010
@@ -1066,6 +1066,7 @@
return self.metainterp.assert_no_exception()
def do_residual_call(self, argboxes, descr, exc):
+ assert isinstance(descr, self.metainterp.cpu.CallDescrClass)
effectinfo = descr.get_extra_info()
if effectinfo is None or effectinfo.forces_virtual_or_virtualizable:
# residual calls require attention to keep virtualizables in-sync
More information about the Pypy-commit
mailing list