Author: Maciej Fijalkowski <fij...@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 _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit