示例#1
0
    def _do_optimize_loop(self, loop, call_pure_results):
        from rpython.jit.metainterp.optimizeopt.unroll import optimize_unroll
        from rpython.jit.metainterp.optimizeopt.util import args_dict
        from rpython.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, [OptRewrite(), OptRenameStrlen(), OptHeap(), OptPure()], True)
示例#2
0
文件: __init__.py 项目: yuyichao/pypy
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")
示例#3
0
    def _do_optimize_loop(self,
                          loop,
                          call_pure_results,
                          state,
                          export_state=False):
        from rpython.jit.metainterp.optimizeopt.unroll import optimize_unroll
        from rpython.jit.metainterp.optimizeopt.util import args_dict
        from rpython.jit.metainterp.optimizeopt.pure import OptPure

        self.loop = loop
        loop.call_pure_results = args_dict()
        metainterp_sd = FakeMetaInterpStaticData(self.cpu)
        return optimize_unroll(
            metainterp_sd, loop,
            [OptRewrite(),
             OptRenameStrlen(),
             OptHeap(), OptPure()], True, state, export_state)
示例#4
0
def optimize_trace(metainterp_sd, jitdriver_sd, loop, enable_opts,
                   inline_short_preamble=True, start_state=None,
                   export_state=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:
            return optimize_unroll(metainterp_sd, jitdriver_sd, loop,
                                   optimizations,
                                   inline_short_preamble, start_state,
                                   export_state)
        else:
            optimizer = Optimizer(metainterp_sd, jitdriver_sd, loop,
                                  optimizations)
            optimizer.propagate_all_forward()
    finally:
        debug_stop("jit-optimize")