Author: Maciej Fijalkowski <[email protected]>
Branch: optresult-unroll
Changeset: r78934:18012a6f5352
Date: 2015-08-12 16:34 +0200
http://bitbucket.org/pypy/pypy/changeset/18012a6f5352/
Log: fix again test_varray_boxed1
diff --git a/rpython/jit/metainterp/optimizeopt/shortpreamble.py
b/rpython/jit/metainterp/optimizeopt/shortpreamble.py
--- a/rpython/jit/metainterp/optimizeopt/shortpreamble.py
+++ b/rpython/jit/metainterp/optimizeopt/shortpreamble.py
@@ -45,12 +45,16 @@
self.res = res
self.getfield_op = getfield_op
- def produce_op(self, opt, preamble_op):
+ def produce_op(self, opt, preamble_op, exported_infos):
optheap = opt.optimizer.optheap
if optheap is None:
return
g = preamble_op.copy_and_change(preamble_op.getopnum(),
args=self.getfield_op.getarglist())
+ if g.getarg(0) in exported_infos:
+ opt.optimizer.setinfo_from_preamble(g.getarg(0),
+ exported_infos[g.getarg(0)],
+ exported_infos)
opinfo = opt.optimizer.ensure_ptr_info_arg0(g)
pop = PreambleOp(self.res, preamble_op)
assert not opinfo.is_virtual()
@@ -85,7 +89,7 @@
def __init__(self, res):
self.res = res
- def produce_op(self, opt, preamble_op):
+ def produce_op(self, opt, preamble_op, exported_infos):
optpure = opt.optimizer.optpure
if optpure is None:
return
@@ -116,7 +120,7 @@
def __init__(self, res):
self.res = res
- def produce_op(self, opt, preamble_op):
+ def produce_op(self, opt, preamble_op, exported_infos):
optrewrite = opt.optimizer.optrewrite
if optrewrite is None:
return
@@ -165,8 +169,8 @@
self.short_op = short_op
self.preamble_op = preamble_op
- def produce_op(self, opt):
- self.short_op.produce_op(opt, self.preamble_op)
+ def produce_op(self, opt, exported_infos):
+ self.short_op.produce_op(opt, self.preamble_op, exported_infos)
def __repr__(self):
return "%r -> %r" % (self.short_op, self.preamble_op)
@@ -178,7 +182,7 @@
def __init__(self, preamble_op):
self.preamble_op = preamble_op
- def produce_op(self, opt):
+ def produce_op(self, opt, exported_infos):
pass
def __repr__(self):
diff --git a/rpython/jit/metainterp/optimizeopt/unroll.py
b/rpython/jit/metainterp/optimizeopt/unroll.py
--- a/rpython/jit/metainterp/optimizeopt/unroll.py
+++ b/rpython/jit/metainterp/optimizeopt/unroll.py
@@ -38,7 +38,7 @@
def setinfo_from_preamble(self, op, preamble_info, exported_infos):
op = self.get_box_replacement(op)
if op.get_forwarded() is not None:
- return # XXX?
+ return
if isinstance(preamble_info, info.PtrInfo):
if preamble_info.is_virtual():
# XXX do we want to sanitize this?
@@ -338,7 +338,7 @@
exported_state.short_boxes, exported_state.short_inputargs,
exported_state.exported_infos, self.optimizer)
for produced_op in exported_state.short_boxes:
- produced_op.produce_op(self)
+ produced_op.produce_op(self, exported_state.exported_infos)
return
self.inputargs = targetop.getarglist()
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit