Author: Richard Plangger <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit