Author: Hakan Ardo <ha...@debian.org> Branch: jit-targets Changeset: r48936:5a5c19100cf4 Date: 2011-11-08 14:09 +0100 http://bitbucket.org/pypy/pypy/changeset/5a5c19100cf4/
Log: support max_retrace_guards 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 @@ -322,6 +322,10 @@ raise InvalidLoop debug_stop('jit-log-virtualstate') + maxguards = self.optimizer.metainterp_sd.warmrunnerdesc.memory_manager.max_retrace_guards + if self.optimizer.emitted_guards > maxguards: + jumpop.getdescr().targeting_jitcell_token.retraced_count = sys.maxint + def finilize_short_preamble(self, start_label): short = self.short assert short[-1].getopnum() == rop.JUMP diff --git a/pypy/jit/metainterp/test/test_ajit.py b/pypy/jit/metainterp/test/test_ajit.py --- a/pypy/jit/metainterp/test/test_ajit.py +++ b/pypy/jit/metainterp/test/test_ajit.py @@ -2599,10 +2599,10 @@ return sa assert self.meta_interp(f, [20, 2]) == f(20, 2) self.check_jitcell_token_count(1) - assert len(get_stats().jitcell_tokens.pop().target_tokens) == 4 + assert len(list(get_stats().jitcell_tokens)[0].target_tokens) == 4 assert self.meta_interp(f, [20, 3]) == f(20, 3) self.check_jitcell_token_count(1) - assert len(get_stats().jitcell_tokens.pop().target_tokens) == 5 + assert len(list(get_stats().jitcell_tokens)[0].target_tokens) == 5 def test_max_retrace_guards(self): myjitdriver = JitDriver(greens = [], reds = ['n', 'i', 'sa', 'a']) @@ -2619,10 +2619,11 @@ i += 1 return sa assert self.meta_interp(f, [20, 1]) == f(20, 1) - self.check_jitcell_token_count(2) + self.check_jitcell_token_count(1) + assert len(list(get_stats().jitcell_tokens)[0].target_tokens) == 2 assert self.meta_interp(f, [20, 10]) == f(20, 10) - self.check_jitcell_token_count(5) - + self.check_jitcell_token_count(1) + assert len(list(get_stats().jitcell_tokens)[0].target_tokens) == 5 def test_retrace_limit_with_extra_guards(self): myjitdriver = JitDriver(greens = [], reds = ['n', 'i', 'sa', 'a', _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit