[pypy-commit] pypy jit-short_from_state: dissabled "trace some more on bad loop"-feature for now
hakanardo
noreply at buildbot.pypy.org
Mon Jul 11 12:57:23 CEST 2011
Author: Hakan Ardo <hakan at debian.org>
Branch: jit-short_from_state
Changeset: r45456:d9ef2acf9e1d
Date: 2011-07-11 12:54 +0200
http://bitbucket.org/pypy/pypy/changeset/d9ef2acf9e1d/
Log: dissabled "trace some more on bad loop"-feature for now
diff --git a/pypy/jit/metainterp/pyjitpl.py b/pypy/jit/metainterp/pyjitpl.py
--- a/pypy/jit/metainterp/pyjitpl.py
+++ b/pypy/jit/metainterp/pyjitpl.py
@@ -15,7 +15,7 @@
from pypy.jit.metainterp.jitprof import EmptyProfiler
from pypy.jit.metainterp.jitprof import GUARDS, RECORDED_OPS, ABORT_ESCAPE
from pypy.jit.metainterp.jitprof import ABORT_TOO_LONG, ABORT_BRIDGE, \
- ABORT_FORCE_QUASIIMMUT
+ ABORT_FORCE_QUASIIMMUT, ABORT_BAD_LOOP
from pypy.jit.metainterp.jitexc import JitException, get_llexception
from pypy.rlib.objectmodel import specialize
from pypy.jit.codewriter.jitcode import JitCode, SwitchDictDescr
@@ -1847,9 +1847,9 @@
else:
self.compile(original_boxes, live_arg_boxes, start, resumedescr)
# creation of the loop was cancelled!
- self.staticdata.log('cancelled, tracing more...')
- #self.staticdata.log('cancelled, stopping tracing')
- #raise SwitchToBlackhole(ABORT_BAD_LOOP)
+ #self.staticdata.log('cancelled, tracing more...')
+ self.staticdata.log('cancelled, stopping tracing')
+ raise SwitchToBlackhole(ABORT_BAD_LOOP)
# Otherwise, no loop found so far, so continue tracing.
start = len(self.history.operations)
diff --git a/pypy/jit/tl/pypyjit_demo.py b/pypy/jit/tl/pypyjit_demo.py
--- a/pypy/jit/tl/pypyjit_demo.py
+++ b/pypy/jit/tl/pypyjit_demo.py
@@ -1,9 +1,47 @@
+def fannkuch(n):
+ count = range(1, n+1)
+ max_flips = 0
+ m = n-1
+ r = n
+ check = 0
+ perm1 = range(n)
+ perm = range(n)
+ perm1_ins = perm1.insert
+ perm1_pop = perm1.pop
+
+ while 1:
+ if check < 30:
+ #print "".join(str(i+1) for i in perm1)
+ check += 1
+
+ while r != 1:
+ count[r-1] = r
+ r -= 1
+
+ if perm1[0] != 0 and perm1[m] != m:
+ perm = perm1[:]
+ flips_count = 0
+ k = perm[0]
+ while k:
+ perm[:k+1] = perm[k::-1]
+ flips_count += 1
+ k = perm[0]
+
+ if flips_count > max_flips:
+ max_flips = flips_count
+
+ while r != n:
+ perm1_ins(r, perm1_pop(0))
+ count[r] -= 1
+ if count[r] > 0:
+ break
+ r += 1
+ else:
+ return max_flips
+
try:
- import numpy
- a = numpy.array(range(10))
- b = a + a + a
- print b[3]
+ fannkuch(9)
except Exception, e:
print "Exception: ", type(e)
More information about the pypy-commit
mailing list