Author: Maciej Fijalkowski <[email protected]>
Branch: result-in-resops
Changeset: r57443:99741a36894f
Date: 2012-09-20 23:48 +0200
http://bitbucket.org/pypy/pypy/changeset/99741a36894f/

Log:    simple fixes to start passing those tests

diff --git a/pypy/jit/metainterp/optimizeopt/earlyforce.py 
b/pypy/jit/metainterp/optimizeopt/earlyforce.py
--- a/pypy/jit/metainterp/optimizeopt/earlyforce.py
+++ b/pypy/jit/metainterp/optimizeopt/earlyforce.py
@@ -3,7 +3,7 @@
 
 def check_early_force(opt, opnum, num, arg):
     try:
-        value = arg.get_extra("optimizer_value")
+        value = arg.get_extra("optimize_value")
     except KeyError:
         return
     value.force_box(opt)
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
@@ -233,6 +233,15 @@
     def setinteriorfield(self, index, ofs, value):
         raise NotImplementedError
 
+    def __repr__(self):
+        if self.level == LEVEL_UNKNOWN:
+            return '<Opt %r>' % self.box
+        if self.level == LEVEL_NONNULL:
+            return '<OptNonNull %r>' % self.box
+        if self.level == LEVEL_KNOWNCLASS:
+            return '<OptKnownClass (%s) %r>' % (self.known_class, self.box)
+        assert self.level == LEVEL_CONSTANT
+        return '<OptConst %r>' % self.box
 
 class ConstantValue(OptValue):
     def __init__(self, box):
@@ -522,7 +531,7 @@
 
     def get_value_replacement(self, v):
         try:
-            value = v.get_extra("opt_replacement")
+            value = v.get_extra("optimize_value")
         except KeyError:
             return None
         else:
@@ -536,6 +545,8 @@
     def _emit_operation(self, op):
         assert op.getopnum() not in opgroups.CALL_PURE
         op = op.copy_if_modified_by_optimization(self)
+        if isinstance(op, Const):
+            return
         self.metainterp_sd.profiler.count(jitprof.Counters.OPT_OPS)
         if op.is_guard():
             self.metainterp_sd.profiler.count(jitprof.Counters.OPT_GUARDS)
@@ -595,22 +606,6 @@
                 descr.make_a_counter_per_value(op)
         return op
 
-    def make_args_key(self, op):
-        n = op.numargs()
-        args = [None] * (n + 2)
-        for i in range(n):
-            arg = op.getarg(i)
-            try:
-                value = self.values[arg]
-            except KeyError:
-                pass
-            else:
-                arg = value.get_key_box()
-            args[i] = arg
-        args[n] = ConstInt(op.getopnum())
-        args[n + 1] = op.getdescr()
-        return args
-
     def optimize_default(self, op):
         self.emit_operation(op)
 
diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py 
b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -182,14 +182,14 @@
 
     def test_constant_propagate(self):
         ops = """
-        []
-        i0 = int_add(2, 3)
+        [i]
+        i0 = int_add(i, 3)
         i1 = int_is_true(i0)
         guard_true(i1) []
         i2 = int_is_zero(i1)
         guard_false(i2) []
         guard_value(i0, 5) []
-        jump()
+        jump(i)
         """
         expected = """
         []
diff --git a/pypy/jit/metainterp/resoperation.py 
b/pypy/jit/metainterp/resoperation.py
--- a/pypy/jit/metainterp/resoperation.py
+++ b/pypy/jit/metainterp/resoperation.py
@@ -586,6 +586,8 @@
 
     @specialize.arg(1)
     def get_extra(self, key):
+        if key not in self.DOCUMENTED_KEYS:
+            raise Exception("Please document '%s' extra parameter and it's 
lifetime" % key)
         if not hasattr(self, key):
             raise KeyError
         return getattr(self, key)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to