[pypy-commit] pypy redirect-assembler-jitlog: new tag tmp_callback to correctly make the connection between call_assembler <-> trace
plan_rich
pypy.commits at gmail.com
Thu Sep 1 11:45:16 EDT 2016
Author: Richard Plangger <planrichi at 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):
More information about the pypy-commit
mailing list