[pypy-svn] r76683 - pypy/branch/kill-caninline/pypy/module/pypyjit

arigo at codespeak.net arigo at codespeak.net
Fri Aug 20 17:45:18 CEST 2010


Author: arigo
Date: Fri Aug 20 17:45:16 2010
New Revision: 76683

Modified:
   pypy/branch/kill-caninline/pypy/module/pypyjit/interp_jit.py
   pypy/branch/kill-caninline/pypy/module/pypyjit/policy.py
Log:
Disable JITting generators entirely for now.


Modified: pypy/branch/kill-caninline/pypy/module/pypyjit/interp_jit.py
==============================================================================
--- pypy/branch/kill-caninline/pypy/module/pypyjit/interp_jit.py	(original)
+++ pypy/branch/kill-caninline/pypy/module/pypyjit/interp_jit.py	Fri Aug 20 17:45:16 2010
@@ -9,7 +9,7 @@
 import pypy.interpreter.pyopcode   # for side-effects
 from pypy.interpreter.error import OperationError, operationerrfmt
 from pypy.interpreter.gateway import ObjSpace, Arguments
-from pypy.interpreter.pycode import PyCode
+from pypy.interpreter.pycode import PyCode, CO_GENERATOR
 from pypy.interpreter.pyframe import PyFrame
 from pypy.interpreter.pyopcode import ExitFrame
 from opcode import opmap
@@ -36,7 +36,8 @@
     bytecode.jit_cells[next_instr] = newcell
 
 def confirm_enter_jit(next_instr, bytecode, frame, ec):
-    return (frame.w_f_trace is None and
+    return (not (bytecode.co_flags & CO_GENERATOR) and
+            frame.w_f_trace is None and
             ec.profilefunc is None and
             ec.w_tracefunc is None)
 

Modified: pypy/branch/kill-caninline/pypy/module/pypyjit/policy.py
==============================================================================
--- pypy/branch/kill-caninline/pypy/module/pypyjit/policy.py	(original)
+++ pypy/branch/kill-caninline/pypy/module/pypyjit/policy.py	Fri Aug 20 17:45:16 2010
@@ -32,6 +32,8 @@
             return False
         if mod.startswith('pypy.interpreter.pyparser.'):
             return False
+        if mod == 'pypy.interpreter.generator':
+            return False
         if mod.startswith('pypy.module.'):
             modname = mod[len('pypy.module.'):]
             if not self.look_inside_pypy_module(modname):



More information about the Pypy-commit mailing list