[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