Author: Maciej Fijalkowski <[email protected]>
Branch: optresult-unroll
Changeset: r79278:9217bd619818
Date: 2015-08-28 15:17 +0200
http://bitbucket.org/pypy/pypy/changeset/9217bd619818/
Log: dance around a bit
diff --git a/rpython/jit/metainterp/optimizeopt/info.py
b/rpython/jit/metainterp/optimizeopt/info.py
--- a/rpython/jit/metainterp/optimizeopt/info.py
+++ b/rpython/jit/metainterp/optimizeopt/info.py
@@ -560,7 +560,7 @@
setfieldop = ResOperation(rop.SETINTERIORFIELD_GC,
[op, ConstInt(index), subbox],
descr=flddescr)
- optforce._emit_operation(setfieldop)
+ optforce.emit_operation(setfieldop)
# heapcache does not work for interiorfields
# if it does, we would need a fix here
i += 1
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
@@ -303,7 +303,8 @@
info = self.getptrinfo(box)
if info is not None and info.is_virtual():
rec = {}
- return info.force_at_the_end_of_preamble(box, self, rec)
+ return info.force_at_the_end_of_preamble(box,
+ self.optearlyforce, rec)
return box
return box
@@ -490,7 +491,7 @@
return CONST_0
def propagate_all_forward(self, inputargs, ops, call_pure_results=None,
- rename_inputargs=True):
+ rename_inputargs=True, flush=True):
if rename_inputargs:
newargs = []
for inparg in inputargs:
@@ -513,7 +514,8 @@
#self.loop.operations = self.get_newoperations()
#self.loop.quasi_immutable_deps = self.quasi_immutable_deps
# accumulate counters
- self.flush()
+ if flush:
+ self.flush()
if extra_jump:
self.first_optimization.propagate_forward(ops[-1])
self.resumedata_memo.update_counters(self.metainterp_sd.profiler)
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
@@ -102,7 +102,8 @@
def optimize_preamble(self, start_label, end_label, ops,
call_pure_results):
self._check_no_forwarding([[start_label, end_label], ops])
info, newops = self.optimizer.propagate_all_forward(
- start_label.getarglist()[:], ops, call_pure_results, True)
+ start_label.getarglist()[:], ops, call_pure_results, True,
+ flush=False)
exported_state = self.export_state(start_label, end_label.getarglist(),
info.inputargs)
# we need to absolutely make sure that we've cleaned up all
@@ -117,7 +118,8 @@
self.potential_extra_ops = {}
self.optimizer.init_inparg_dict_from(label_args)
info, _ = self.optimizer.propagate_all_forward(
- start_label.getarglist()[:], ops, call_pure_results, False)
+ start_label.getarglist()[:], ops, call_pure_results, False,
+ flush=False)
label_op = ResOperation(rop.LABEL, label_args, start_label.getdescr())
target_token = self.finalize_short_preamble(label_op,
state.virtual_state)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit