Author: Richard Plangger <planri...@gmail.com> Branch: redirect-assembler-jitlog Changeset: r86821:a2f692a70b2d Date: 2016-09-01 17:44 +0200 http://bitbucket.org/pypy/pypy/changeset/a2f692a70b2d/
Log: new tag tmp_callback to correctly make the connection between call_assembler <-> trace diff --git a/rpython/jit/metainterp/compile.py b/rpython/jit/metainterp/compile.py --- a/rpython/jit/metainterp/compile.py +++ b/rpython/jit/metainterp/compile.py @@ -7,6 +7,7 @@ from rpython.rlib import rstack from rpython.rlib.jit import JitDebugInfo, Counters, dont_look_inside from rpython.rlib.rjitlog import rjitlog as jl +from rpython.rlib.objectmodel import compute_unique_id from rpython.conftest import option from rpython.jit.metainterp.resoperation import ResOperation, rop,\ @@ -1156,6 +1157,9 @@ operations[1].setfailargs([]) operations = get_deep_immutable_oplist(operations) cpu.compile_loop(inputargs, operations, jitcell_token, log=False) + + jl.tmp_callback(looptoken) + if memory_manager is not None: # for tests memory_manager.keep_loop_alive(jitcell_token) return jitcell_token diff --git a/rpython/rlib/rjitlog/rjitlog.py b/rpython/rlib/rjitlog/rjitlog.py --- a/rpython/rlib/rjitlog/rjitlog.py +++ b/rpython/rlib/rjitlog/rjitlog.py @@ -212,7 +212,7 @@ return method return decor -JITLOG_VERSION = 3 +JITLOG_VERSION = 4 JITLOG_VERSION_16BIT_LE = struct.pack("<H", JITLOG_VERSION) marks = [ @@ -245,6 +245,7 @@ ('ABORT_TRACE',), ('SOURCE_CODE',), ('REDIRECT_ASSEMBLER',), + ('TMP_CALLBACK',), ] start = 0x11 @@ -320,6 +321,12 @@ content = ''.join(list) jitlog_write_marked(content, len(content)) +def tmp_callback(looptoken): + mark_tmp_callback = ''.join([ + jl.MARK_TMP_CALLBACK, + encode_le_addr(compute_unique_id(looptoken)), + encode_le_64bit(looptoken.number)]) + jl.jitlog_write_marked(mark_tmp_callback, len(mark_tmp_callback)) class JitLogger(object): def __init__(self, cpu=None): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit