Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r44937:17cc5ab72684 Date: 2011-06-14 15:41 +0200 http://bitbucket.org/pypy/pypy/changeset/17cc5ab72684/
Log: merge heads 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 @@ -14,7 +14,7 @@ from pypy.jit.metainterp.history import BoxPtr, BoxObj, BoxFloat, Const from pypy.jit.metainterp import history from pypy.jit.metainterp.typesystem import llhelper, oohelper -from pypy.jit.metainterp.optimizeopt.util import InvalidLoop +from pypy.jit.metainterp.optimize import InvalidLoop from pypy.jit.metainterp.resume import NUMBERING from pypy.jit.codewriter import heaptracker, longlong diff --git a/pypy/jit/metainterp/optimize.py b/pypy/jit/metainterp/optimize.py --- a/pypy/jit/metainterp/optimize.py +++ b/pypy/jit/metainterp/optimize.py @@ -1,9 +1,20 @@ from pypy.rlib.debug import debug_start, debug_stop +from pypy.jit.metainterp.jitexc import JitException + +class InvalidLoop(JitException): + """Raised when the optimize*.py detect that the loop that + we are trying to build cannot possibly make sense as a + long-running loop (e.g. it cannot run 2 complete iterations).""" + +class RetraceLoop(JitException): + """ Raised when inlining a short preamble resulted in an + InvalidLoop. This means the optimized loop is too specialized + to be useful here, so we trace it again and produced a second + copy specialized in some different way. + """ # ____________________________________________________________ -from pypy.jit.metainterp.optimizeopt import optimize_loop_1, optimize_bridge_1 - def optimize_loop(metainterp_sd, old_loop_tokens, loop, enable_opts): debug_start("jit-optimize") try: @@ -13,6 +24,7 @@ debug_stop("jit-optimize") def _optimize_loop(metainterp_sd, old_loop_tokens, loop, enable_opts): + from pypy.jit.metainterp.optimizeopt import optimize_loop_1 cpu = metainterp_sd.cpu loop.logops = metainterp_sd.logger_noopt.log_loop(loop.inputargs, loop.operations) @@ -36,6 +48,7 @@ def _optimize_bridge(metainterp_sd, old_loop_tokens, bridge, enable_opts, inline_short_preamble, retraced=False): + from pypy.jit.metainterp.optimizeopt import optimize_bridge_1 cpu = metainterp_sd.cpu bridge.logops = metainterp_sd.logger_noopt.log_loop(bridge.inputargs, bridge.operations) diff --git a/pypy/jit/metainterp/optimizeopt/optimizer.py b/pypy/jit/metainterp/optimizeopt/optimizer.py --- a/pypy/jit/metainterp/optimizeopt/optimizer.py +++ b/pypy/jit/metainterp/optimizeopt/optimizer.py @@ -5,8 +5,8 @@ from pypy.jit.metainterp import jitprof from pypy.jit.metainterp.executor import execute_nonspec from pypy.jit.metainterp.optimizeopt.util import _findall, sort_descrs -from pypy.jit.metainterp.optimizeopt.util import descrlist_dict -from pypy.jit.metainterp.optimizeopt.util import InvalidLoop, args_dict +from pypy.jit.metainterp.optimizeopt.util import descrlist_dict, args_dict +from pypy.jit.metainterp.optimize import InvalidLoop from pypy.jit.metainterp import resume, compile from pypy.jit.metainterp.typesystem import llhelper, oohelper from pypy.rpython.lltypesystem import lltype diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py --- a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py +++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py @@ -6,7 +6,7 @@ from pypy.jit.metainterp.test.test_compile import FakeLogger import pypy.jit.metainterp.optimizeopt.optimizer as optimizeopt import pypy.jit.metainterp.optimizeopt.virtualize as virtualize -from pypy.jit.metainterp.optimizeopt.util import InvalidLoop +from pypy.jit.metainterp.optimize import InvalidLoop from pypy.jit.metainterp.history import AbstractDescr, ConstInt, BoxInt from pypy.jit.metainterp.jitprof import EmptyProfiler from pypy.jit.metainterp import executor, compile, resume, history diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py b/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py --- a/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py +++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py @@ -6,7 +6,7 @@ import pypy.jit.metainterp.optimizeopt.optimizer as optimizeopt import pypy.jit.metainterp.optimizeopt.virtualize as virtualize from pypy.jit.metainterp.optimizeopt import optimize_loop_1, ALL_OPTS_DICT, build_opt_chain -from pypy.jit.metainterp.optimizeopt.util import InvalidLoop +from pypy.jit.metainterp.optimize import InvalidLoop from pypy.jit.metainterp.history import AbstractDescr, ConstInt, BoxInt from pypy.jit.metainterp.history import TreeLoop, LoopToken from pypy.jit.metainterp.jitprof import EmptyProfiler @@ -134,7 +134,7 @@ assert vinfo3 is vinfo4 def test_descrlist_dict(): - from pypy.jit.metainterp import optimizeutil + from pypy.jit.metainterp.optimizeopt import util as optimizeutil h1 = optimizeutil.descrlist_hash([]) h2 = optimizeutil.descrlist_hash([LLtypeMixin.valuedescr]) h3 = optimizeutil.descrlist_hash( diff --git a/pypy/jit/metainterp/optimizeopt/test/test_util.py b/pypy/jit/metainterp/optimizeopt/test/test_util.py --- a/pypy/jit/metainterp/optimizeopt/test/test_util.py +++ b/pypy/jit/metainterp/optimizeopt/test/test_util.py @@ -9,7 +9,8 @@ from pypy.jit.metainterp.history import (BoxInt, BoxPtr, ConstInt, ConstPtr, Const, TreeLoop, BoxObj, ConstObj, AbstractDescr) -from pypy.jit.metainterp.optimizeopt.util import sort_descrs, InvalidLoop +from pypy.jit.metainterp.optimizeopt.util import sort_descrs +from pypy.jit.metainterp.optimize import InvalidLoop from pypy.jit.codewriter.effectinfo import EffectInfo from pypy.jit.codewriter.heaptracker import register_known_gctype, adr2int from pypy.jit.tool.oparser import parse 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 @@ -5,7 +5,7 @@ from pypy.jit.metainterp.resume import Snapshot from pypy.jit.metainterp.history import TreeLoop, LoopToken from pypy.rlib.debug import debug_start, debug_stop, debug_print -from pypy.jit.metainterp.optimizeopt.util import InvalidLoop, RetraceLoop +from pypy.jit.metainterp.optimize import InvalidLoop, RetraceLoop from pypy.jit.metainterp.jitexc import JitException from pypy.jit.metainterp.history import make_hashable_int from pypy.jit.codewriter.effectinfo import EffectInfo diff --git a/pypy/jit/metainterp/optimizeopt/util.py b/pypy/jit/metainterp/optimizeopt/util.py --- a/pypy/jit/metainterp/optimizeopt/util.py +++ b/pypy/jit/metainterp/optimizeopt/util.py @@ -5,18 +5,6 @@ from pypy.jit.metainterp.jitexc import JitException from pypy.rlib.debug import make_sure_not_resized -class InvalidLoop(JitException): - """Raised when the optimize*.py detect that the loop that - we are trying to build cannot possibly make sense as a - long-running loop (e.g. it cannot run 2 complete iterations).""" - -class RetraceLoop(JitException): - """ Raised when inlining a short preamble resulted in an - InvalidLoop. This means the optimized loop is too specialized - to be useful here, so we trace it again and produced a second - copy specialized in some different way. - """ - # ____________________________________________________________ # Misc. utilities 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 @@ -21,7 +21,8 @@ from pypy.rlib.objectmodel import specialize from pypy.jit.codewriter.jitcode import JitCode, SwitchDictDescr, MissingLiveness from pypy.jit.codewriter import heaptracker, longlong -from pypy.jit.metainterp.optimizeopt.util import RetraceLoop, args_dict_box, args_dict +from pypy.jit.metainterp.optimizeopt.util import args_dict_box, args_dict +from pypy.jit.metainterp.optimize import RetraceLoop # ____________________________________________________________ diff --git a/pypy/jit/metainterp/resume.py b/pypy/jit/metainterp/resume.py --- a/pypy/jit/metainterp/resume.py +++ b/pypy/jit/metainterp/resume.py @@ -10,7 +10,7 @@ from pypy.rlib.objectmodel import we_are_translated, specialize from pypy.rlib.debug import have_debug_prints, ll_assert from pypy.rlib.debug import debug_start, debug_stop, debug_print -from pypy.jit.metainterp.optimizeopt.util import InvalidLoop +from pypy.jit.metainterp.optimize import InvalidLoop # Logic to encode the chain of frames and the state of the boxes at a # guard operation, and to decode it again. This is a bit advanced, _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit