Author: Maciej Fijalkowski <fij...@gmail.com> Branch: optresult-unroll Changeset: r79192:a9e25b78318c Date: 2015-08-24 12:03 +0200 http://bitbucket.org/pypy/pypy/changeset/a9e25b78318c/
Log: a bit of work on preamble, thinking required now diff --git a/rpython/jit/metainterp/optimizeopt/unroll.py b/rpython/jit/metainterp/optimizeopt/unroll.py --- a/rpython/jit/metainterp/optimizeopt/unroll.py +++ b/rpython/jit/metainterp/optimizeopt/unroll.py @@ -103,9 +103,7 @@ def optimize_peeled_loop(self, start_label, end_jump, ops, state, call_pure_results): self._check_no_forwarding([[start_label, end_jump], ops]) - label_args = state.virtual_state.make_inputargs( - start_label.getarglist(), self.optimizer) - self.import_state(start_label, state, label_args) + label_args = self.import_state(start_label, state) self.potential_extra_ops = {} self.optimizer.init_inparg_dict_from(label_args) info, _ = self.optimizer.propagate_all_forward( @@ -280,7 +278,7 @@ short_boxes, renamed_inputargs, short_inputargs) - def import_state(self, targetop, exported_state, label_args): + def import_state(self, targetop, exported_state): # the mapping between input args (from old label) and what we need # to actually emit. Update the info assert (len(exported_state.next_iteration_args) == @@ -295,6 +293,9 @@ exported_state.exported_infos) # import the optimizer state, starting from boxes that can be produced # by short preamble + label_args = exported_state.virtual_state.make_inputargs( + targetop.getarglist(), self.optimizer) + self.short_preamble_producer = ShortPreambleBuilder( label_args, exported_state.short_boxes, exported_state.short_inputargs, exported_state.exported_infos, @@ -303,6 +304,8 @@ for produced_op in exported_state.short_boxes: produced_op.produce_op(self, exported_state.exported_infos) + return label_args + def is_call_pure_with_exception(self, op): if op.is_call_pure(): effectinfo = op.getdescr().get_extra_info() _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit