Author: Richard Plangger <[email protected]>
Branch: new-jit-log
Changeset: r83727:9680c234ff1f
Date: 2016-04-15 12:29 +0200
http://bitbucket.org/pypy/pypy/changeset/9680c234ff1f/

Log:    use _get_vmprof to get a handle on cintf in the logger, this should
        resolve the 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 cintf
+from rpython.rlib.rvmprof.rvmprof import _get_vmprof
 from rpython.jit.metainterp import resoperation as resoperations
 from rpython.jit.metainterp.resoperation import rop
 from rpython.jit.metainterp.history import ConstInt, ConstFloat
@@ -77,7 +77,8 @@
 class VMProfJitLogger(object):
 
     def __init__(self):
-        self.cintf = cintf.setup()
+        self.vmprof = _get_vmprof()
+        self.cintf = self.vmprof.cintf
         self.memo = {}
 
     def setup_once(self):
@@ -86,23 +87,20 @@
         self.cintf.jitlog_try_init_using_env()
         if not self.cintf.jitlog_enabled():
             return
-        VMProfJitLogger._write_header(self.cintf)
+        blob = VMProfJitLogger.assemble_header()
+        self.cintf.jitlog_write_marked(MARK_JITLOG_HEADER, blob, len(blob))
 
     @staticmethod
     @always_inline
-    def _write_header(cintf):
-        header = JITLOG_VERSION_16BIT_LE
-        cintf.jitlog_write_marked(MARK_JITLOG_HEADER,
-                        header, len(header))
-
+    def assemble_header():
+        version = JITLOG_VERSION_16BIT_LE
         count = len(resoperations.opname)
-        mark = MARK_RESOP_META
-        content = [encode_le_16bit(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()))
-        blob = ''.join(content)
-        cintf.jitlog_write_marked(MARK_RESOP_META, blob, len(blob))
+        return ''.join(content)
 
     def finish(self):
         self.cintf.jitlog_teardown()
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
@@ -127,8 +127,9 @@
         p_error = self.cintf.jitlog_init(fileno)
         if p_error:
             raise VMProfError(rffi.charp2str(p_error))
-        from rpython.jit.metainterp.jitlog import VMProfJitLogger
-        VMProfJitLogger._write_header(self.cintf)
+        from rpython.jit.metainterp import jitlog
+        blob = jitlog.VMProfJitLogger.assemble_header()
+        self.cintf.jitlog_write_marked(jitlog.MARK_JITLOG_HEADER, blob, 
len(blob))
 
     def disable(self):
         """Disable vmprof.
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to