Author: David Schneider <[email protected]>
Branch: remove-globals-in-jit
Changeset: r59685:6a1b904bc6b1
Date: 2013-01-03 12:49 +0100
http://bitbucket.org/pypy/pypy/changeset/6a1b904bc6b1/
Log: merge heads
diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -216,40 +216,6 @@
"""
self.optimize_loop(ops, expected)
- def test_constfold_all(self):
- from pypy.jit.backend.llgraph.llimpl import TYPES # xxx fish
- from pypy.jit.metainterp.executor import execute_nonspec
- from pypy.jit.metainterp.history import BoxInt
- import random
- for opnum in range(rop.INT_ADD, rop.SAME_AS+1):
- try:
- op = opname[opnum]
- except KeyError:
- continue
- if 'FLOAT' in op:
- continue
- argtypes, restype = TYPES[op.lower()]
- args = []
- for argtype in argtypes:
- assert argtype in ('int', 'bool')
- args.append(random.randrange(1, 20))
- assert restype in ('int', 'bool')
- ops = """
- []
- i1 = %s(%s)
- escape(i1)
- jump()
- """ % (op.lower(), ', '.join(map(str, args)))
- argboxes = [BoxInt(a) for a in args]
- expected_value = execute_nonspec(self.cpu, None, opnum,
- argboxes).getint()
- expected = """
- []
- escape(%d)
- jump()
- """ % expected_value
- self.optimize_loop(ops, expected)
-
# ----------
def test_remove_guard_class_1(self):
@@ -658,8 +624,8 @@
escape(i3)
p1 = new_with_vtable(ConstClass(node_vtable))
p1sub = new_with_vtable(ConstClass(node_vtable2))
+ setfield_gc(p1sub, i1, descr=valuedescr)
setfield_gc(p1, i1, descr=valuedescr)
- setfield_gc(p1sub, i1, descr=valuedescr)
setfield_gc(p1, p1sub, descr=nextdescr)
jump(i1, p1, p2)
"""
@@ -994,10 +960,10 @@
ops = """
[f0, f1, f2, f3]
p0 = new_array(2, descr=complexarraydescr)
+ setinteriorfield_gc(p0, 0, f1, descr=compleximagdescr)
setinteriorfield_gc(p0, 0, f0, descr=complexrealdescr)
- setinteriorfield_gc(p0, 0, f1, descr=compleximagdescr)
+ setinteriorfield_gc(p0, 1, f3, descr=compleximagdescr)
setinteriorfield_gc(p0, 1, f2, descr=complexrealdescr)
- setinteriorfield_gc(p0, 1, f3, descr=compleximagdescr)
f4 = getinteriorfield_gc(p0, 0, descr=complexrealdescr)
f5 = getinteriorfield_gc(p0, 1, descr=complexrealdescr)
f6 = float_mul(f4, f5)
@@ -1032,8 +998,8 @@
[f0, f1]
f2 = float_mul(f0, f1)
p0 = new_array(1, descr=complexarraydescr)
+ setinteriorfield_gc(p0, 0, f1, descr=compleximagdescr)
setinteriorfield_gc(p0, 0, f0, descr=complexrealdescr)
- setinteriorfield_gc(p0, 0, f1, descr=compleximagdescr)
i0 = escape(f2, p0)
finish(i0)
"""
diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py
b/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py
@@ -1,21 +1,14 @@
import py
from pypy.rlib.objectmodel import instantiate
from pypy.jit.metainterp.optimizeopt.test.test_util import (
- LLtypeMixin, BaseTest, Storage, _sortboxes, convert_old_style_to_targets)
-import pypy.jit.metainterp.optimizeopt.optimizer as optimizeopt
-import pypy.jit.metainterp.optimizeopt.virtualize as virtualize
-from pypy.jit.metainterp.optimizeopt import ALL_OPTS_DICT, build_opt_chain
+ LLtypeMixin, BaseTest, convert_old_style_to_targets)
+from pypy.jit.metainterp.optimizeopt import build_opt_chain
from pypy.jit.metainterp.optimize import InvalidLoop
from pypy.jit.metainterp.history import AbstractDescr, ConstInt, BoxInt
-from pypy.jit.metainterp.history import TreeLoop, JitCellToken, TargetToken
-from pypy.jit.metainterp.jitprof import EmptyProfiler
-from pypy.jit.metainterp import executor, compile, resume, history
-from pypy.jit.metainterp.resoperation import rop, opname, ResOperation
-from pypy.jit.tool.oparser import pure_parse
-from pypy.jit.metainterp.optimizeopt.util import args_dict
+from pypy.jit.metainterp.history import TreeLoop
+from pypy.jit.metainterp import compile, resume
+from pypy.jit.metainterp.resoperation import rop, opname, opargnum
from pypy.jit.metainterp.optimizeopt.test.test_optimizebasic import
FakeMetaInterpStaticData
-from pypy.config.pypyoption import get_pypy_config
-from pypy.jit.metainterp.optimizeopt.unroll import Inliner
def test_build_opt_chain():
def check(chain, expected_names):
@@ -185,9 +178,7 @@
self.optimize_loop(ops, expected)
def test_constfold_all(self):
- from pypy.jit.backend.llgraph.llimpl import TYPES # xxx fish
from pypy.jit.metainterp.executor import execute_nonspec
- from pypy.jit.metainterp.history import BoxInt
import random
for opnum in range(rop.INT_ADD, rop.SAME_AS+1):
try:
@@ -196,12 +187,9 @@
continue
if 'FLOAT' in op:
continue
- argtypes, restype = TYPES[op.lower()]
args = []
- for argtype in argtypes:
- assert argtype in ('int', 'bool')
+ for _ in range(opargnum[opnum]):
args.append(random.randrange(1, 20))
- assert restype in ('int', 'bool')
ops = """
[]
i1 = %s(%s)
@@ -836,8 +824,8 @@
escape(i3)
p4 = new_with_vtable(ConstClass(node_vtable))
p1sub = new_with_vtable(ConstClass(node_vtable2))
+ setfield_gc(p1sub, i1, descr=valuedescr)
setfield_gc(p4, i1, descr=valuedescr)
- setfield_gc(p1sub, i1, descr=valuedescr)
setfield_gc(p4, p1sub, descr=nextdescr)
jump(i1, p4)
"""
@@ -1168,13 +1156,13 @@
i2 = int_sub(i1, 1)
i3 = int_add(i0, i1)
i4 = same_as(i2) # This same_as should be killed by backend
- jump(i3, i2, i1)
+ jump(i3, i1, i2)
"""
expected = """
[i0, i1, i1bis]
- i2 = int_sub(i1, 1)
- i3 = int_add(i0, i1)
- jump(i3, i2, i1)
+ i2 = int_sub(i1bis, 1)
+ i3 = int_add(i0, i1bis)
+ jump(i3, i1bis, i2)
"""
self.optimize_loop(ops, expected, preamble)
@@ -1226,8 +1214,8 @@
i1 = int_add(i0, 1)
p1 = new_with_vtable(ConstClass(node_vtable2))
p2 = new_with_vtable(ConstClass(node_vtable2))
+ setfield_gc(p2, p1, descr=nextdescr)
setfield_gc(p2, i1, descr=valuedescr)
- setfield_gc(p2, p1, descr=nextdescr)
setfield_gc(p1, p2, descr=nextdescr)
setfield_gc(p0, p1, descr=nextdescr)
jump(p1)
@@ -1239,8 +1227,8 @@
i1 = int_add(i0, 1)
p1 = new_with_vtable(ConstClass(node_vtable2))
p2 = new_with_vtable(ConstClass(node_vtable2))
+ setfield_gc(p2, p1, descr=nextdescr)
setfield_gc(p2, i1, descr=valuedescr)
- setfield_gc(p2, p1, descr=nextdescr)
setfield_gc(p1, p2, descr=nextdescr)
setfield_gc(p0, p1, descr=nextdescr)
jump(p1)
diff --git a/pypy/jit/metainterp/resoperation.py
b/pypy/jit/metainterp/resoperation.py
--- a/pypy/jit/metainterp/resoperation.py
+++ b/pypy/jit/metainterp/resoperation.py
@@ -539,6 +539,7 @@
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"
@@ -567,6 +568,7 @@
else:
cls = None
opclasses.append(cls)
+ opargnum.append(arity)
oparity.append(arity)
opwithdescr.append(withdescr)
opboolresult.append(boolresult)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit