[pypy-commit] pypy default: move another piece of common code to the base class
antocuni
noreply at buildbot.pypy.org
Tue Jun 14 18:07:44 CEST 2011
Author: Antonio Cuni <anto.cuni at gmail.com>
Branch:
Changeset: r44955:c7051a739c1a
Date: 2011-06-14 18:05 +0200
http://bitbucket.org/pypy/pypy/changeset/c7051a739c1a/
Log: move another piece of common code to the base class
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
@@ -1,33 +1,14 @@
import py
from pypy.rlib.objectmodel import instantiate
-from pypy.jit.metainterp.optimizeopt.test.test_util import (LLtypeMixin,
- #OOtypeMixin,
- BaseTest)
+from pypy.jit.metainterp.optimizeopt.test.test_util import (
+ LLtypeMixin, BaseTest, FakeMetaInterpStaticData)
from pypy.jit.metainterp.test.test_compile import FakeLogger
import pypy.jit.metainterp.optimizeopt.optimizer as optimizeopt
import pypy.jit.metainterp.optimizeopt.virtualize as virtualize
from pypy.jit.metainterp.optimize import InvalidLoop
from pypy.jit.metainterp.history import AbstractDescr, ConstInt, BoxInt
-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.metainterp.optimizeopt.util import args_dict
-from pypy.config.pypyoption import get_pypy_config
-
-class Fake(object):
- failargs_limit = 1000
- storedebug = None
-
-
-class FakeMetaInterpStaticData(object):
-
- def __init__(self, cpu):
- self.cpu = cpu
- self.profiler = EmptyProfiler()
- self.options = Fake()
- self.globaldata = Fake()
- self.config = get_pypy_config(translating=True)
- self.config.translation.jit_ffi = True
def test_store_final_boxes_in_guard():
@@ -133,27 +114,15 @@
enable_opts = "intbounds:rewrite:virtualize:string:heap"
def optimize_loop(self, ops, optops, call_pure_results=None):
- from pypy.jit.metainterp.optimizeopt import optimize_loop_1
loop = self.parse(ops)
- #
- self.loop = loop
- loop.call_pure_results = args_dict()
- if call_pure_results is not None:
- for k, v in call_pure_results.items():
- loop.call_pure_results[list(k)] = v
- metainterp_sd = FakeMetaInterpStaticData(self.cpu)
- if hasattr(self, 'vrefinfo'):
- metainterp_sd.virtualref_info = self.vrefinfo
- if hasattr(self, 'callinfocollection'):
- metainterp_sd.callinfocollection = self.callinfocollection
- #
- optimize_loop_1(metainterp_sd, loop, self.enable_opts)
expected = self.parse(optops)
+ self._do_optimize_loop(loop, call_pure_results)
print '\n'.join([str(o) for o in loop.operations])
self.assert_equal(loop, expected)
+
class BaseTestOptimizeBasic(BaseTestBasic):
def test_simple(self):
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
@@ -54,45 +54,35 @@
# ____________________________________________________________
+class FakeDescr(compile.ResumeGuardDescr):
+ class rd_snapshot:
+ class prev:
+ prev = None
+ boxes = []
+ boxes = []
+ def clone_if_mutable(self):
+ return self
+
class BaseTestOptimizeOpt(BaseTest):
+ enable_opts = "intbounds:rewrite:virtualize:string:heap:unroll"
+
def optimize_loop(self, ops, expected, expected_preamble=None,
call_pure_results=None):
loop = self.parse(ops)
- self.loop = loop
-
if expected != "crash!":
expected = self.parse(expected)
if expected_preamble:
expected_preamble = self.parse(expected_preamble)
- #
-
- loop.call_pure_results = args_dict()
- if call_pure_results is not None:
- for k, v in call_pure_results.items():
- loop.call_pure_results[list(k)] = v
+
loop.preamble = TreeLoop('preamble')
loop.preamble.inputargs = loop.inputargs
loop.preamble.token = LoopToken()
- metainterp_sd = FakeMetaInterpStaticData(self.cpu)
- if hasattr(self, 'vrefinfo'):
- metainterp_sd.virtualref_info = self.vrefinfo
- if hasattr(self, 'callinfocollection'):
- metainterp_sd.callinfocollection = self.callinfocollection
-
- class FakeDescr(compile.ResumeGuardDescr):
- class rd_snapshot:
- class prev:
- prev = None
- boxes = []
- boxes = []
- def clone_if_mutable(self):
- return self
loop.preamble.start_resumedescr = FakeDescr()
- optimize_loop_1(metainterp_sd, loop, ALL_OPTS_DICT)
#
-
+ self._do_optimize_loop(loop, call_pure_results)
+ #
print
print loop.preamble.inputargs
print '\n'.join([str(o) for o in loop.preamble.operations])
@@ -100,13 +90,11 @@
print loop.inputargs
print '\n'.join([str(o) for o in loop.operations])
print
-
assert expected != "crash!", "should have raised an exception"
self.assert_equal(loop, expected)
if expected_preamble:
self.assert_equal(loop.preamble, expected_preamble,
text_right='expected preamble')
-
return loop
class OptimizeOptTest(BaseTestOptimizeOpt):
diff --git a/pypy/jit/metainterp/optimizeopt/test/test_util.py b/pypy/jit/metainterp/optimizeopt/test/test_util.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_util.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_util.py
@@ -16,6 +16,8 @@
from pypy.jit.tool.oparser import parse, pure_parse
from pypy.jit.metainterp.quasiimmut import QuasiImmutDescr
from pypy.jit.metainterp import compile, resume, history
+from pypy.jit.metainterp.jitprof import EmptyProfiler
+from pypy.config.pypyoption import get_pypy_config
def test_sort_descrs():
class PseudoDescr(AbstractDescr):
@@ -299,6 +301,23 @@
# ____________________________________________________________
+
+class Fake(object):
+ failargs_limit = 1000
+ storedebug = None
+
+
+class FakeMetaInterpStaticData(object):
+
+ def __init__(self, cpu):
+ self.cpu = cpu
+ self.profiler = EmptyProfiler()
+ self.options = Fake()
+ self.globaldata = Fake()
+ self.config = get_pypy_config(translating=True)
+ self.config.translation.jit_ffi = True
+
+
class Storage(compile.ResumeGuardDescr):
"for tests."
def __init__(self, metainterp_sd=None, original_greenkey=None):
@@ -343,5 +362,22 @@
assert equaloplists(optimized.operations,
expected.operations, False, remap, text_right)
+ def _do_optimize_loop(self, loop, call_pure_results):
+ from pypy.jit.metainterp.optimizeopt import optimize_loop_1
+ from pypy.jit.metainterp.optimizeopt.util import args_dict
+
+ self.loop = loop
+ loop.call_pure_results = args_dict()
+ if call_pure_results is not None:
+ for k, v in call_pure_results.items():
+ loop.call_pure_results[list(k)] = v
+ metainterp_sd = FakeMetaInterpStaticData(self.cpu)
+ if hasattr(self, 'vrefinfo'):
+ metainterp_sd.virtualref_info = self.vrefinfo
+ if hasattr(self, 'callinfocollection'):
+ metainterp_sd.callinfocollection = self.callinfocollection
+ #
+ optimize_loop_1(metainterp_sd, loop, self.enable_opts)
+
# ____________________________________________________________
More information about the pypy-commit
mailing list