[pypy-svn] pypy jit-short-preamble: support constants in snapshot boxes

hakanardo commits-noreply at bitbucket.org
Fri Jan 21 15:19:19 CET 2011


Author: Hakan Ardo <hakan at debian.org>
Branch: jit-short-preamble
Changeset: r41138:65de3cb7f04b
Date: 2011-01-21 14:13 +0100
http://bitbucket.org/pypy/pypy/changeset/65de3cb7f04b/

Log:	support constants in snapshot boxes

diff --git a/pypy/jit/metainterp/optimizeopt/unroll.py b/pypy/jit/metainterp/optimizeopt/unroll.py
--- a/pypy/jit/metainterp/optimizeopt/unroll.py
+++ b/pypy/jit/metainterp/optimizeopt/unroll.py
@@ -169,7 +169,9 @@
             start_resumedescr = loop.preamble.token.start_resumedescr.clone_if_mutable()
             snapshot_args = start_resumedescr.rd_snapshot.prev.boxes 
             for a in snapshot_args:
-                new_snapshot_args.append(loop.preamble.inputargs[jump_args.index(a)])
+                if not isinstance(a, Const):
+                    a = loop.preamble.inputargs[jump_args.index(a)]
+                new_snapshot_args.append(a)
             start_resumedescr.rd_snapshot.prev.boxes = new_snapshot_args
 
             short = self.create_short_preamble(loop.preamble, loop)

diff --git a/pypy/jit/metainterp/compile.py b/pypy/jit/metainterp/compile.py
--- a/pypy/jit/metainterp/compile.py
+++ b/pypy/jit/metainterp/compile.py
@@ -400,7 +400,7 @@
         self.copy_all_attrbutes_into(res)
         return res
 
-    def handle_fail(self, metainterp_sd, jitdriver_sd):
+    def not_handle_fail(self, metainterp_sd, jitdriver_sd):
         if True or self.must_compile(metainterp_sd, jitdriver_sd):
             return self._trace_and_compile_from_bridge(metainterp_sd,
                                                        jitdriver_sd)

diff --git a/pypy/jit/metainterp/nounroll_optimize.py b/pypy/jit/metainterp/nounroll_optimize.py
--- a/pypy/jit/metainterp/nounroll_optimize.py
+++ b/pypy/jit/metainterp/nounroll_optimize.py
@@ -17,7 +17,7 @@
     optimize_loop_1(metainterp_sd, loop, False)
     return None
 
-def optimize_bridge(metainterp_sd, old_loop_tokens, bridge):
+def optimize_bridge(metainterp_sd, old_loop_tokens, bridge, inline_short_preamble):
     debug_start("jit-optimize")
     try:
         return _optimize_bridge(metainterp_sd, old_loop_tokens, bridge)

diff --git a/pypy/jit/metainterp/simple_optimize.py b/pypy/jit/metainterp/simple_optimize.py
--- a/pypy/jit/metainterp/simple_optimize.py
+++ b/pypy/jit/metainterp/simple_optimize.py
@@ -47,7 +47,7 @@
             jumpop.setdescr(loop.token)
         return None
 
-def optimize_bridge(metainterp_sd, old_loops, loop):
+def optimize_bridge(metainterp_sd, old_loops, loop, inline_short_preamble):
     optimize_loop(metainterp_sd, [], loop)
     jumpop = loop.operations[-1]
     if jumpop.getopnum() == rop.JUMP:


More information about the Pypy-commit mailing list