[pypy-commit] pypy default: don't store arity twice, move bool results as flag on class
cfbolz
noreply at buildbot.pypy.org
Mon Apr 1 22:19:08 CEST 2013
Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch:
Changeset: r62913:2619f89c28cc
Date: 2013-04-01 22:09 +0200
http://bitbucket.org/pypy/pypy/changeset/2619f89c28cc/
Log: don't store arity twice, move bool results as flag on class
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
@@ -7,7 +7,7 @@
from rpython.jit.metainterp.history import AbstractDescr, ConstInt, BoxInt
from rpython.jit.metainterp.history import TreeLoop
from rpython.jit.metainterp import compile, resume
-from rpython.jit.metainterp.resoperation import rop, opname, opargnum
+from rpython.jit.metainterp.resoperation import rop, opname, oparity
from rpython.jit.metainterp.optimizeopt.test.test_optimizebasic import FakeMetaInterpStaticData
def test_build_opt_chain():
@@ -188,7 +188,7 @@
if 'FLOAT' in op:
continue
args = []
- for _ in range(opargnum[opnum]):
+ for _ in range(oparity[opnum]):
args.append(random.randrange(1, 20))
ops = """
[]
diff --git a/rpython/jit/metainterp/resoperation.py b/rpython/jit/metainterp/resoperation.py
--- a/rpython/jit/metainterp/resoperation.py
+++ b/rpython/jit/metainterp/resoperation.py
@@ -21,6 +21,7 @@
name = ""
pc = 0
opnum = 0
+ _cls_has_bool_result = False
_attrs_ = ('result',)
@@ -172,12 +173,7 @@
return rop._FINAL_FIRST <= self.getopnum() <= rop._FINAL_LAST
def returns_bool_result(self):
- opnum = self.getopnum()
- if we_are_translated():
- assert opnum >= 0
- elif opnum < 0:
- return False # for tests
- return opboolresult[opnum]
+ return self._cls_has_bool_result
# ===================
@@ -550,11 +546,9 @@
pass
opclasses = [] # mapping numbers to the concrete ResOp class
-opargnum = [] # mapping numbers to number or args (or -1)
opname = {} # mapping numbers to the original names, for debugging
oparity = [] # mapping numbers to the arity of the operation or -1
opwithdescr = [] # mapping numbers to a flag "takes a descr"
-opboolresult= [] # mapping numbers to a flag "returns a boolean"
def setup(debug_print=False):
@@ -576,14 +570,13 @@
if not name.startswith('_'):
opname[i] = name
cls = create_class_for_op(name, i, arity, withdescr)
+ cls._cls_has_bool_result = boolresult
else:
cls = None
opclasses.append(cls)
- opargnum.append(arity)
oparity.append(arity)
opwithdescr.append(withdescr)
- opboolresult.append(boolresult)
- assert len(opclasses)==len(oparity)==len(opwithdescr)==len(opboolresult)==len(_oplist)
+ assert len(opclasses)==len(oparity)==len(opwithdescr)==len(_oplist)
def get_base_class(mixin, base):
try:
More information about the pypy-commit
mailing list