Author: Richard Plangger <planri...@gmail.com> Branch: new-jit-log Changeset: r83728:f605ce9c680a Date: 2016-04-18 07:51 +0200 http://bitbucket.org/pypy/pypy/changeset/f605ce9c680a/
Log: solved translation issue diff --git a/rpython/jit/metainterp/jitlog.py b/rpython/jit/metainterp/jitlog.py --- a/rpython/jit/metainterp/jitlog.py +++ b/rpython/jit/metainterp/jitlog.py @@ -1,4 +1,4 @@ -from rpython.rlib.rvmprof.rvmprof import _get_vmprof +from rpython.rlib.rvmprof import cintf from rpython.jit.metainterp import resoperation as resoperations from rpython.jit.metainterp.resoperation import rop from rpython.jit.metainterp.history import ConstInt, ConstFloat @@ -30,9 +30,7 @@ # the machine code was patched (e.g. guard) MARK_STITCH_BRIDGE = 0x19 -MARK_JIT_LOOP_COUNTER = 0x20 -MARK_JIT_BRIDGE_COUNTER = 0x21 -MARK_JIT_ENTRY_COUNTER = 0x22 +MARK_JITLOG_COUNTER = 0x20 MARK_JITLOG_HEADER = 0x23 MARK_JITLOG_DEBUG_MERGE_POINT = 0x24 @@ -54,7 +52,6 @@ chr((val >> 16) & 0xff), chr((val >> 24) & 0xff)]) - @always_inline def encode_le_64bit(val): return ''.join([chr((val >> 0) & 0xff), @@ -73,12 +70,19 @@ else: return encode_le_64bit(val) +def assemble_header(): + version = JITLOG_VERSION_16BIT_LE + count = len(resoperations.opname) + content = [version, chr(MARK_RESOP_META), + encode_le_16bit(count)] + for opnum, opname in resoperations.opname.items(): + content.append(encode_le_16bit(opnum)) + content.append(encode_str(opname.lower())) + return ''.join(content) class VMProfJitLogger(object): - def __init__(self): - self.vmprof = _get_vmprof() - self.cintf = self.vmprof.cintf + self.cintf = cintf.setup() self.memo = {} def setup_once(self): @@ -87,21 +91,9 @@ self.cintf.jitlog_try_init_using_env() if not self.cintf.jitlog_enabled(): return - blob = VMProfJitLogger.assemble_header() + blob = assemble_header() self.cintf.jitlog_write_marked(MARK_JITLOG_HEADER, blob, len(blob)) - @staticmethod - @always_inline - def assemble_header(): - version = JITLOG_VERSION_16BIT_LE - count = len(resoperations.opname) - content = [version, chr(MARK_RESOP_META), - encode_le_16bit(count)] - for opnum, opname in resoperations.opname.items(): - content.append(encode_le_16bit(opnum)) - content.append(encode_str(opname.lower())) - return ''.join(content) - def finish(self): self.cintf.jitlog_teardown() @@ -116,13 +108,7 @@ le_addr = encode_le_addr(struct.number) # not an address (but a number) but it is a machine word le_count = encode_le_addr(struct.i) - if struct.type == 'l': - tag = MARK_JIT_LOOP_COUNTER - elif struct.type == 'b': - tag = MARK_JIT_BRIDGE_COUNTER - else: - tag = MARK_JIT_ENTRY_COUNTER - self._write_marked(tag, le_addr + le_count) + self._write_marked(MARK_JITLOG_COUNTER, le_addr + le_count) def log_trace(self, tag, metainterp_sd, mc, memo=None): if not self.cintf.jitlog_enabled(): diff --git a/rpython/rlib/rvmprof/rvmprof.py b/rpython/rlib/rvmprof/rvmprof.py --- a/rpython/rlib/rvmprof/rvmprof.py +++ b/rpython/rlib/rvmprof/rvmprof.py @@ -7,6 +7,7 @@ from rpython.rtyper.lltypesystem import rffi, llmemory from rpython.rtyper.lltypesystem.lloperation import llop from rpython.rlib.rweaklist import RWeakListMixin +from rpython.jit.metainterp import jitlog MAX_FUNC_NAME = 1023 @@ -127,8 +128,7 @@ p_error = self.cintf.jitlog_init(fileno) if p_error: raise VMProfError(rffi.charp2str(p_error)) - from rpython.jit.metainterp import jitlog - blob = jitlog.VMProfJitLogger.assemble_header() + blob = jitlog.assemble_header() self.cintf.jitlog_write_marked(jitlog.MARK_JITLOG_HEADER, blob, len(blob)) def disable(self): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit