Author: Maciej Fijalkowski <fij...@gmail.com>
Branch: optresult-unroll
Changeset: r79147:e977efbc9001
Date: 2015-08-23 10:59 +0200
http://bitbucket.org/pypy/pypy/changeset/e977efbc9001/

Log:    whack at problems some more

diff --git a/rpython/jit/metainterp/optimizeopt/test/test_util.py 
b/rpython/jit/metainterp/optimizeopt/test/test_util.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_util.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_util.py
@@ -483,19 +483,17 @@
                                                 call_pure_results)
         start_state, preamble_ops = self._do_optimize_loop(preamble_data)
         preamble_data.forget_optimization_info()
-        end_label = ResOperation(rop.LABEL, start_state.end_args)
-        loop_data = compile.UnrolledLoopData(end_label, jump_op,
+        loop_data = compile.UnrolledLoopData(start_label, jump_op,
                                              ops, start_state,
                                              call_pure_results)
         loop_info, ops = self._do_optimize_loop(loop_data)
         preamble = TreeLoop('preamble')
         preamble.inputargs = start_state.renamed_inputargs
         start_label = ResOperation(rop.LABEL, start_state.renamed_inputargs)
-        inputargs = loop_info.label_args[:]
-        emit_end_label = ResOperation(rop.LABEL, inputargs)
+        emit_end_label = ResOperation(rop.LABEL, loop_info.label_args)
         preamble.operations = ([start_label] + preamble_ops +
                                loop_info.extra_same_as + [emit_end_label])
-        loop.inputargs = inputargs
+        loop.inputargs = loop_info.label_args[:]
         loop.operations = [emit_end_label] + ops
         return Info(preamble, loop_info.short_preamble,
                     start_state.virtual_state)
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
@@ -49,7 +49,7 @@
                 self.make_constant_class(op, known_class, False)
             if isinstance(preamble_info, info.ArrayPtrInfo):
                 arr_info = info.ArrayPtrInfo(None)
-                arr_info.lenbound = preamble_info.getlenbound()
+                arr_info.lenbound = preamble_info.getlenbound(None)
                 op.set_forwarded(arr_info)
             if preamble_info.is_nonnull():
                 self.make_nonnull(op)
@@ -103,6 +103,8 @@
         self._check_no_forwarding([[start_label, end_jump], ops])
         self.import_state(start_label, state)
         self.potential_extra_ops = {}
+        label_args = state.virtual_state.make_inputargs(
+            start_label.getarglist(), self.optimizer)
         self.optimizer.propagate_all_forward(start_label.getarglist()[:], ops,
                                              call_pure_results, False)
         orig_jump_args = [self.get_box_replacement(op)
@@ -120,7 +122,7 @@
                                 self.optimizer.patchguardop)
         # remove duplicates, removes stuff from used boxes too
         label_args, jump_args = self.filter_extra_jump_args(
-            start_label.getarglist() + self.short_preamble_producer.used_boxes,
+            label_args + self.short_preamble_producer.used_boxes,
             jump_args + extra_jump_args)
         jump_op = ResOperation(rop.JUMP, jump_args)
         self.optimizer.send_extra_operation(jump_op)
@@ -250,7 +252,7 @@
             source = targetop.getarg(i)
             assert source is not target
             source.set_forwarded(target)
-            info = exported_state.exported_infos.get(source, None)
+            info = exported_state.exported_infos.get(target, None)
             if info is not None:
                 self.optimizer.setinfo_from_preamble(source, info,
                                             exported_state.exported_infos)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to