Author: Brian Kearns <[email protected]>
Branch: improve-consecutive-dict-lookups
Changeset: r70030:ecaad25d95ac
Date: 2014-03-17 15:19 -0400
http://bitbucket.org/pypy/pypy/changeset/ecaad25d95ac/

Log:    filter guards like the other optimizers

diff --git a/rpython/jit/metainterp/optimizeopt/heap.py 
b/rpython/jit/metainterp/optimizeopt/heap.py
--- a/rpython/jit/metainterp/optimizeopt/heap.py
+++ b/rpython/jit/metainterp/optimizeopt/heap.py
@@ -4,7 +4,7 @@
 from rpython.jit.metainterp.optimizeopt.util import args_dict
 from rpython.jit.metainterp.history import Const
 from rpython.jit.metainterp.jitexc import JitException
-from rpython.jit.metainterp.optimizeopt.optimizer import Optimization, 
MODE_ARRAY, LEVEL_KNOWNCLASS
+from rpython.jit.metainterp.optimizeopt.optimizer import Optimization, 
MODE_ARRAY, LEVEL_KNOWNCLASS, REMOVED
 from rpython.jit.metainterp.optimizeopt.util import make_dispatcher_method
 from rpython.jit.metainterp.resoperation import rop, ResOperation
 from rpython.rlib.objectmodel import we_are_translated
@@ -182,7 +182,6 @@
         self._remove_guard_not_invalidated = False
         self._seen_guard_not_invalidated = False
         self.postponed_op = None
-        self.remove_next_guard = False
 
     def force_at_end_of_preamble(self):
         self.cached_dict_reads.clear()
@@ -312,16 +311,14 @@
             res_v = d[args]
         except KeyError:
             d[args] = self.getvalue(op.result)
-            res = False
+            return False
         else:
             self.make_equal_to(op.result, res_v)
-            self.remove_next_guard = True
-            res = True
-        return res
+            self.last_emitted_operation = REMOVED
+            return True
 
     def optimize_GUARD_NO_EXCEPTION(self, op):
-        if self.remove_next_guard:
-            self.remove_next_guard = False
+        if self.last_emitted_operation is REMOVED:
             return
         self.emit_operation(op)
 
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to