[pypy-commit] pypy optresult-unroll: add dump() on exported state
fijal
noreply at buildbot.pypy.org
Sat Sep 5 11:14:53 CEST 2015
Author: Maciej Fijalkowski <fijall at 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
More information about the pypy-commit
mailing list