[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