[pypy-commit] pypy default: make debug_merge_point keep jitdriver_sd index and collection of green args
fijal
noreply at buildbot.pypy.org
Mon Jun 6 15:19:58 CEST 2011
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch:
Changeset: r44748:f8e68bd845a0
Date: 2011-06-06 14:58 +0200
http://bitbucket.org/pypy/pypy/changeset/f8e68bd845a0/
Log: make debug_merge_point keep jitdriver_sd index and collection of
green args
diff --git a/pypy/jit/backend/llgraph/llimpl.py b/pypy/jit/backend/llgraph/llimpl.py
--- a/pypy/jit/backend/llgraph/llimpl.py
+++ b/pypy/jit/backend/llgraph/llimpl.py
@@ -600,15 +600,16 @@
#
return _op_default_implementation
- def op_debug_merge_point(self, _, value, recdepth):
- from pypy.jit.metainterp.warmspot import get_stats
- loc = ConstPtr(value)._get_str()
- try:
- stats = get_stats()
- except AttributeError:
- pass
- else:
- stats.add_merge_point_location(loc)
+ def op_debug_merge_point(self, _, *args):
+ #from pypy.jit.metainterp.warmspot import get_stats
+ #loc = ConstPtr(value)._get_str()
+ #try:
+ # stats = get_stats()
+ #except AttributeError:
+ # pass
+ #else:
+ # stats.add_merge_point_location(loc)
+ pass
def op_guard_true(self, _, value):
if not value:
diff --git a/pypy/jit/metainterp/logger.py b/pypy/jit/metainterp/logger.py
--- a/pypy/jit/metainterp/logger.py
+++ b/pypy/jit/metainterp/logger.py
@@ -77,9 +77,9 @@
def repr_of_resop(self, memo, op, ops_offset=None):
if op.getopnum() == rop.DEBUG_MERGE_POINT:
- loc = op.getarg(0)._get_str()
- reclev = op.getarg(1).getint()
- return "debug_merge_point('%s', %s)" % (loc, reclev)
+ jd_sd = self.metainterp_sd.jitdrivers_sd[op.getarg(0).getint()]
+ s = jd_sd.warmstate.get_location_str(op.getarglist()[1:])
+ return "debug_merge_point('%s')" % (s,)
if ops_offset is None:
offset = -1
else:
diff --git a/pypy/jit/metainterp/pyjitpl.py b/pypy/jit/metainterp/pyjitpl.py
--- a/pypy/jit/metainterp/pyjitpl.py
+++ b/pypy/jit/metainterp/pyjitpl.py
@@ -867,7 +867,7 @@
any_operation = len(self.metainterp.history.operations) > 0
jitdriver_sd = self.metainterp.staticdata.jitdrivers_sd[jdindex]
self.verify_green_args(jitdriver_sd, greenboxes)
- self.debug_merge_point(jitdriver_sd, self.metainterp.in_recursion,
+ self.debug_merge_point(jdindex, self.metainterp.in_recursion,
greenboxes)
if self.metainterp.seen_loop_header_for_jdindex < 0:
@@ -914,13 +914,10 @@
assembler_call=True)
raise ChangeFrame
- def debug_merge_point(self, jitdriver_sd, in_recursion, greenkey):
+ def debug_merge_point(self, jd_index, in_recursion, greenkey):
# debugging: produce a DEBUG_MERGE_POINT operation
- loc = jitdriver_sd.warmstate.get_location_str(greenkey)
- debug_print(loc)
- constloc = self.metainterp.cpu.ts.conststr(loc)
self.metainterp.history.record(rop.DEBUG_MERGE_POINT,
- [constloc, ConstInt(in_recursion)], None)
+ [ConstInt(jd_index)] + greenkey, None)
@arguments("box", "label")
def opimpl_goto_if_exception_mismatch(self, vtablebox, next_exc_target):
diff --git a/pypy/jit/metainterp/resoperation.py b/pypy/jit/metainterp/resoperation.py
--- a/pypy/jit/metainterp/resoperation.py
+++ b/pypy/jit/metainterp/resoperation.py
@@ -473,7 +473,7 @@
#'RUNTIMENEW/1', # ootype operation
'COND_CALL_GC_WB/2d', # [objptr, newvalue] or [arrayptr, index]
# (for the write barrier, latter is in an array)
- 'DEBUG_MERGE_POINT/2', # debugging only
+ 'DEBUG_MERGE_POINT/*', # debugging only
'JIT_DEBUG/*', # debugging only
'VIRTUAL_REF_FINISH/2', # removed before it's passed to the backend
'COPYSTRCONTENT/5', # src, dst, srcstart, dststart, length
More information about the pypy-commit
mailing list