Author: Richard Plangger <planri...@gmail.com>
Branch: new-jit-log
Changeset: r84396:29b41cf549e1
Date: 2016-05-12 08:59 +0200
http://bitbucket.org/pypy/pypy/changeset/29b41cf549e1/

Log:    trying to fix translation issue

diff --git a/rpython/jit/backend/llsupport/assembler.py 
b/rpython/jit/backend/llsupport/assembler.py
--- a/rpython/jit/backend/llsupport/assembler.py
+++ b/rpython/jit/backend/llsupport/assembler.py
@@ -392,8 +392,7 @@
                 debug_print(prefix + ':' + str(struct.i))
             debug_stop('jit-backend-counts')
 
-        if jitlog:
-            flush_debug_counters(jitlog.cintf)
+        flush_debug_counters()
 
     @staticmethod
     @rgc.no_collect
diff --git a/rpython/jit/metainterp/debug.py b/rpython/jit/metainterp/debug.py
--- a/rpython/jit/metainterp/debug.py
+++ b/rpython/jit/metainterp/debug.py
@@ -14,11 +14,11 @@
     ('number', lltype.Signed)
 )
 
-def flush_debug_counters(cintf):
+def flush_debug_counters():
     # this is always called, the jitlog knows if it is enabled
     for i in range(len(LOOP_RUN_COUNTERS)):
         struct = LOOP_RUN_COUNTERS[i]
-        _log_jit_counter(cintf, struct)
+        _log_jit_counter(struct)
         # reset the counter, flush in a later point in time will
         # add up the counters!
         struct.i = 0
diff --git a/rpython/rlib/jitlog.py b/rpython/rlib/jitlog.py
--- a/rpython/rlib/jitlog.py
+++ b/rpython/rlib/jitlog.py
@@ -3,7 +3,7 @@
 import struct
 import os
 
-from rpython.rlib.rvmprof import cintf
+from rpython.rlib.rvmprof.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
@@ -224,37 +224,36 @@
     return ''.join(content)
 
 
-def _log_jit_counter(cintf, struct):
-    if not cintf.jitlog_enabled():
+def _log_jit_counter(struct):
+    if not CINTF.jitlog_enabled():
         return
     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)
     out = le_addr + le_count
-    cintf.jitlog_write_marked(MARK_JITLOG_COUNTER, out, len(out))
+    CINTF.jitlog_write_marked(MARK_JITLOG_COUNTER, out, len(out))
 
 class VMProfJitLogger(object):
     def __init__(self, cpu=None):
         self.cpu = cpu
-        self.cintf = cintf.setup()
         self.memo = {}
         self.trace_id = -1
         self.metainterp_sd = None
 
     def setup_once(self):
-        if self.cintf.jitlog_enabled():
+        if CINTF.jitlog_enabled():
             return
-        self.cintf.jitlog_try_init_using_env()
-        if not self.cintf.jitlog_enabled():
+        CINTF.jitlog_try_init_using_env()
+        if not CINTF.jitlog_enabled():
             return
         blob = assemble_header()
-        self.cintf.jitlog_write_marked(MARK_JITLOG_HEADER, blob, len(blob))
+        CINTF.jitlog_write_marked(MARK_JITLOG_HEADER, blob, len(blob))
 
     def finish(self):
-        self.cintf.jitlog_teardown()
+        CINTF.jitlog_teardown()
 
     def start_new_trace(self, metainterp_sd, faildescr=None, 
entry_bridge=False):
-        if not self.cintf.jitlog_enabled():
+        if not CINTF.jitlog_enabled():
             return
         self.metainterp_sd = metainterp_sd
         self.trace_id += 1
@@ -273,14 +272,14 @@
 
     def _write_marked(self, mark, line):
         if not we_are_translated():
-            assert self.cintf.jitlog_enabled()
-        self.cintf.jitlog_write_marked(mark, line, len(line))
+            assert CINTF.jitlog_enabled()
+        CINTF.jitlog_write_marked(mark, line, len(line))
 
     def log_jit_counter(self, struct):
-        _log_jit_counter(self.cintf, struct)
+        _log_jit_counter(CINTF, struct)
 
     def log_trace(self, tag, metainterp_sd, mc, memo=None):
-        if not self.cintf.jitlog_enabled():
+        if not CINTF.jitlog_enabled():
             return EMPTY_TRACE_LOG
         assert self.metainterp_sd is not None
         assert isinstance(tag, int)
@@ -289,7 +288,7 @@
         return LogTrace(tag, memo, self.metainterp_sd, mc, self)
 
     def log_patch_guard(self, descr_number, addr):
-        if not self.cintf.jitlog_enabled():
+        if not CINTF.jitlog_enabled():
             return
         le_descr_number = encode_le_addr(descr_number)
         le_addr = encode_le_addr(addr)
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
@@ -25,6 +25,8 @@
     def __str__(self):
         return self.msg
 
+CINTF = cintf.setup()
+
 class VMProf(object):
 
     _immutable_fields_ = ['is_enabled?']
@@ -35,7 +37,6 @@
         self._gather_all_code_objs = lambda: None
         self._cleanup_()
         self._code_unique_id = 4
-        self.cintf = cintf.setup()
 
     def _cleanup_(self):
         self.is_enabled = False
@@ -112,12 +113,12 @@
         if self.is_enabled:
             raise VMProfError("vmprof is already enabled")
 
-        p_error = self.cintf.vmprof_init(fileno, interval, "pypy")
+        p_error = CINTF.vmprof_init(fileno, interval, "pypy")
         if p_error:
             raise VMProfError(rffi.charp2str(p_error))
 
         self._gather_all_code_objs()
-        res = self.cintf.vmprof_enable()
+        res = CINTF.vmprof_enable()
         if res < 0:
             raise VMProfError(os.strerror(rposix.get_saved_errno()))
         self.is_enabled = True
@@ -125,16 +126,16 @@
     def enable_jitlog(self, fileno):
         # initialize the jit log
         from rpython.rlib import jitlog as jl
-        p_error = self.cintf.jitlog_init(fileno)
+        p_error = CINTF.jitlog_init(fileno)
         if p_error:
             raise VMProfError(rffi.charp2str(p_error))
         blob = jl.assemble_header()
-        self.cintf.jitlog_write_marked(jl.MARK_JITLOG_HEADER, blob, len(blob))
+        CINTF.jitlog_write_marked(jl.MARK_JITLOG_HEADER, blob, len(blob))
 
     def disable_jitlog(self):
         from rpython.jit.metainterp.debug import flush_debug_counters
-        flush_debug_counters(self.cintf)
-        self.cintf.jitlog_teardown()
+        flush_debug_counters()
+        CINTF.jitlog_teardown()
 
     def disable(self):
         """Disable vmprof.
@@ -143,7 +144,7 @@
         if not self.is_enabled:
             raise VMProfError("vmprof is not enabled")
         self.is_enabled = False
-        res = self.cintf.vmprof_disable()
+        res = CINTF.vmprof_disable()
         if res < 0:
             raise VMProfError(os.strerror(rposix.get_saved_errno()))
 
@@ -151,7 +152,7 @@
         assert name.count(':') == 3 and len(name) <= MAX_FUNC_NAME, (
             "the name must be 'class:func_name:func_line:filename' "
             "and at most %d characters; got '%s'" % (MAX_FUNC_NAME, name))
-        if self.cintf.vmprof_register_virtual_function(name, uid, 500000) < 0:
+        if CINTF.vmprof_register_virtual_function(name, uid, 500000) < 0:
             raise VMProfError("vmprof buffers full!  disk full or too slow")
 
 def vmprof_execute_code(name, get_code_fn, result_class=None):
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to