[pypy-svn] r71785 - in pypy/branch/import-fiddle/pypy/jit: backend backend/llsupport backend/test metainterp
fijal at codespeak.net
fijal at codespeak.net
Fri Mar 5 06:20:58 CET 2010
Author: fijal
Date: Fri Mar 5 06:20:55 2010
New Revision: 71785
Modified:
pypy/branch/import-fiddle/pypy/jit/backend/llsupport/llmodel.py
pypy/branch/import-fiddle/pypy/jit/backend/model.py
pypy/branch/import-fiddle/pypy/jit/backend/test/test_random.py
pypy/branch/import-fiddle/pypy/jit/metainterp/executor.py
pypy/branch/import-fiddle/pypy/jit/metainterp/pyjitpl.py
Log:
Merge 71784 from trunk, so I can isolate potential issues
Modified: pypy/branch/import-fiddle/pypy/jit/backend/llsupport/llmodel.py
==============================================================================
--- pypy/branch/import-fiddle/pypy/jit/backend/llsupport/llmodel.py (original)
+++ pypy/branch/import-fiddle/pypy/jit/backend/llsupport/llmodel.py Fri Mar 5 06:20:55 2010
@@ -14,15 +14,11 @@
from pypy.jit.backend.llsupport.descr import get_array_descr, BaseArrayDescr
from pypy.jit.backend.llsupport.descr import get_call_descr, BaseCallDescr
-class CPUMutableContainer(object):
- _overflow_flag = False
-
class AbstractLLCPU(AbstractCPU):
from pypy.jit.metainterp.typesystem import llhelper as ts
def __init__(self, rtyper, stats, opts, translate_support_code=False,
gcdescr=None):
- self.mutable = CPUMutableContainer()
assert type(opts) is not bool
self.opts = opts
@@ -54,19 +50,12 @@
self._setup_on_leave_jitted_translated()
else:
self._setup_on_leave_jitted_untranslated()
- self.class_sizes = {}
-
- def set_overflow_flag(self, val):
- self.mutable._overflow_flag = val
-
- def get_overflow_error(self):
- return self.mutable._overflow_flag
def setup(self):
pass
def set_class_sizes(self, class_sizes):
- self.class_sizes.update(class_sizes)
+ self.class_sizes = class_sizes
def _setup_prebuilt_error(self, prefix, Class):
if self.rtyper is not None: # normal case
@@ -116,8 +105,8 @@
v_i = _exception_emulator[1]
_exception_emulator[0] = 0
_exception_emulator[1] = 0
- self.mutable.saved_exception = tp_i
- self.mutable.saved_exc_value = self._cast_int_to_gcref(v_i)
+ self.saved_exception = tp_i
+ self.saved_exc_value = self._cast_int_to_gcref(v_i)
self.pos_exception = pos_exception
self.pos_exc_value = pos_exc_value
@@ -144,8 +133,8 @@
# from now on, the state is again consistent -- no more RPython
# exception is set. The following code produces a write barrier
# in the assignment to self.saved_exc_value, as needed.
- self.mutable.saved_exception = exception
- self.mutable.saved_exc_value = exc_value
+ self.saved_exception = exception
+ self.saved_exc_value = exc_value
self.pos_exception = pos_exception
self.pos_exc_value = pos_exc_value
@@ -183,14 +172,14 @@
return rffi.cast(lltype.Signed, f)
def get_exception(self):
- return self.mutable.saved_exception
+ return self.saved_exception
def get_exc_value(self):
- return self.mutable.saved_exc_value
+ return self.saved_exc_value
def clear_exception(self):
- self.mutable.saved_exception = 0
- self.mutable.saved_exc_value = lltype.nullptr(llmemory.GCREF.TO)
+ self.saved_exception = 0
+ self.saved_exc_value = lltype.nullptr(llmemory.GCREF.TO)
# ------------------- helpers and descriptions --------------------
Modified: pypy/branch/import-fiddle/pypy/jit/backend/model.py
==============================================================================
--- pypy/branch/import-fiddle/pypy/jit/backend/model.py (original)
+++ pypy/branch/import-fiddle/pypy/jit/backend/model.py Fri Mar 5 06:20:55 2010
@@ -8,14 +8,9 @@
portal_calldescr = None
done_with_this_frame_int_v = -1
- _overflow_flag = False
-
def __init__(self):
self.fail_descr_list = []
- def _freeze_(self):
- return True
-
def get_fail_descr_number(self, descr):
assert isinstance(descr, history.AbstractFailDescr)
n = descr.index
@@ -118,12 +113,6 @@
def get_zero_division_error(self):
raise NotImplementedError
- def get_overflow_flag(self):
- return self._overflow_flag
-
- def set_overflow_flag(self, val):
- self._overflow_flag = val
-
@staticmethod
def sizeof(S):
raise NotImplementedError
Modified: pypy/branch/import-fiddle/pypy/jit/backend/test/test_random.py
==============================================================================
--- pypy/branch/import-fiddle/pypy/jit/backend/test/test_random.py (original)
+++ pypy/branch/import-fiddle/pypy/jit/backend/test/test_random.py Fri Mar 5 06:20:55 2010
@@ -264,8 +264,8 @@
fail_subset = builder.subset_of_intvars(r)
original_intvars = builder.intvars[:]
super(AbstractOvfOperation, self).produce_into(builder, r)
- if builder.cpu.get_overflow_flag(): # overflow detected
- builder.cpu.set_overflow_flag(False)
+ if builder.cpu._overflow_flag: # overflow detected
+ del builder.cpu._overflow_flag
op = ResOperation(rop.GUARD_OVERFLOW, [], None)
# the overflowed result should not be used any more, but can
# be used on the failure path: recompute fail_subset including
Modified: pypy/branch/import-fiddle/pypy/jit/metainterp/executor.py
==============================================================================
--- pypy/branch/import-fiddle/pypy/jit/metainterp/executor.py (original)
+++ pypy/branch/import-fiddle/pypy/jit/metainterp/executor.py Fri Mar 5 06:20:55 2010
@@ -145,7 +145,7 @@
z = 0
else:
ovf = False
- cpu.set_overflow_flag(ovf)
+ cpu._overflow_flag = ovf
return BoxInt(z)
def do_int_sub_ovf(cpu, box1, box2):
@@ -158,7 +158,7 @@
z = 0
else:
ovf = False
- cpu.set_overflow_flag(ovf)
+ cpu._overflow_flag = ovf
return BoxInt(z)
def do_int_mul_ovf(cpu, box1, box2):
@@ -171,7 +171,7 @@
z = 0
else:
ovf = False
- cpu.set_overflow_flag(ovf)
+ cpu._overflow_flag = ovf
return BoxInt(z)
# ----------
Modified: pypy/branch/import-fiddle/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/branch/import-fiddle/pypy/jit/metainterp/pyjitpl.py (original)
+++ pypy/branch/import-fiddle/pypy/jit/metainterp/pyjitpl.py Fri Mar 5 06:20:55 2010
@@ -1898,8 +1898,8 @@
def handle_overflow_error(self):
frame = self.framestack[-1]
- if self.cpu.get_overflow_flag():
- self.cpu.set_overflow_flag(False)
+ if self.cpu._overflow_flag:
+ self.cpu._overflow_flag = False
frame.generate_guard(frame.pc, rop.GUARD_OVERFLOW, None, [])
return self.raise_overflow_error()
else:
More information about the Pypy-commit
mailing list