[pypy-svn] pypy jit-fromstart: in progress

hakanardo commits-noreply at bitbucket.org
Sat Jan 22 14:40:51 CET 2011


Author: Hakan Ardo <hakan at debian.org>
Branch: jit-fromstart
Changeset: r41220:c96549baa792
Date: 2011-01-22 14:36 +0100
http://bitbucket.org/pypy/pypy/changeset/c96549baa792/

Log:	in progress

diff --git a/pypy/jit/metainterp/optimizeopt/unroll.py b/pypy/jit/metainterp/optimizeopt/unroll.py
--- a/pypy/jit/metainterp/optimizeopt/unroll.py
+++ b/pypy/jit/metainterp/optimizeopt/unroll.py
@@ -155,6 +155,8 @@
             self.optimizer = self.optimizer.reconstruct_for_next_iteration()
 
             jump_args = jumpop.getarglist()
+            for i in range(len(jump_args)):
+                self.getvalue(jump_args[i]).start_index = i
             jumpop.initarglist([])            
             inputargs = self.inline(self.cloned_operations,
                                     loop.inputargs, jump_args)

diff --git a/pypy/jit/metainterp/optimizeopt/optimizer.py b/pypy/jit/metainterp/optimizeopt/optimizer.py
--- a/pypy/jit/metainterp/optimizeopt/optimizer.py
+++ b/pypy/jit/metainterp/optimizeopt/optimizer.py
@@ -27,6 +27,7 @@
     __metaclass__ = extendabletype
     _attrs_ = ('box', 'known_class', 'last_guard_index', 'level', 'intbound')
     last_guard_index = -1
+    start_index = -1
 
     level = LEVEL_UNKNOWN
     known_class = None
@@ -443,6 +444,7 @@
         assert isinstance(descr, compile.ResumeGuardDescr)
         modifier = resume.ResumeDataVirtualAdder(descr, self.resumedata_memo)
         newboxes = modifier.finish(self.values, self.pendingfields)
+        descr.start_indexes = [...]
         if len(newboxes) > self.metainterp_sd.options.failargs_limit: # XXX be careful here
             compile.giveup()
         descr.store_final_boxes(op, newboxes)


More information about the Pypy-commit mailing list