[pypy-commit] pypy fix-trace-too-long-heuristic: change the heuristic a bit

fijal noreply at buildbot.pypy.org
Thu Nov 19 10:52:44 EST 2015


Author: fijal
Branch: fix-trace-too-long-heuristic
Changeset: r80779:543f6b24d1b0
Date: 2015-11-19 17:52 +0200
http://bitbucket.org/pypy/pypy/changeset/543f6b24d1b0/

Log:	change the heuristic a bit

diff --git a/rpython/jit/codewriter/jitcode.py b/rpython/jit/codewriter/jitcode.py
--- a/rpython/jit/codewriter/jitcode.py
+++ b/rpython/jit/codewriter/jitcode.py
@@ -7,7 +7,7 @@
     _empty_i = []
     _empty_r = []
     _empty_f = []
-
+    
     def __init__(self, name, fnaddr=None, calldescr=None, called_from=None):
         self.name = name
         self.fnaddr = fnaddr
diff --git a/rpython/jit/metainterp/pyjitpl.py b/rpython/jit/metainterp/pyjitpl.py
--- a/rpython/jit/metainterp/pyjitpl.py
+++ b/rpython/jit/metainterp/pyjitpl.py
@@ -1903,7 +1903,9 @@
         raise ChangeFrame
 
     def is_main_jitcode(self, jitcode):
-        return self.jitdriver_sd is not None and jitcode is self.jitdriver_sd.mainjitcode
+        return (jitcode.jitdriver_sd is not None and
+                jitcode.jitdriver_sd.jitdriver.is_main_jitdriver)
+        #return self.jitdriver_sd is not None and jitcode is self.jitdriver_sd.mainjitcode
 
     def newframe(self, jitcode, greenkey=None):
         if jitcode.jitdriver_sd:
diff --git a/rpython/jit/metainterp/test/test_recursive.py b/rpython/jit/metainterp/test/test_recursive.py
--- a/rpython/jit/metainterp/test/test_recursive.py
+++ b/rpython/jit/metainterp/test/test_recursive.py
@@ -541,7 +541,8 @@
             code = hlstr(code)
             return "%s %d %s" % (code, pc, code[pc])
         myjitdriver = JitDriver(greens=['pc', 'code'], reds=['n'],
-                                get_printable_location=p)
+                                get_printable_location=p,
+                                is_main_jitdriver=True)
 
         def f(code, n):
             pc = 0
diff --git a/rpython/rlib/jit.py b/rpython/rlib/jit.py
--- a/rpython/rlib/jit.py
+++ b/rpython/rlib/jit.py
@@ -604,7 +604,7 @@
                  get_printable_location=None, confirm_enter_jit=None,
                  can_never_inline=None, should_unroll_one_iteration=None,
                  name='jitdriver', check_untranslated=True, vectorize=False,
-                 get_unique_id=None):
+                 get_unique_id=None, is_main_jitdriver=False):
         if greens is not None:
             self.greens = greens
         self.name = name
@@ -643,6 +643,7 @@
         self.can_never_inline = can_never_inline
         self.should_unroll_one_iteration = should_unroll_one_iteration
         self.check_untranslated = check_untranslated
+        self.is_main_jitdriver = is_main_jitdriver
         self.vec = vectorize
 
     def _freeze_(self):


More information about the pypy-commit mailing list