[pypy-svn] pypy default: merge enable-opts. it fails test_zrpy_gc in backend/x86 for not very good
fijal
commits-noreply at bitbucket.org
Mon Mar 14 04:55:25 CET 2011
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch:
Changeset: r42594:de39afd35f4b
Date: 2011-03-13 23:54 -0400
http://bitbucket.org/pypy/pypy/changeset/de39afd35f4b/
Log: merge enable-opts. it fails test_zrpy_gc in backend/x86 for not very
good reasons, but we need this on other branches to debug more
pressing things.
diff --git a/pypy/jit/metainterp/test/test_optimizeopt.py b/pypy/jit/metainterp/test/test_optimizeopt.py
--- a/pypy/jit/metainterp/test/test_optimizeopt.py
+++ b/pypy/jit/metainterp/test/test_optimizeopt.py
@@ -5,7 +5,7 @@
BaseTest)
import pypy.jit.metainterp.optimizeopt.optimizer as optimizeopt
import pypy.jit.metainterp.optimizeopt.virtualize as virtualize
-from pypy.jit.metainterp.optimizeopt import optimize_loop_1
+from pypy.jit.metainterp.optimizeopt import optimize_loop_1, ALL_OPTS_DICT
from pypy.jit.metainterp.optimizeutil import InvalidLoop
from pypy.jit.metainterp.history import AbstractDescr, ConstInt, BoxInt
from pypy.jit.metainterp.history import TreeLoop, LoopToken
@@ -188,7 +188,7 @@
def clone_if_mutable(self):
return self
loop.preamble.start_resumedescr = FakeDescr()
- optimize_loop_1(metainterp_sd, loop)
+ optimize_loop_1(metainterp_sd, loop, ALL_OPTS_DICT)
#
print
diff --git a/pypy/jit/metainterp/test/test_loop.py b/pypy/jit/metainterp/test/test_loop.py
--- a/pypy/jit/metainterp/test/test_loop.py
+++ b/pypy/jit/metainterp/test/test_loop.py
@@ -1,5 +1,5 @@
import py
-from pypy.rlib.jit import JitDriver, OPTIMIZER_SIMPLE, OPTIMIZER_FULL
+from pypy.rlib.jit import JitDriver
from pypy.rlib.objectmodel import compute_hash
from pypy.jit.metainterp.warmspot import ll_meta_interp, get_stats
from pypy.jit.metainterp.test.test_basic import LLJitMixin, OOJitMixin
@@ -8,14 +8,15 @@
from pypy.jit.metainterp import history
class LoopTest(object):
- optimizer = OPTIMIZER_SIMPLE
+ enable_opts = ''
+
automatic_promotion_result = {
'int_add' : 6, 'int_gt' : 1, 'guard_false' : 1, 'jump' : 1,
'guard_value' : 3
}
def meta_interp(self, f, args, policy=None):
- return ll_meta_interp(f, args, optimizer=self.optimizer,
+ return ll_meta_interp(f, args, enable_opts=self.enable_opts,
policy=policy,
CPUClass=self.CPUClass,
type_system=self.type_system)
@@ -58,7 +59,7 @@
res = self.meta_interp(f, [6, 13])
assert res == f(6, 13)
self.check_loop_count(1)
- if self.optimizer == OPTIMIZER_FULL:
+ if self.enable_opts:
self.check_loops(getfield_gc = 0, setfield_gc = 1)
def test_loop_with_two_paths(self):
@@ -87,7 +88,7 @@
return res * 2
res = self.meta_interp(f, [6, 33], policy=StopAtXPolicy(l))
assert res == f(6, 33)
- if self.optimizer == OPTIMIZER_FULL:
+ if self.enable_opts:
self.check_loop_count(3)
else:
self.check_loop_count(2)
@@ -105,7 +106,7 @@
pattern >>= 1
return 42
self.meta_interp(f, [0xF0F0F0])
- if self.optimizer == OPTIMIZER_FULL:
+ if self.enable_opts:
self.check_loop_count(3)
else:
self.check_loop_count(2)
@@ -595,7 +596,7 @@
res = self.meta_interp(f, [100, 5], policy=StopAtXPolicy(externfn))
assert res == expected
- if self.optimizer == OPTIMIZER_FULL:
+ if self.enable_opts:
self.check_loop_count(2)
self.check_tree_loop_count(2) # 1 loop, 1 bridge from interp
else:
@@ -799,7 +800,6 @@
res = self.meta_interp(f, [200])
-
class TestOOtype(LoopTest, OOJitMixin):
pass
diff --git a/pypy/jit/metainterp/test/test_send_simple.py b/pypy/jit/metainterp/test/test_send_simple.py
deleted file mode 100644
--- a/pypy/jit/metainterp/test/test_send_simple.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# xxx mostly pointless
-
-from pypy.jit.metainterp.test import test_loop, test_send
-from pypy.jit.metainterp.warmspot import ll_meta_interp
-from pypy.rlib.jit import OPTIMIZER_SIMPLE
-from pypy.jit.metainterp.test.test_basic import LLJitMixin, OOJitMixin
-
-class LoopDummyTest(test_send.SendTests):
- optimizer=OPTIMIZER_SIMPLE
- def meta_interp(self, func, args, **kwds):
- return ll_meta_interp(func, args, optimizer=self.optimizer,
- CPUClass=self.CPUClass,
- type_system=self.type_system,
- **kwds)
-
- def check_loops(self, *args, **kwds):
- pass
-
- def check_loop_count(self, count):
- pass
-
- def check_jumps(self, maxcount):
- pass
-
-class TestLLtype(LoopDummyTest, LLJitMixin):
- pass
-
-class TestOOtype(LoopDummyTest, OOJitMixin):
- pass
diff --git a/pypy/jit/metainterp/test/test_send_nounroll.py b/pypy/jit/metainterp/test/test_send_nounroll.py
deleted file mode 100644
--- a/pypy/jit/metainterp/test/test_send_nounroll.py
+++ /dev/null
@@ -1,30 +0,0 @@
-
-from pypy.jit.metainterp.test import test_loop, test_send
-from pypy.jit.metainterp.warmspot import ll_meta_interp
-from pypy.rlib.jit import OPTIMIZER_NO_UNROLL
-from pypy.jit.metainterp.test.test_basic import LLJitMixin, OOJitMixin
-
-class LoopNoPSpecTest(test_send.SendTests):
- optimizer=OPTIMIZER_NO_UNROLL
-
- def meta_interp(self, func, args, **kwds):
- return ll_meta_interp(func, args, optimizer=self.optimizer,
- CPUClass=self.CPUClass,
- type_system=self.type_system,
- **kwds)
-
- def check_loops(self, *args, **kwds):
- pass
-
- def check_loop_count(self, count):
- pass
-
- def check_jumps(self, maxcount):
- pass
-
-
-class TestLLtype(LoopNoPSpecTest, LLJitMixin):
- pass
-
-class TestOOtype(LoopNoPSpecTest, OOJitMixin):
- pass
diff --git a/pypy/jit/metainterp/nounroll_optimize.py b/pypy/jit/metainterp/nounroll_optimize.py
deleted file mode 100644
--- a/pypy/jit/metainterp/nounroll_optimize.py
+++ /dev/null
@@ -1,36 +0,0 @@
-
-from pypy.rlib.debug import debug_start, debug_stop
-from pypy.jit.metainterp.optimizeopt import optimize_loop_1, optimize_bridge_1
-
-def optimize_loop(metainterp_sd, old_loop_tokens, loop):
- debug_start("jit-optimize")
- try:
- return _optimize_loop(metainterp_sd, old_loop_tokens, loop)
- finally:
- debug_stop("jit-optimize")
-
-def _optimize_loop(metainterp_sd, old_loop_tokens, loop):
- cpu = metainterp_sd.cpu
- metainterp_sd.logger_noopt.log_loop(loop.inputargs, loop.operations)
- if old_loop_tokens:
- return old_loop_tokens[0]
- optimize_loop_1(metainterp_sd, loop, False)
- return None
-
-def optimize_bridge(metainterp_sd, old_loop_tokens, bridge,
- inline_short_preamble, retraced=False):
- debug_start("jit-optimize")
- try:
- return _optimize_bridge(metainterp_sd, old_loop_tokens, bridge)
- finally:
- debug_stop("jit-optimize")
-
-def _optimize_bridge(metainterp_sd, old_loop_tokens, bridge):
- cpu = metainterp_sd.cpu
- metainterp_sd.logger_noopt.log_loop(bridge.inputargs, bridge.operations)
- if old_loop_tokens:
- old_loop_token = old_loop_tokens[0]
- bridge.operations[-1].setdescr(old_loop_token) # patch jump target
- optimize_bridge_1(metainterp_sd, bridge)
- return old_loop_token
- return None
More information about the Pypy-commit
mailing list