[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