[pypy-commit] pypy no-failargs: fix fix

arigo noreply at buildbot.pypy.org
Sat Oct 27 17:15:33 CEST 2012


Author: Armin Rigo <arigo at tunes.org>
Branch: no-failargs
Changeset: r58504:db55cdd71296
Date: 2012-10-27 16:11 +0200
http://bitbucket.org/pypy/pypy/changeset/db55cdd71296/

Log:	fix fix

diff --git a/pypy/jit/backend/test/runner_test.py b/pypy/jit/backend/test/runner_test.py
--- a/pypy/jit/backend/test/runner_test.py
+++ b/pypy/jit/backend/test/runner_test.py
@@ -130,7 +130,7 @@
         if 'faildescr4' not in namespace:
             namespace['faildescr4'] = BasicFailDescr(4)
         loop = oparser.parse(s, namespace=namespace, mutable=True,
-                             vars=getattr(self, 'original_vars', {}))
+                             oldvars=getattr(self, 'original_vars', {}))
         self.original_vars = loop.original_vars
         return loop.inputargs, loop.operations, JitCellToken()
 
@@ -393,16 +393,16 @@
             if not reversed:
                 inputargs, operations, looptoken = self.parse("""
                 [i1, i2]
-                ires = %s(i1, i2)
-                guard_no_overflow(descr=faildescr1) []
-                finish(ires, descr=faildescr2)
+                i3 = %s(i1, i2)
+                guard_no_overflow(descr=faildescr1)
+                finish(i3, descr=faildescr2)
                 """ % op, namespace={'faildescr1': BasicFailDescr(1),
                                      'faildescr2': BasicFailDescr(2)})
             else:
                 inputargs, operations, looptoken = self.parse("""
                 [i1, i2]
-                ires = %s(i1, i2)
-                guard_overflow(descr=faildescr1) [ires]
+                i3 = %s(i1, i2)
+                guard_overflow(descr=faildescr1)
                 finish(descr=faildescr2)
                 """ % op, namespace={'faildescr1': BasicFailDescr(1),
                                      'faildescr2': BasicFailDescr(2)})
@@ -418,7 +418,7 @@
                     if not reversed:
                         assert self.cpu.get_finish_value_int(frame) == z
                     else:
-                        assert self.cpu.get_latest_value_int(frame, 0) == z
+                        assert self.get_frame_value(frame, 'i3') == z
 
     def test_ovf_operations_reversed(self):
         self.test_ovf_operations(reversed=True)
diff --git a/pypy/jit/tool/oparser.py b/pypy/jit/tool/oparser.py
--- a/pypy/jit/tool/oparser.py
+++ b/pypy/jit/tool/oparser.py
@@ -20,9 +20,11 @@
     use_mock_model = False
 
     def __init__(self, input, cpu, namespace, type_system,
-                 invent_fail_descr=True, results=None, mutable=False, vars={}):
+                 invent_fail_descr=True, results=None, mutable=False,
+                 oldvars={}):
         self.input = input
-        self.vars = vars.copy()
+        self.oldvars = oldvars
+        self.vars = {}
         self.cpu = cpu
         self._consts = namespace
         self.type_system = type_system
@@ -75,17 +77,20 @@
 
     def newvar(self, elem):
         if elem not in self.vars:
-            if elem[0] in 'ifp':
-                if elem[0] == 'p':
-                    p = 'r'
+            if elem not in self.oldvars:
+                if elem[0] in 'ifp':
+                    if elem[0] == 'p':
+                        p = 'r'
+                    else:
+                        p = elem[0]
+                    opnum = getattr(rop, 'INPUT_' + p)
+                    box = create_resop_0(opnum, example_for_opnum(opnum),
+                                         mutable=self.mutable)
                 else:
-                    p = elem[0]
-                opnum = getattr(rop, 'INPUT_' + p)
-                box = create_resop_0(opnum, example_for_opnum(opnum),
-                                     mutable=self.mutable)
+                    raise ParseError("Unknown variable type: %s" % elem)
+                self.setstr(box, elem)
             else:
-                raise ParseError("Unknown variable type: %s" % elem)
-            self.setstr(box, elem)
+                box = self.oldvars[elem]
             self.vars[elem] = box
         return self.vars[elem]
 
@@ -307,11 +312,11 @@
 
 def parse(input, cpu=None, namespace=DEFAULT, type_system='lltype',
           invent_fail_descr=True, OpParser=OpParser,
-          results=None, mutable=False, vars={}):
+          results=None, mutable=False, oldvars={}):
     if namespace is DEFAULT:
         namespace = {}
     return OpParser(input, cpu, namespace, type_system,
-                    invent_fail_descr, results, mutable, vars).parse()
+                    invent_fail_descr, results, mutable, oldvars).parse()
 
 def pure_parse(*args, **kwds):
     kwds['invent_fail_descr'] = False


More information about the pypy-commit mailing list