[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