Esempio n. 1
0
    def _do_optimize_loop(self, loop, call_pure_results):
        from pypy.jit.metainterp.optimizeopt.unroll import optimize_unroll
        from pypy.jit.metainterp.optimizeopt.util import args_dict
        from pypy.jit.metainterp.optimizeopt.pure import OptPure

        self.loop = loop
        loop.call_pure_results = args_dict()
        metainterp_sd = FakeMetaInterpStaticData(self.cpu)
        optimize_unroll(metainterp_sd, loop, [OptRenameStrlen(), OptPure()], True)
Esempio n. 2
0
def optimize_loop_1(metainterp_sd, loop, enable_opts, inline_short_preamble=True, retraced=False, bridge=False):
    """Optimize loop.operations to remove internal overheadish operations.
    """

    optimizations, unroll = build_opt_chain(metainterp_sd, enable_opts, inline_short_preamble, retraced)
    if unroll:
        optimize_unroll(metainterp_sd, loop, optimizations)
    else:
        optimizer = Optimizer(metainterp_sd, loop, optimizations, bridge)
        optimizer.propagate_all_forward()
Esempio n. 3
0
def optimize_trace(metainterp_sd, loop, enable_opts, inline_short_preamble=True):
    """Optimize loop.operations to remove internal overheadish operations.
    """

    debug_start("jit-optimize")
    try:
        loop.logops = metainterp_sd.logger_noopt.log_loop(loop.inputargs,
                                                          loop.operations)
        optimizations, unroll = build_opt_chain(metainterp_sd, enable_opts)
        if unroll:
            optimize_unroll(metainterp_sd, loop, optimizations, inline_short_preamble)
        else:
            optimizer = Optimizer(metainterp_sd, loop, optimizations)
            optimizer.propagate_all_forward()
    finally:
        debug_stop("jit-optimize")