Author: Richard Plangger <r...@pasra.at>
Branch: vecopt2
Changeset: r77063:36de2531fe50
Date: 2015-03-09 08:52 +0100
http://bitbucket.org/pypy/pypy/changeset/36de2531fe50/

Log:    reorderd some methods in unroll

diff --git a/rpython/jit/metainterp/optimizeopt/test/test_dependency.py 
b/rpython/jit/metainterp/optimizeopt/test/test_dependency.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_dependency.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_dependency.py
@@ -99,7 +99,7 @@
         guard_true(i10) []
         jump(p0,p1,p2,i9)
         """
-        self.assert_unfold_loop(self.parse_loop(ops),2, 
self.parse_loop(unfolded_ops))
+        self.assert_unfold_loop(self.parse_loop(ops), 2, 
self.parse_loop(unfolded_ops))
 
 class TestLLtype(BaseTestDependencyGraph, LLtypeMixin):
     pass
diff --git a/rpython/jit/metainterp/optimizeopt/unfold.py 
b/rpython/jit/metainterp/optimizeopt/unfold.py
--- a/rpython/jit/metainterp/optimizeopt/unfold.py
+++ b/rpython/jit/metainterp/optimizeopt/unfold.py
@@ -21,25 +21,7 @@
 
 class UnfoldOptimizer(Optimizer):
     def setup(self):
-        self.importable_values = {}
-        self.emitting_dissabled = False
-        self.emitted_guards = 0
-
-    def ensure_imported(self, value):
-        if not self.emitting_dissabled and value in self.importable_values:
-            imp = self.importable_values[value]
-            del self.importable_values[value]
-            imp.import_value(value)
-
-    def emit_operation(self, op):
-        if op.returns_bool_result():
-            self.bool_boxes[self.getvalue(op.result)] = None
-        if self.emitting_dissabled:
-            return
-        if op.is_guard():
-            self.emitted_guards += 1 # FIXME: can we use counter in 
self._emit_operation?
-        self._emit_operation(op)
-
+        pass
 
 class OptUnfold(Optimization):
     """ In contrast to the loop unroll optimization this optimization
@@ -48,26 +30,11 @@
 
     inline_short_preamble = True
 
-    def __init__(self, metainterp_sd, jitdriver_sd, loop, optimizations, 
unroll_factor):
+    def __init__(self, metainterp_sd, jitdriver_sd, loop, optimizations,
+                 unroll_factor):
         self.force_unroll_factor = unroll_factor
         self.optimizer = UnfoldOptimizer(metainterp_sd, jitdriver_sd,
                                              loop, optimizations)
-        self.boxes_created_this_iteration = None
-
-    def get_virtual_state(self, args):
-        modifier = VirtualStateConstructor(self.optimizer)
-        return modifier.get_virtual_state(args)
-
-    def fix_snapshot(self, jump_args, snapshot):
-        if snapshot is None:
-            return None
-        snapshot_args = snapshot.boxes
-        new_snapshot_args = []
-        for a in snapshot_args:
-            a = self.getvalue(a).get_key_box()
-            new_snapshot_args.append(a)
-        prev = self.fix_snapshot(jump_args, snapshot.prev)
-        return Snapshot(prev, new_snapshot_args)
 
     def _rename_arguments_ssa(self, rename_map, label_args, jump_args):
         # fill the map with the renaming boxes. keys are boxes from the label
@@ -92,7 +59,9 @@
         loop.operations = []
 
         iterations = [[op.clone() for op in operations]]
-        label_op_args = label_op.getarglist()
+        label_op_args = [self.getvalue(box).get_key_box() for box in 
label_op.getarglist()]
+        values = [self.getvalue(box) for box in label_op.getarglist()]
+        values[0].make_nonnull(self.optimizer)
 
         jump_op_args = jump_op.getarglist()
 
@@ -144,6 +113,7 @@
                 loop.operations.append(op)
         loop.operations.append(jump_op)
 
+
         #start_label = loop.operations[0]
         #if start_label.getopnum() == rop.LABEL:
         #    loop.operations = loop.operations[1:]
@@ -228,6 +198,22 @@
         #return final_state
         return loop
 
+    def get_virtual_state(self, args):
+        modifier = VirtualStateConstructor(self.optimizer)
+        return modifier.get_virtual_state(args)
+
+    def fix_snapshot(self, jump_args, snapshot):
+        if snapshot is None:
+            return None
+        snapshot_args = snapshot.boxes
+        new_snapshot_args = []
+        for a in snapshot_args:
+            a = self.getvalue(a).get_key_box()
+            new_snapshot_args.append(a)
+        prev = self.fix_snapshot(jump_args, snapshot.prev)
+        return Snapshot(prev, new_snapshot_args)
+
+
     def jump_to_start_label(self, start_label, stop_label):
         if not start_label or not stop_label:
             return False
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to