[pypy-svn] r70075 - pypy/branch/virtual-forcing/pypy/jit/metainterp
arigo at codespeak.net
arigo at codespeak.net
Fri Dec 11 18:49:39 CET 2009
Author: arigo
Date: Fri Dec 11 18:49:39 2009
New Revision: 70075
Modified:
pypy/branch/virtual-forcing/pypy/jit/metainterp/pyjitpl.py
Log:
Looks maybe a bit better.
Modified: pypy/branch/virtual-forcing/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/branch/virtual-forcing/pypy/jit/metainterp/pyjitpl.py (original)
+++ pypy/branch/virtual-forcing/pypy/jit/metainterp/pyjitpl.py Fri Dec 11 18:49:39 2009
@@ -1808,20 +1808,19 @@
None, descr=vinfo.vable_token_descr)
def vable_and_vrefs_after_residual_call(self):
- for i in range(1, len(self.virtualref_boxes), 2):
- if self.is_blackholing():
- break
- vrefbox = self.virtualref_boxes[i]
- vref = vrefbox.getref_base()
- if virtualref.tracing_after_residual_call(vref):
- # this vref escaped during CALL_MAY_FORCE.
- self.stop_tracking_virtualref(i-1)
- #
if self.is_blackholing():
escapes = True
else:
escapes = False
#
+ for i in range(1, len(self.virtualref_boxes), 2):
+ if self.is_blackholing():
+ break
+ vrefbox = self.virtualref_boxes[i]
+ vref = vrefbox.getref_base()
+ if virtualref.tracing_after_residual_call(vref):
+ # this vref escaped during CALL_MAY_FORCE.
+ self.stop_tracking_virtualref(i-1)
#
vinfo = self.staticdata.virtualizable_info
if vinfo is not None:
@@ -1873,8 +1872,7 @@
op.args = [op.args[0]]
break
else:
- # not found at all!
- self.switch_to_blackhole()
+ assert 0, "not found the VIRTUAL_REF nor VIRTUAL_REF_CHECK at all!"
def handle_exception(self):
etype = self.cpu.get_exception()
@@ -1912,6 +1910,8 @@
self, newboxes, resumedescr, expect_virtualizable)
#
# virtual refs: make the vrefs point to the freshly allocated virtuals
+ if not self.is_blackholing():
+ self.history.record(rop.VIRTUAL_REF_CHECK, [], None)
self.virtualref_boxes = virtualref_boxes
for i in range(0, len(virtualref_boxes), 2):
virtualbox = virtualref_boxes[i]
More information about the Pypy-commit
mailing list