[pypy-svn] r71786 - in pypy/branch/cleanup-warnings/pypy/jit: backend backend/llsupport backend/test metainterp

fijal at codespeak.net fijal at codespeak.net
Fri Mar 5 06:21:43 CET 2010


Author: fijal
Date: Fri Mar  5 06:21:41 2010
New Revision: 71786

Modified:
   pypy/branch/cleanup-warnings/pypy/jit/backend/llsupport/llmodel.py
   pypy/branch/cleanup-warnings/pypy/jit/backend/model.py
   pypy/branch/cleanup-warnings/pypy/jit/backend/test/test_random.py
   pypy/branch/cleanup-warnings/pypy/jit/metainterp/executor.py
   pypy/branch/cleanup-warnings/pypy/jit/metainterp/pyjitpl.py
Log:
Merge 71784 from trunk


Modified: pypy/branch/cleanup-warnings/pypy/jit/backend/llsupport/llmodel.py
==============================================================================
--- pypy/branch/cleanup-warnings/pypy/jit/backend/llsupport/llmodel.py	(original)
+++ pypy/branch/cleanup-warnings/pypy/jit/backend/llsupport/llmodel.py	Fri Mar  5 06:21:41 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/cleanup-warnings/pypy/jit/backend/model.py
==============================================================================
--- pypy/branch/cleanup-warnings/pypy/jit/backend/model.py	(original)
+++ pypy/branch/cleanup-warnings/pypy/jit/backend/model.py	Fri Mar  5 06:21:41 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/cleanup-warnings/pypy/jit/backend/test/test_random.py
==============================================================================
--- pypy/branch/cleanup-warnings/pypy/jit/backend/test/test_random.py	(original)
+++ pypy/branch/cleanup-warnings/pypy/jit/backend/test/test_random.py	Fri Mar  5 06:21:41 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/cleanup-warnings/pypy/jit/metainterp/executor.py
==============================================================================
--- pypy/branch/cleanup-warnings/pypy/jit/metainterp/executor.py	(original)
+++ pypy/branch/cleanup-warnings/pypy/jit/metainterp/executor.py	Fri Mar  5 06:21:41 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/cleanup-warnings/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/branch/cleanup-warnings/pypy/jit/metainterp/pyjitpl.py	(original)
+++ pypy/branch/cleanup-warnings/pypy/jit/metainterp/pyjitpl.py	Fri Mar  5 06:21:41 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