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")
def optimize(self, metainterp_sd, jitdriver_sd, optimizations): from rpython.jit.metainterp.optimizeopt.optimizer import Optimizer opt = Optimizer(metainterp_sd, jitdriver_sd, optimizations) return opt.optimize_loop(self.trace, self.resumestorage, self.call_pure_results)