[pypy-svn] r69184 - pypy/branch/faster-raise/pypy/interpreter

arigo at codespeak.net arigo at codespeak.net
Wed Nov 11 17:30:34 CET 2009


Author: arigo
Date: Wed Nov 11 17:30:34 2009
New Revision: 69184

Modified:
   pypy/branch/faster-raise/pypy/interpreter/pyframe.py
   pypy/branch/faster-raise/pypy/interpreter/pyopcode.py
Log:
(antocuni around)
Get rid of 'blockcount'.


Modified: pypy/branch/faster-raise/pypy/interpreter/pyframe.py
==============================================================================
--- pypy/branch/faster-raise/pypy/interpreter/pyframe.py	(original)
+++ pypy/branch/faster-raise/pypy/interpreter/pyframe.py	Wed Nov 11 17:30:34 2009
@@ -56,7 +56,6 @@
         self.valuestack_w = [None] * code.co_stacksize
         self.valuestackdepth = 0
         self.lastblock = None
-        self.blockcount = 0
         if space.config.objspace.honor__builtins__:
             self.builtin = space.builtin.pick_builtin(w_globals)
         # regular functions always have CO_OPTIMIZED and CO_NEWLOCALS.
@@ -70,31 +69,29 @@
     def append_block(self, block):
         block.previous = self.lastblock
         self.lastblock = block
-        self.blockcount += 1
 
     def pop_block(self):
         block = self.lastblock
         self.lastblock = block.previous
-        self.blockcount -= 1
         return block
 
+    def blockstack_non_empty(self):
+        return self.lastblock is not None
+
     def get_blocklist(self):
         """Returns a list containing all the blocks in the frame"""
-        lst = [None] * self.blockcount
+        lst = []
         block = self.lastblock
-        i = 0
         while block is not None:
-            lst[i] = block
-            i += 1
+            lst.append(block)
             block = block.previous
         return lst
 
     def set_blocklist(self, lst):
         self.lastblock = None
-        self.blockcount = 0
-        i = len(lst)
-        while i > 0:
-            block = lst[i-1]
+        i = len(lst) - 1
+        while i >= 0:
+            block = lst[i]
             i -= 1
             self.append_block(block)
 

Modified: pypy/branch/faster-raise/pypy/interpreter/pyopcode.py
==============================================================================
--- pypy/branch/faster-raise/pypy/interpreter/pyopcode.py	(original)
+++ pypy/branch/faster-raise/pypy/interpreter/pyopcode.py	Wed Nov 11 17:30:34 2009
@@ -274,11 +274,8 @@
 
     @jit.unroll_safe
     def unrollstack(self, unroller_kind):
-        n = self.blockcount
-        n = jit.hint(n, promote=True)
-        while n > 0:
+        while self.blockstack_non_empty():
             block = self.pop_block()
-            n -= 1
             if (block.handling_mask & unroller_kind) != 0:
                 return block
             block.cleanupstack(self)



More information about the Pypy-commit mailing list