[pypy-svn] r77741 - in pypy/branch/jit-unroll-loops/pypy/jit/metainterp: . test
hakanardo at codespeak.net
hakanardo at codespeak.net
Sat Oct 9 10:08:47 CEST 2010
Author: hakanardo
Date: Sat Oct 9 10:08:45 2010
New Revision: 77741
Modified:
pypy/branch/jit-unroll-loops/pypy/jit/metainterp/compile.py
pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_basic.py
Log:
mark preamble as entry bridge and dont count it
Modified: pypy/branch/jit-unroll-loops/pypy/jit/metainterp/compile.py
==============================================================================
--- pypy/branch/jit-unroll-loops/pypy/jit/metainterp/compile.py (original)
+++ pypy/branch/jit-unroll-loops/pypy/jit/metainterp/compile.py Sat Oct 9 10:08:45 2010
@@ -85,7 +85,7 @@
loop.token.specnodes = [prebuiltNotSpecNode] * len(loop.inputargs) # FIXME
loop.preamble.token.specnodes = [prebuiltNotSpecNode] * len(loop.preamble.inputargs) # FIXME
send_loop_to_backend(metainterp_sd, loop, "loop")
- send_loop_to_backend(metainterp_sd, loop.preamble, "loop")
+ send_loop_to_backend(metainterp_sd, loop.preamble, "entry bridge")
insert_loop_token(old_loop_tokens, loop.preamble.token)
jitdriver_sd.warmstate.attach_unoptimized_bridge_from_interp(
greenkey, loop.preamble.token)
Modified: pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_basic.py
==============================================================================
--- pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_basic.py (original)
+++ pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_basic.py Sat Oct 9 10:08:45 2010
@@ -315,11 +315,10 @@
return res
res = self.meta_interp(f, [6, 7])
assert res == 252
- self.check_loop_count(2)
- self.check_loops({'guard_true': 2,
- 'int_add': 2, 'int_sub': 2, 'int_gt': 2,
- 'int_mul': 1,
- 'jump': 2})
+ self.check_loop_count(1)
+ self.check_loops({'guard_true': 1,
+ 'int_add': 1, 'int_sub': 1, 'int_gt': 1,
+ 'jump': 1})
def test_loop_invariant_mul_ovf(self):
myjitdriver = JitDriver(greens = [], reds = ['y', 'res', 'x'])
@@ -334,11 +333,11 @@
return res
res = self.meta_interp(f, [6, 7])
assert res == 308
- self.check_loop_count(2)
- self.check_loops({'guard_true': 2, 'guard_no_overflow': 1,
- 'int_add': 4, 'int_sub': 2, 'int_gt': 2,
- 'int_mul': 2, 'int_mul_ovf': 1,
- 'jump': 2})
+ self.check_loop_count(1)
+ self.check_loops({'guard_true': 1,
+ 'int_add': 2, 'int_sub': 1, 'int_gt': 1,
+ 'int_mul': 1,
+ 'jump': 1})
def test_loop_invariant_mul_bridge1(self):
myjitdriver = JitDriver(greens = [], reds = ['y', 'res', 'x'])
@@ -354,7 +353,7 @@
return res
res = self.meta_interp(f, [6, 32])
assert res == 3427
- self.check_loop_count(3)
+ self.check_loop_count(2)
def test_loop_invariant_mul_bridge_maintaining1(self):
myjitdriver = JitDriver(greens = [], reds = ['y', 'res', 'x'])
@@ -370,11 +369,11 @@
return res
res = self.meta_interp(f, [6, 32])
assert res == 1167
- self.check_loop_count(3)
- self.check_loops({'int_lt': 2, 'int_gt': 1,
- 'guard_false': 2, 'guard_true': 1,
- 'int_sub': 3, 'int_mul': 1, 'int_add': 3,
- 'jump': 3})
+ self.check_loop_count(2)
+ self.check_loops({'int_add': 1, 'int_lt': 1,
+ 'int_sub': 1, 'guard_false': 1,
+ 'jump': 1})
+
def test_loop_invariant_mul_bridge_maintaining2(self):
myjitdriver = JitDriver(greens = [], reds = ['y', 'res', 'x'])
@@ -391,11 +390,12 @@
return res
res = self.meta_interp(f, [6, 16])
assert res == 828
- self.check_loop_count(3)
- self.check_loops({'int_lt': 2, 'int_gt': 1,
- 'guard_false': 2, 'guard_true': 1,
- 'int_sub': 3, 'int_mul': 1, 'int_add': 3,
- 'jump': 3})
+ self.check_loop_count(2)
+ self.check_loops({'int_add': 1, 'int_lt': 1,
+ 'int_sub': 1, 'guard_false': 1,
+ 'jump': 1})
+
+
def test_loop_invariant_intbox(self):
myjitdriver = JitDriver(greens = [], reds = ['y', 'res', 'x'])
@@ -415,11 +415,10 @@
return res
res = self.meta_interp(f, [6, 7])
assert res == 252
- self.check_loop_count(2)
- self.check_loops({'guard_true': 2,
- 'int_add': 2, 'int_sub': 2, 'int_gt': 2,
- 'int_mul': 1, 'getfield_gc_pure': 1,
- 'jump': 2})
+ self.check_loop_count(1)
+ self.check_loops({'guard_true': 1,
+ 'int_add': 1, 'int_sub': 1, 'int_gt': 1,
+ 'jump': 1})
def test_loops_are_transient(self):
import gc, weakref
More information about the Pypy-commit
mailing list