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