[pypy-svn] r68882 - pypy/branch/logging2/pypy/jit/metainterp

arigo at codespeak.net arigo at codespeak.net
Sun Nov 1 08:55:50 CET 2009


Author: arigo
Date: Sun Nov  1 08:55:49 2009
New Revision: 68882

Modified:
   pypy/branch/logging2/pypy/jit/metainterp/compile.py
   pypy/branch/logging2/pypy/jit/metainterp/optimize.py
   pypy/branch/logging2/pypy/jit/metainterp/pyjitpl.py
   pypy/branch/logging2/pypy/jit/metainterp/warmstate.py
Log:
Add debug_start/debug_stop events.  This duplicates the job done
by jitprof, which should eventually be removed, but it's a bit of
a mess right now.


Modified: pypy/branch/logging2/pypy/jit/metainterp/compile.py
==============================================================================
--- pypy/branch/logging2/pypy/jit/metainterp/compile.py	(original)
+++ pypy/branch/logging2/pypy/jit/metainterp/compile.py	Sun Nov  1 08:55:49 2009
@@ -2,6 +2,7 @@
 from pypy.rpython.ootypesystem import ootype
 from pypy.objspace.flow.model import Constant, Variable
 from pypy.rlib.objectmodel import we_are_translated
+from pypy.rlib.debug import debug_start, debug_stop
 from pypy.conftest import option
 
 from pypy.jit.metainterp.resoperation import ResOperation, rop
@@ -92,11 +93,16 @@
     globaldata.loopnumbering += 1
 
     metainterp_sd.logger_ops.log_loop(loop.inputargs, loop.operations, n, type)
-    metainterp_sd.profiler.start_backend()
     if not we_are_translated():
         show_loop(metainterp_sd, loop)
         loop.check_consistency()
-    metainterp_sd.cpu.compile_loop(loop.inputargs, loop.operations, loop.token)
+    metainterp_sd.profiler.start_backend()
+    debug_start("jit-backend")
+    try:
+        metainterp_sd.cpu.compile_loop(loop.inputargs, loop.operations,
+                                       loop.token)
+    finally:
+        debug_stop("jit-backend")
     metainterp_sd.profiler.end_backend()
     metainterp_sd.stats.add_new_loop(loop)
     if not we_are_translated():
@@ -109,12 +115,16 @@
 def send_bridge_to_backend(metainterp_sd, faildescr, inputargs, operations):
     n = faildescr.get_index()
     metainterp_sd.logger_ops.log_bridge(inputargs, operations, n)
-    metainterp_sd.profiler.start_backend()
     if not we_are_translated():
         show_loop(metainterp_sd)
         TreeLoop.check_consistency_of(inputargs, operations)
         pass
-    metainterp_sd.cpu.compile_bridge(faildescr, inputargs, operations)        
+    metainterp_sd.profiler.start_backend()
+    debug_start("jit-backend")
+    try:
+        metainterp_sd.cpu.compile_bridge(faildescr, inputargs, operations)
+    finally:
+        debug_stop("jit-backend")
     metainterp_sd.profiler.end_backend()
     if not we_are_translated():
         metainterp_sd.stats.compiled()

Modified: pypy/branch/logging2/pypy/jit/metainterp/optimize.py
==============================================================================
--- pypy/branch/logging2/pypy/jit/metainterp/optimize.py	(original)
+++ pypy/branch/logging2/pypy/jit/metainterp/optimize.py	Sun Nov  1 08:55:49 2009
@@ -1,3 +1,5 @@
+from pypy.rlib.debug import debug_start, debug_stop
+
 # ____________________________________________________________
 
 from pypy.jit.metainterp.optimizefindnode import PerfectSpecializationFinder
@@ -5,6 +7,13 @@
 from pypy.jit.metainterp.specnode import equals_specnodes
 
 def optimize_loop(metainterp_sd, old_loop_tokens, loop):
+    debug_start("jit-optimize")
+    try:
+        return _optimize_loop(metainterp_sd, old_loop_tokens, loop)
+    finally:
+        debug_stop("jit-optimize")
+
+def _optimize_loop(metainterp_sd, old_loop_tokens, loop):
     cpu = metainterp_sd.cpu
     metainterp_sd.logger_noopt.log_loop(loop.inputargs, loop.operations)
     finder = PerfectSpecializationFinder(cpu)
@@ -21,6 +30,13 @@
 from pypy.jit.metainterp.optimizeopt import optimize_bridge_1
 
 def optimize_bridge(metainterp_sd, old_loop_tokens, bridge):
+    debug_start("jit-optimize")
+    try:
+        return _optimize_bridge(metainterp_sd, old_loop_tokens, bridge)
+    finally:
+        debug_stop("jit-optimize")
+
+def _optimize_bridge(metainterp_sd, old_loop_tokens, bridge):
     cpu = metainterp_sd.cpu    
     metainterp_sd.logger_noopt.log_loop(bridge.inputargs, bridge.operations)
     finder = BridgeSpecializationFinder(cpu)

Modified: pypy/branch/logging2/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/branch/logging2/pypy/jit/metainterp/pyjitpl.py	(original)
+++ pypy/branch/logging2/pypy/jit/metainterp/pyjitpl.py	Sun Nov  1 08:55:49 2009
@@ -1018,9 +1018,9 @@
     def _setup_once(self):
         """Runtime setup needed by the various components of the JIT."""
         if not self.globaldata.initialized:
+            debug_print(self.jit_starting_line)
             self._setup_class_sizes()
             self.cpu.setup_once()
-            debug_print(self.jit_starting_line)
             if not self.profiler.initialized:
                 self.profiler.start()
                 self.profiler.initialized = True
@@ -1365,8 +1365,8 @@
                 raise
 
     def compile_and_run_once(self, *args):
-        self.staticdata._setup_once()
         debug_start('jit-tracing')
+        self.staticdata._setup_once()
         self.create_empty_history()
         try:
             return self._compile_and_run_once(*args)

Modified: pypy/branch/logging2/pypy/jit/metainterp/warmstate.py
==============================================================================
--- pypy/branch/logging2/pypy/jit/metainterp/warmstate.py	(original)
+++ pypy/branch/logging2/pypy/jit/metainterp/warmstate.py	Sun Nov  1 08:55:49 2009
@@ -10,6 +10,7 @@
 from pypy.rlib.jit import PARAMETERS, OPTIMIZER_SIMPLE, OPTIMIZER_FULL
 from pypy.rlib.jit import DEBUG_PROFILE
 from pypy.rlib.jit import BaseJitCell
+from pypy.rlib.debug import debug_start, debug_stop
 from pypy.jit.metainterp import support, history
 
 # ____________________________________________________________
@@ -229,7 +230,9 @@
             # ---------- execute assembler ----------
             while True:     # until interrupted by an exception
                 metainterp_sd.profiler.start_running()
+                debug_start("jit-running")
                 fail_index = metainterp_sd.cpu.execute_token(loop_token)
+                debug_stop("jit-running")
                 metainterp_sd.profiler.end_running()
                 fail_descr = globaldata.get_fail_descr_from_number(fail_index)
                 loop_token = fail_descr.handle_fail(metainterp_sd)



More information about the Pypy-commit mailing list