Author: Richard Plangger <[email protected]>
Branch: new-jit-log
Changeset: r83218:8022b7c95b47
Date: 2016-03-21 08:59 +0100
http://bitbucket.org/pypy/pypy/changeset/8022b7c95b47/

Log:    class (const) attributes moved to outer scope

diff --git a/rpython/jit/backend/x86/assembler.py 
b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -10,6 +10,7 @@
 from rpython.jit.metainterp.history import (Const, VOID, ConstInt)
 from rpython.jit.metainterp.history import AbstractFailDescr, INT, REF, FLOAT
 from rpython.jit.metainterp.compile import ResumeGuardDescr
+from rpython.jit.metainterp.jitlog import MARK_TRACE_ASM
 from rpython.rtyper.lltypesystem import lltype, rffi, rstr, llmemory
 from rpython.rtyper.lltypesystem.lloperation import llop
 from rpython.rtyper.annlowlevel import cast_instance_to_gcref
@@ -532,8 +533,8 @@
             looptoken._x86_ops_offset = ops_offset
         looptoken._ll_function_addr = rawstart
         if logger:
-            logger.log_trace(logger.MARK_TRACE_ASM, inputargs, operations,
-                             ops_offset=ops_offset, self.mc)
+            logger.log_trace(MARK_TRACE_ASM, inputargs, operations,
+                             ops_offset=ops_offset, mc=self.mc)
 
         self.fixup_target_tokens(rawstart)
         self.teardown()
@@ -587,8 +588,9 @@
         frame_depth = max(self.current_clt.frame_info.jfi_frame_depth,
                           frame_depth_no_fixed_size + JITFRAME_FIXED_SIZE)
         if logger:
-            logger.log_trace(logger.MARK_TRACE_ASM, inputargs, operations,
-                              faildescr=faildescr, ops_offset=ops_offset)
+            logger.log_trace(MARK_TRACE_ASM, inputargs, operations,
+                             faildescr=faildescr, ops_offset=ops_offset,
+                             mc=self.mc)
         self.fixup_target_tokens(rawstart)
         self.update_frame_depth(frame_depth)
         self.teardown()
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
@@ -17,6 +17,7 @@
 from rpython.jit.metainterp.optimize import InvalidLoop
 from rpython.jit.metainterp.resume import (PENDINGFIELDSP,
         ResumeDataDirectReader, AccumInfo)
+from rpython.jit.metainterp.jitlog import MARK_TRACE_OPT
 from rpython.jit.metainterp.resumecode import NUMBERING
 from rpython.jit.codewriter import heaptracker, longlong
 
@@ -480,8 +481,7 @@
 
 def do_compile_loop(jd_id, unique_id, metainterp_sd, inputargs, operations,
                     looptoken, log=True, name='', memo=None):
-    mark = VMProfJitLogger.MARK_TRACE_OPT
-    metainterp_sd.jitlog.log_trace(mark, inputargs, operations)
+    metainterp_sd.jitlog.log_trace(MARK_TRACE_OPT, inputargs, operations)
     # TODO remove old
     metainterp_sd.logger_ops.log_loop(inputargs, operations, -2,
                                       'compiling', None, name, memo)
@@ -493,8 +493,8 @@
 
 def do_compile_bridge(metainterp_sd, faildescr, inputargs, operations,
                       original_loop_token, log=True, memo=None):
-    mark = VMProfJitLogger.MARK_TRACE_OPT
-    metainterp_sd.jitlog.log_trace(mark, inputargs, operations, 
faildescr=faildescr)
+    metainterp_sd.jitlog.log_trace(MARK_TRACE_OPT, inputargs, operations,
+                                   faildescr=faildescr)
     # TODO remove old
     metainterp_sd.logger_ops.log_bridge(inputargs, operations, "compiling",
                                         memo=memo)
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,42 +1,26 @@
 from rpython.rlib.rvmprof.rvmprof import cintf
 from rpython.jit.metainterp import resoperation as resoperations
-import struct
+from struct import pack
 
-class JitLogMarshall(object):
-    def encode(self, op):
-        str_args = [arg.repr_short(arg._repr_memo) for arg in op.getarglist()]
-        descr = op.getdescr()
-        line = struct.pack('<i', op.getopnum()) + ','.join(str_args)
-        if descr:
-            line += "|" + str(descr)
-            return VMProfJitLogger.MARK_RESOP_DESCR, line
-        else:
-            return VMProfJitLogger.MARK_RESOP, line
+MARK_INPUT_ARGS = 0x10
+MARK_RESOP_META = 0x11
+MARK_RESOP = 0x12
+MARK_RESOP_DESCR = 0x13
+MARK_ASM_ADDR = 0x14
+MARK_ASM = 0x15
 
-    def decode(self, data):
-        opnum = struct.unpack('<i', data[:4])
-        # TODO
+# which type of trace is logged after this
+# the trace as it is recorded by the tracer
+MARK_TRACE = 0x16
+# the trace that has passed the optimizer
+MARK_TRACE_OPT = 0x17
+# the trace assembled to machine code (after rewritten)
+MARK_TRACE_ASM = 0x18
 
-class VMProfJitLogger(JitLogMarshall):
+# the machine code was patched (e.g. guard)
+MARK_ASM_PATCH = 0x19
 
-
-    MARK_INPUT_ARGS = 0x10
-    MARK_RESOP_META = 0x11
-    MARK_RESOP = 0x12
-    MARK_RESOP_DESCR = 0x13
-    MARK_ASM_ADDR = 0x14
-    MARK_ASM = 0x15
-
-    # which type of trace is logged after this
-    # the trace as it is recorded by the tracer
-    MARK_TRACE = 0x16
-    # the trace that has passed the optimizer
-    MARK_TRACE_OPT = 0x17
-    # the trace assembled to machine code (after rewritten)
-    MARK_TRACE_ASM = 0x18
-
-    # the machine code was patched (e.g. guard)
-    MARK_ASM_PATCH = 0x19
+class VMProfJitLogger(object):
 
     def __init__(self):
         self.cintf = cintf.setup()
@@ -46,9 +30,9 @@
         if self.cintf.jitlog_filter(0x0):
             return
         count = len(resoperations.opname)
-        mark = VMProfJitLogger.MARK_RESOP_META
+        mark = MARK_RESOP_META
         for opnum, opname in resoperations.opname.items():
-            line = struct.pack("<h", opnum) + opname.lower()
+            line = pack("<h", opnum) + opname.lower()
             self.write_marked(mark, line)
 
     def teardown(self):
@@ -57,6 +41,16 @@
     def write_marked(self, mark, line):
         self.cintf.jitlog_write_marked(mark, line, len(line))
 
+    def encode(self, op):
+        str_args = [arg.repr_short(arg._repr_memo) for arg in op.getarglist()]
+        descr = op.getdescr()
+        line = pack('<i', op.getopnum()) + ','.join(str_args)
+        if descr:
+            line += "|" + str(descr)
+            return MARK_RESOP_DESCR, line
+        else:
+            return MARK_RESOP, line
+
     def log_trace(self, tag, args, ops,
                   faildescr=None, ops_offset={}, mc=None):
         # this is a mixture of binary and text!
@@ -72,15 +66,15 @@
 
         # input args
         str_args = [arg.repr_short(arg._repr_memo) for arg in args]
-        self.write_marked(self.MARK_INPUT_ARGS, ','.join(str_args))
+        self.write_marked(MARK_INPUT_ARGS, ','.join(str_args))
 
         # assembler address (to not duplicate it in write_code_dump)
         if mc is not None:
             absaddr = mc.absolute_addr()
             rel = mc.get_relative_pos()
             # packs <start addr> <end addr> as two unsigend longs
-            lendian_addrs = struct.pack('<LL', absaddr, absaddr + rel)
-            self.write_marked(self.MARK_ASM_ADDR, lendian_addrs)
+            lendian_addrs = pack('<LL', absaddr, absaddr + rel)
+            self.write_marked(MARK_ASM_ADDR, lendian_addrs)
 
         for i,op in enumerate(ops):
             mark, line = self.encode(op)
@@ -119,6 +113,6 @@
             end_offset = ops_offset[op2]
 
         dump = mc.copy_core_dump(mc.absolute_addr(), start_offset)
-        self.write_marked(self.MARK_ASM, dump)
+        self.write_marked(MARK_ASM, dump)
 
 
diff --git a/rpython/jit/metainterp/optimizeopt/__init__.py 
b/rpython/jit/metainterp/optimizeopt/__init__.py
--- a/rpython/jit/metainterp/optimizeopt/__init__.py
+++ b/rpython/jit/metainterp/optimizeopt/__init__.py
@@ -7,7 +7,7 @@
 from rpython.jit.metainterp.optimizeopt.simplify import OptSimplify
 from rpython.jit.metainterp.optimizeopt.pure import OptPure
 from rpython.jit.metainterp.optimizeopt.earlyforce import OptEarlyForce
-from rpython.jit.metainterp.jitlog import VMProfJitLogger
+from rpython.jit.metainterp.jitlog import MARK_TRACE
 from rpython.rlib.jit import PARAMETERS, ENABLE_ALL_OPTS
 from rpython.rlib.unroll import unrolling_iterable
 from rpython.rlib.debug import debug_start, debug_stop, debug_print
@@ -55,8 +55,8 @@
     debug_start("jit-optimize")
     inputargs = compile_data.start_label.getarglist()
     try:
-        mark = VMProfJitLogger.MARK_TRACE
-        metainterp_sd.jitlog.log_trace(mark, inputargs, 
compile_data.operations)
+        metainterp_sd.jitlog.log_trace(MARK_TRACE, inputargs,
+                                       compile_data.operations)
         #
         metainterp_sd.logger_noopt.log_loop(inputargs,
                                             compile_data.operations,
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to