[pypy-svn] pypy jit-lsprofile: No operations before jit_merge_point. That does apply to getfield as well,

fijal commits-noreply at bitbucket.org
Wed Mar 23 20:10:08 CET 2011


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: jit-lsprofile
Changeset: r42883:e187b3742ccf
Date: 2011-03-23 13:09 -0600
http://bitbucket.org/pypy/pypy/changeset/e187b3742ccf/

Log:	No operations before jit_merge_point. That does apply to getfield as
	well, otherwise we get corrupt graphs

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
@@ -68,14 +68,16 @@
     def dispatch(self, pycode, next_instr, ec):
         self = hint(self, access_directly=True)
         next_instr = r_uint(next_instr)
+        is_being_profiled = self.is_being_profiled
         try:
             while True:
                 pypyjitdriver.jit_merge_point(ec=ec,
                     frame=self, next_instr=next_instr, pycode=pycode,
-                    is_being_profiled=self.is_being_profiled)
+                    is_being_profiled=is_being_profiled)
                 co_code = pycode.co_code
                 self.valuestackdepth = hint(self.valuestackdepth, promote=True)
                 next_instr = self.handle_bytecode(co_code, next_instr, ec)
+                is_being_profiled = self.is_being_profiled
         except ExitFrame:
             return self.popvalue()
 


More information about the Pypy-commit mailing list