[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