[pypy-commit] pypy opcode-tracing-experiment: a branch to experiment with tracing single bytecodes

fijal noreply at buildbot.pypy.org
Sun Jul 22 17:09:09 CEST 2012


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: opcode-tracing-experiment
Changeset: r56389:27de303f9f87
Date: 2012-07-22 17:08 +0200
http://bitbucket.org/pypy/pypy/changeset/27de303f9f87/

Log:	a branch to experiment with tracing single bytecodes

diff --git a/pypy/module/pypyjit/interp_jit.py b/pypy/module/pypyjit/interp_jit.py
--- a/pypy/module/pypyjit/interp_jit.py
+++ b/pypy/module/pypyjit/interp_jit.py
@@ -48,13 +48,13 @@
     return (bytecode.co_flags & CO_GENERATOR) != 0
 
 class PyPyJitDriver(JitDriver):
-    reds = ['frame', 'ec']
-    greens = ['next_instr', 'is_being_profiled', 'pycode']
+    reds = ['frame', 'ec', 'next_instr', 'pycode']
+    greens = ['is_being_profiled', 'opcode']
     virtualizables = ['frame']
 
 pypyjitdriver = PyPyJitDriver(get_printable_location = get_printable_location,
-                              get_jitcell_at = get_jitcell_at,
-                              set_jitcell_at = set_jitcell_at,
+#                              get_jitcell_at = get_jitcell_at,
+#                              set_jitcell_at = set_jitcell_at,
                               confirm_enter_jit = confirm_enter_jit,
                               can_never_inline = can_never_inline,
                               should_unroll_one_iteration =
@@ -69,9 +69,11 @@
         is_being_profiled = self.is_being_profiled
         try:
             while True:
+                opcode = pycode.co_code[next_instr]
                 pypyjitdriver.jit_merge_point(ec=ec,
                     frame=self, next_instr=next_instr, pycode=pycode,
-                    is_being_profiled=is_being_profiled)
+                    is_being_profiled=is_being_profiled,
+                                              opcode=opcode)
                 co_code = pycode.co_code
                 self.valuestackdepth = hint(self.valuestackdepth, promote=True)
                 next_instr = self.handle_bytecode(co_code, next_instr, ec)
@@ -92,9 +94,9 @@
             ec.bytecode_trace(self, decr_by)
             jumpto = r_uint(self.last_instr)
         #
-        pypyjitdriver.can_enter_jit(frame=self, ec=ec, next_instr=jumpto,
-                                    pycode=self.getcode(),
-                                    is_being_profiled=self.is_being_profiled)
+        #pypyjitdriver.can_enter_jit(frame=self, ec=ec, next_instr=jumpto,
+        #                            pycode=self.getcode(),
+        #                            is_being_profiled=self.is_being_profiled)
         return jumpto
 
 def _get_adapted_tick_counter():


More information about the pypy-commit mailing list