[pypy-svn] pypy jit-virtual_state: dont catch more than intended
hakanardo
commits-noreply at bitbucket.org
Mon Feb 14 20:57:36 CET 2011
Author: Hakan Ardo <hakan at debian.org>
Branch: jit-virtual_state
Changeset: r41926:7882fb12b3d9
Date: 2011-02-14 20:57 +0100
http://bitbucket.org/pypy/pypy/changeset/7882fb12b3d9/
Log: dont catch more than intended
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
@@ -664,6 +664,11 @@
try:
self.inline(sh.operations, sh.inputargs,
op.getarglist())
+ except InvalidLoop:
+ debug_print("Inlining failed unexpectedly",
+ "jumping to preamble instead")
+ self.emit_operation(op)
+ else:
jumpop = self.optimizer.newoperations.pop()
assert jumpop.getopnum() == rop.JUMP
for guard in extra_guards:
@@ -672,10 +677,6 @@
guard.setdescr(descr)
self.emit_operation(guard)
self.optimizer.newoperations.append(jumpop)
- except InvalidLoop:
- debug_print("Inlining failed unexpectedly",
- "jumping to preamble instead")
- self.emit_operation(op)
return
retraced_count = len(short)
if descr.failed_states:
More information about the Pypy-commit
mailing list