[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