Author: Richard Plangger <[email protected]>
Branch: vmprof-native
Changeset: r90700:abc1cf9c6e4a
Date: 2017-03-15 13:07 +0100
http://bitbucket.org/pypy/pypy/changeset/abc1cf9c6e4a/

Log:    revert the changes done to rpython/jit/* to support _U_dyn_register
        and _U_dyn_cancel (does not exist on mac os x)

diff --git a/pypy/doc/build.rst b/pypy/doc/build.rst
--- a/pypy/doc/build.rst
+++ b/pypy/doc/build.rst
@@ -80,7 +80,7 @@
     libssl
 
 _vmprof
-    libunwind
+    libunwind (optional, loaded dynamically at runtime)
 
 Make sure to have these libraries (with development headers) installed
 before building PyPy, otherwise the resulting binary will not contain
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
@@ -491,6 +491,7 @@
         if not we_are_translated():
             # Arguments should be unique
             assert len(set(inputargs)) == len(inputargs)
+
         self.setup(looptoken)
         if self.cpu.HAS_CODEMAP:
             self.codemap_builder.enter_portal_frame(jd_id, unique_id,
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
@@ -162,10 +162,9 @@
     jitcell_token.outermost_jitdriver_sd = jitdriver_sd
     return jitcell_token
 
-def record_loop_or_bridge(metainterp_sd, loop, asminfo):
+def record_loop_or_bridge(metainterp_sd, loop):
     """Do post-backend recordings and cleanups on 'loop'.
     """
-    from rpython.rlib.rvmprof import rvmprof
     # get the original jitcell token corresponding to jitcell form which
     # this trace starts
     original_jitcell_token = loop.original_jitcell_token
@@ -175,11 +174,6 @@
     wref = weakref.ref(original_jitcell_token)
     clt = original_jitcell_token.compiled_loop_token
     clt.loop_token_wref = wref
-
-    rvmprof.dyn_register_jit_page(original_jitcell_token, asminfo.asmaddr,
-                                  asminfo.asmaddr+asminfo.asmlen)
-
-
     for op in loop.operations:
         descr = op.getdescr()
         # not sure what descr.index is about
@@ -250,9 +244,9 @@
     if not we_are_translated():
         loop.check_consistency()
     jitcell_token.target_tokens = [target_token]
-    asminfo = send_loop_to_backend(greenkey, jitdriver_sd, metainterp_sd,
-                    loop, "loop", runtime_args, metainterp.box_names_memo)
-    record_loop_or_bridge(metainterp_sd, loop, asminfo)
+    send_loop_to_backend(greenkey, jitdriver_sd, metainterp_sd, loop, "loop",
+                         runtime_args, metainterp.box_names_memo)
+    record_loop_or_bridge(metainterp_sd, loop)
     return target_token
 
 def compile_loop(metainterp, greenkey, start, inputargs, jumpargs,
@@ -345,9 +339,9 @@
                        loop_info.extra_before_label + [loop_info.label_op] + 
loop_ops)
     if not we_are_translated():
         loop.check_consistency()
-    asminfo = send_loop_to_backend(greenkey, jitdriver_sd, metainterp_sd,
-                    loop, "loop", inputargs, metainterp.box_names_memo)
-    record_loop_or_bridge(metainterp_sd, loop, asminfo)
+    send_loop_to_backend(greenkey, jitdriver_sd, metainterp_sd, loop, "loop",
+                         inputargs, metainterp.box_names_memo)
+    record_loop_or_bridge(metainterp_sd, loop)
     loop_info.post_loop_compilation(loop, jitdriver_sd, metainterp, 
jitcell_token)
     return start_descr
 
@@ -422,9 +416,9 @@
         loop.quasi_immutable_deps = quasi_immutable_deps
 
     target_token = loop.operations[-1].getdescr()
-    asminfo = resumekey.compile_and_attach(metainterp, loop, inputargs)
+    resumekey.compile_and_attach(metainterp, loop, inputargs)
 
-    record_loop_or_bridge(metainterp_sd, loop, asminfo)
+    record_loop_or_bridge(metainterp_sd, loop)
     return target_token
 
 def get_box_replacement(op, allow_none=False):
@@ -509,12 +503,11 @@
                                       'compiling', None, name, memo)
     _log = metainterp_sd.jitlog.log_trace(jl.MARK_TRACE_OPT, metainterp_sd, 
None)
     _log.write(inputargs, operations)
-    asminfo = metainterp_sd.cpu.compile_loop(inputargs,
+    return metainterp_sd.cpu.compile_loop(inputargs,
                                           operations, looptoken,
                                           jd_id=jd_id, unique_id=unique_id,
-                                          log=log, name=name, 
logger=metainterp_sd.jitlog)
-
-    return asminfo
+                                          log=log, name=name,
+                                          logger=metainterp_sd.jitlog)
 
 def do_compile_bridge(metainterp_sd, faildescr, inputargs, operations,
                       original_loop_token, log=True, memo=None):
@@ -524,10 +517,9 @@
     _log = metainterp_sd.jitlog.log_trace(jl.MARK_TRACE_OPT, metainterp_sd, 
None)
     _log.write(inputargs, operations)
     assert isinstance(faildescr, AbstractFailDescr)
-    asminfo = metainterp_sd.cpu.compile_bridge(faildescr, inputargs, 
operations,
+    return metainterp_sd.cpu.compile_bridge(faildescr, inputargs, operations,
                                             original_loop_token, log=log,
                                             logger=metainterp_sd.jitlog)
-    return asminfo
 
 def forget_optimization_info(lst, reset_values=False):
     for item in lst:
@@ -597,8 +589,6 @@
     if metainterp_sd.warmrunnerdesc is not None:    # for tests
         
metainterp_sd.warmrunnerdesc.memory_manager.keep_loop_alive(original_jitcell_token)
 
-    return asminfo
-
 def send_bridge_to_backend(jitdriver_sd, metainterp_sd, faildescr, inputargs,
                            operations, original_loop_token, memo):
     forget_optimization_info(operations)
@@ -844,10 +834,10 @@
             self._debug_subinputargs = new_loop.inputargs
             self._debug_suboperations = new_loop.operations
         propagate_original_jitcell_token(new_loop)
-        return send_bridge_to_backend(metainterp.jitdriver_sd,
-                    metainterp.staticdata, self, inputargs,
-                    new_loop.operations, new_loop.original_jitcell_token,
-                    metainterp.box_names_memo)
+        send_bridge_to_backend(metainterp.jitdriver_sd, metainterp.staticdata,
+                               self, inputargs, new_loop.operations,
+                               new_loop.original_jitcell_token,
+                               metainterp.box_names_memo)
 
     def make_a_counter_per_value(self, guard_value_op, index):
         assert guard_value_op.getopnum() == rop.GUARD_VALUE
@@ -1045,14 +1035,13 @@
         jitdriver_sd = metainterp.jitdriver_sd
         new_loop.original_jitcell_token = jitcell_token = 
make_jitcell_token(jitdriver_sd)
         propagate_original_jitcell_token(new_loop)
-        asminfo = send_loop_to_backend(self.original_greenkey,
-                     metainterp.jitdriver_sd, metainterp_sd, new_loop,
-                     "entry bridge", orig_inputargs, metainterp.box_names_memo)
+        send_loop_to_backend(self.original_greenkey, metainterp.jitdriver_sd,
+                             metainterp_sd, new_loop, "entry bridge",
+                             orig_inputargs, metainterp.box_names_memo)
         # send the new_loop to warmspot.py, to be called directly the next time
         jitdriver_sd.warmstate.attach_procedure_to_interp(
             self.original_greenkey, jitcell_token)
         metainterp_sd.stats.add_jitcell_token(jitcell_token)
-        return asminfo
 
 
 def compile_trace(metainterp, resumekey, runtime_boxes):
@@ -1122,8 +1111,8 @@
     if info.final():
         new_trace.inputargs = info.inputargs
         target_token = new_trace.operations[-1].getdescr()
-        asminfo = resumekey.compile_and_attach(metainterp, new_trace, 
inputargs)
-        record_loop_or_bridge(metainterp_sd, new_trace, asminfo)
+        resumekey.compile_and_attach(metainterp, new_trace, inputargs)
+        record_loop_or_bridge(metainterp_sd, new_trace)
         return target_token
     new_trace.inputargs = info.renamed_inputargs
     metainterp.retrace_needed(new_trace, info)
diff --git a/rpython/jit/metainterp/history.py 
b/rpython/jit/metainterp/history.py
--- a/rpython/jit/metainterp/history.py
+++ b/rpython/jit/metainterp/history.py
@@ -419,14 +419,6 @@
     def __init__(self):
         # For memory management of assembled loops
         self._keepalive_jitcell_tokens = {}      # set of other JitCellToken
-        self._rvmprof_references = []
-
-    def rvmprof_register(self, ref):
-        """ Call this method for every loop or bridge that hangs on this
-            token. Otherwise the information tracked by libunwind will
-            not be freed.
-        """
-        self._rvmprof_references.append(ref)
 
     def record_jump_to(self, jitcell_token):
         assert isinstance(jitcell_token, JitCellToken)
diff --git a/rpython/jit/metainterp/memmgr.py b/rpython/jit/metainterp/memmgr.py
--- a/rpython/jit/metainterp/memmgr.py
+++ b/rpython/jit/metainterp/memmgr.py
@@ -2,7 +2,6 @@
 from rpython.rlib.rarithmetic import r_int64
 from rpython.rlib.debug import debug_start, debug_print, debug_stop
 from rpython.rlib.objectmodel import we_are_translated
-from rpython.rlib.rvmprof import rvmprof
 
 #
 # Logic to decide which loops are old and not used any more.
@@ -71,7 +70,6 @@
         for looptoken in self.alive_loops.keys():
             if (0 <= looptoken.generation < max_generation or
                 looptoken.invalidated):
-                rvmprof.dyn_cancel(looptoken)
                 del self.alive_loops[looptoken]
         newtotal = len(self.alive_loops)
         debug_print("Loop tokens freed: ", oldtotal - newtotal)
diff --git a/rpython/jit/metainterp/optimizeopt/version.py 
b/rpython/jit/metainterp/optimizeopt/version.py
--- a/rpython/jit/metainterp/optimizeopt/version.py
+++ b/rpython/jit/metainterp/optimizeopt/version.py
@@ -76,7 +76,7 @@
                                                  descr, vl.inputargs,
                                                  vl.operations, jitcell_token,
                                                  metainterp.box_names_memo)
-                record_loop_or_bridge(metainterp_sd, vl, asminfo)
+                record_loop_or_bridge(metainterp_sd, vl)
                 assert asminfo is not None
                 compiled[version] = (asminfo, descr, version, jitcell_token)
             else:
diff --git a/rpython/jit/metainterp/pyjitpl.py 
b/rpython/jit/metainterp/pyjitpl.py
--- a/rpython/jit/metainterp/pyjitpl.py
+++ b/rpython/jit/metainterp/pyjitpl.py
@@ -1823,12 +1823,6 @@
         self.jitlog.logger_noopt = self.logger_noopt
         self.jitlog.logger_ops = self.logger_ops
 
-        from rpython.rlib.rvmprof import rvmprof, cintf
-        try:
-            self.vmprof = rvmprof._get_vmprof()
-        except cintf.VMProfPlatformUnsupported:
-            self.vmprof = None
-
         self.profiler = ProfilerClass()
         self.profiler.cpu = cpu
         self.warmrunnerdesc = warmrunnerdesc
diff --git a/rpython/rlib/rvmprof/cintf.py b/rpython/rlib/rvmprof/cintf.py
--- a/rpython/rlib/rvmprof/cintf.py
+++ b/rpython/rlib/rvmprof/cintf.py
@@ -15,7 +15,6 @@
 ROOT = py.path.local(rpythonroot).join('rpython', 'rlib', 'rvmprof')
 SRC = ROOT.join('src')
 SHARED = SRC.join('shared')
-UDIS86 = SHARED.join('libudis86')
 BACKTRACE = SHARED.join('libbacktrace')
 
 compile_extra = ['-DRPYTHON_VMPROF', '-g', '-O1']
@@ -45,7 +44,7 @@
     _libs = []
 
 eci_kwds = dict(
-    include_dirs = [SRC, SHARED, BACKTRACE, UDIS86],
+    include_dirs = [SRC, SHARED, BACKTRACE],
     includes = ['rvmprof.h','vmprof_stack.h'],
     libraries = _libs,
     separate_module_files = [
@@ -55,10 +54,6 @@
         SHARED.join('symboltable.c'),
         SHARED.join('vmp_stack.c'),
         SHARED.join('vmp_dynamic.c'),
-        # udis86
-        SHARED.join('libudis86/decode.c'),
-        SHARED.join('libudis86/itab.c'),
-        SHARED.join('libudis86/udis86.c'),
     ] + separate_module_files,
     post_include_bits=[],
     compile_extra=compile_extra
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to