Author: Maciej Fijalkowski <fij...@gmail.com> Branch: optresult-unroll Changeset: r79451:e2cc2266dc5a Date: 2015-09-05 11:14 +0200 http://bitbucket.org/pypy/pypy/changeset/e2cc2266dc5a/
Log: add dump() on exported state 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 @@ -74,6 +74,10 @@ opinfo.setitem(self.getfield_op.getdescr(), index, self.res, pop, cf, optheap=optheap) + def repr(self, memo): + return "HeapOp(%s, %s)" % (self.res.repr(memo), + self.getfield_op.repr(memo)) + def add_op_to_short(self, sb): sop = self.getfield_op preamble_arg = sb.produce_arg(sop.getarg(0)) @@ -125,6 +129,9 @@ opnum = op.getopnum() return ProducedShortOp(self, op.copy_and_change(opnum, args=arglist)) + def repr(self, memo): + return "PureOp(%s)" % (self.res.repr(memo),) + def __repr__(self): return "PureOp(%r)" % (self.res,) @@ -152,6 +159,9 @@ opnum = OpHelpers.call_loopinvariant_for_descr(op.getdescr()) return ProducedShortOp(self, op.copy_and_change(opnum, args=arglist)) + def repr(self, memo): + return "LoopInvariantOp(%s)" % (self.res.repr(memo),) + def __repr__(self): return "LoopInvariantOp(%r)" % (self.res,) @@ -174,6 +184,11 @@ l.append(pop) return l + def repr(self, memo): + return "CompoundOp(%s, %s, %s)" % (self.res.repr(memo), + self.one.repr(memo), + self.two.repr(memo)) + class AbstractProducedShortOp(object): pass @@ -188,6 +203,9 @@ self.short_op.produce_op(opt, self.preamble_op, exported_infos, invented_name=self.invented_name) + def repr(self, memo): + return self.short_op.repr(memo) + def __repr__(self): return "%r -> %r" % (self.short_op, self.preamble_op) @@ -205,6 +223,9 @@ def produce_op(self, opt, preamble_op, exported_infos, invented_name): assert not invented_name + def repr(self, memo): + return "INP(%s)" % (self.res.repr(memo),) + def __repr__(self): return "INP(%r -> %r)" % (self.res, self.preamble_op) 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 @@ -12,7 +12,7 @@ VirtualStateConstructor, VirtualStatesCantMatch) from rpython.jit.metainterp.resoperation import rop, ResOperation, GuardResOp from rpython.jit.metainterp import compile -from rpython.rlib.debug import debug_print +from rpython.rlib.debug import debug_print, debug_start, debug_stop class UnrollableOptimizer(Optimizer): def force_op_from_preamble(self, preamble_op): @@ -455,6 +455,15 @@ self.short_boxes = short_boxes self.renamed_inputargs = renamed_inputargs self.short_inputargs = short_inputargs + self.dump() + + def dump(self): + debug_start("jit-log-exported-state") + memo = {} + debug_print("[" + ", ".join([x.repr_short(memo) for x in self.next_iteration_args]) + "]") + for box in self.short_boxes: + debug_print(" " + box.repr(memo)) + debug_stop("jit-log-exported-state") def final(self): return False _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit