[pypy-svn] pypy out-of-line-guards: Ooops, fix broken merge

fijal commits-noreply at bitbucket.org
Wed Feb 9 20:07:13 CET 2011


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: out-of-line-guards
Changeset: r41759:907f1fb18d59
Date: 2011-02-09 11:38 +0200
http://bitbucket.org/pypy/pypy/changeset/907f1fb18d59/

Log:	Ooops, fix broken merge

diff --git a/pypy/jit/metainterp/test/test_optimizeopt.py b/pypy/jit/metainterp/test/test_optimizeopt.py
--- a/pypy/jit/metainterp/test/test_optimizeopt.py
+++ b/pypy/jit/metainterp/test/test_optimizeopt.py
@@ -606,6 +606,7 @@
         self.optimize_loop(ops, expected)
 
     def test_int_is_true_is_zero2(self):
+        py.test.skip("Not there yet")
         ops = """
         [i0]
         i2 = int_is_zero(i0)

diff --git a/pypy/jit/metainterp/optimizeopt/rewrite.py b/pypy/jit/metainterp/optimizeopt/rewrite.py
--- a/pypy/jit/metainterp/optimizeopt/rewrite.py
+++ b/pypy/jit/metainterp/optimizeopt/rewrite.py
@@ -228,15 +228,8 @@
     def optimize_GUARD_TRUE(self, op, dryrun=False):
         self.optimize_guard(op, CONST_1, dryrun=dryrun)
 
-    def optimize_GUARD_FALSE(self, op):
-        value = self.getvalue(op.getarg(0))
-        if value in self.optimizer.int_to_bool_nullity:
-            v, int_is_true = self.optimizer.int_to_bool_nullity[value]
-            if int_is_true:
-                v.make_constant(ConstInt(0))
-            elif not v.is_nonnull():
-                v.make_nonnull(len(self.optimizer.newoperations) - 1)
-        self.optimize_guard(op, CONST_0)
+    def optimize_GUARD_FALSE(self, op, dryrun=False):
+        self.optimize_guard(op, CONST_0, dryrun=dryrun)
 
     def optimize_GUARD_CLASS(self, op, dryrun=False):
         value = self.getvalue(op.getarg(0))
@@ -300,7 +293,7 @@
         self.emit_operation(op)
         resvalue = self.getvalue(op.result)
         self.optimizer.loop_invariant_results[key] = resvalue
-    
+
     def _optimize_nullness(self, op, box, expect_nonnull):
         value = self.getvalue(box)
         if value.is_nonnull():
@@ -316,13 +309,9 @@
             self.make_equal_to(op.result, v)
             return
         self._optimize_nullness(op, op.getarg(0), True)
-        self.optimizer.int_to_bool_nullity[self.getvalue(op.result)] = (v, True)
 
     def optimize_INT_IS_ZERO(self, op):
-        v = self.getvalue(op.getarg(0))
         self._optimize_nullness(op, op.getarg(0), False)
-        self.optimizer.int_to_bool_nullity[self.getvalue(op.result)] = (v,
-                                                                        False)
 
     def _optimize_oois_ooisnot(self, op, expect_isnot):
         value0 = self.getvalue(op.getarg(0))

diff --git a/pypy/jit/metainterp/optimizeopt/optimizer.py b/pypy/jit/metainterp/optimizeopt/optimizer.py
--- a/pypy/jit/metainterp/optimizeopt/optimizer.py
+++ b/pypy/jit/metainterp/optimizeopt/optimizer.py
@@ -238,8 +238,6 @@
         self.interned_refs = self.cpu.ts.new_ref_dict()
         self.resumedata_memo = resume.ResumeDataLoopMemo(metainterp_sd)
         self.bool_boxes = {}
-        self.int_to_bool_nullity = {} # a mapping from bool boxes to
-        # respective ints, to know their value
         self.loop_invariant_results = {}
         self.pure_operations = args_dict()
         self.producer = {}


More information about the Pypy-commit mailing list