[pypy-svn] r52726 - pypy/branch/jit-hotpath/pypy/jit/tl

cfbolz at codespeak.net cfbolz at codespeak.net
Wed Mar 19 16:49:08 CET 2008


Author: cfbolz
Date: Wed Mar 19 16:49:08 2008
New Revision: 52726

Modified:
   pypy/branch/jit-hotpath/pypy/jit/tl/tiny2_hotpath.py
Log:
(arigo, cfbolz): put the deepfreeze hint into the loop


Modified: pypy/branch/jit-hotpath/pypy/jit/tl/tiny2_hotpath.py
==============================================================================
--- pypy/branch/jit-hotpath/pypy/jit/tl/tiny2_hotpath.py	(original)
+++ pypy/branch/jit-hotpath/pypy/jit/tl/tiny2_hotpath.py	Wed Mar 19 16:49:08 2008
@@ -125,25 +125,13 @@
 def interpret(bytecode, args):
     """The interpreter's entry point and portal function.
     """
-    # ------------------------------
-    # First a lot of JIT hints...
-    #
-
-    # An important hint: 'bytecode' is a list, which is in theory
-    # mutable.  Let's tell the JIT compiler that it can assume that the
-    # list is entirely frozen, i.e. immutable and only containing immutable
-    # objects.  Otherwise, it cannot do anything - it would have to assume
-    # that the list can unpredictably change at runtime.
-    bytecode = hint(bytecode, deepfreeze=True)
-
-    # ------------------------------
-    # the real code starts here
     loops = []
     stack = []
     pos = 0
     while True:
         TinyJitDriver.jit_merge_point(args=args, loops=loops, stack=stack,
                                       bytecode=bytecode, pos=pos)
+        bytecode = hint(bytecode, deepfreeze=True)
         if pos >= len(bytecode):
             break
         opcode = bytecode[pos]



More information about the Pypy-commit mailing list