[pypy-commit] pypy optresult: failing test
fijal
noreply at buildbot.pypy.org
Mon Jan 5 15:06:19 CET 2015
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult
Changeset: r75243:fae2f865fc7d
Date: 2015-01-05 15:53 +0200
http://bitbucket.org/pypy/pypy/changeset/fae2f865fc7d/
Log: failing test
diff --git a/rpython/jit/metainterp/optimizeopt/optimizer.py b/rpython/jit/metainterp/optimizeopt/optimizer.py
--- a/rpython/jit/metainterp/optimizeopt/optimizer.py
+++ b/rpython/jit/metainterp/optimizeopt/optimizer.py
@@ -754,7 +754,7 @@
self.pendingfields = None
if self.replaces_guard and orig_op in self.replaces_guard:
self.replace_guard_op(self.replaces_guard[orig_op], op)
- del self.replaces_guard[op]
+ del self.replaces_guard[orig_op]
return
else:
guard_op = self.replace_op_with(op, op.getopnum())
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -5534,6 +5534,24 @@
"""
self.optimize_loop(ops, ops)
+ def test_replace_result_of_new(self):
+ ops = """
+ [i0]
+ guard_value(i0, 2) []
+ p0 = newstr(i0)
+ escape_n(p0)
+ finish()
+ """
+ expected = """
+ [i0]
+ guard_value(i0, 2) []
+ p0 = newstr(2)
+ escape_n(p0)
+ finish()
+ """
+ self.optimize_loop(ops, expected)
+
+
class TestLLtype(BaseTestOptimizeBasic, LLtypeMixin):
pass
diff --git a/rpython/jit/metainterp/optimizeopt/vstring.py b/rpython/jit/metainterp/optimizeopt/vstring.py
--- a/rpython/jit/metainterp/optimizeopt/vstring.py
+++ b/rpython/jit/metainterp/optimizeopt/vstring.py
@@ -110,10 +110,10 @@
assert self.source_op is not None
lengthbox = self.getstrlen(optforce, self.mode, None)
op = ResOperation(self.mode.NEWSTR, [lengthbox])
- self.box = op
if not we_are_translated():
op.name = 'FORCE'
optforce.emit_operation(op)
+ self.box = optforce.getlastop()
self.initialize_forced_string(optforce, self.box, CONST_0, self.mode)
def initialize_forced_string(self, string_optimizer, targetbox,
@@ -193,8 +193,7 @@
charbox = charvalue.force_box(string_optimizer)
op = ResOperation(mode.STRSETITEM, [targetbox,
offsetbox,
- charbox],
- None)
+ charbox])
string_optimizer.emit_operation(op)
offsetbox = _int_add(string_optimizer, offsetbox, CONST_1)
return offsetbox
@@ -331,8 +330,7 @@
assert not isinstance(targetbox, Const)# ConstPtr never makes sense
string_optimizer.emit_operation(ResOperation(mode.STRSETITEM, [targetbox,
offsetbox,
- charbox],
- None))
+ charbox]))
offsetbox = _int_add(string_optimizer, offsetbox, CONST_1)
else:
if need_next_offset:
@@ -533,7 +531,7 @@
dst.force_box(self),
ConstInt(index + dst_start),
vresult.force_box(self),
- ], None)
+ ])
self.emit_operation(new_op)
else:
copy_str_content(self,
More information about the pypy-commit
mailing list