Author: Armin Rigo <[email protected]>
Branch: bitstring
Changeset: r83920:9e7fd5b9e987
Date: 2016-04-26 22:40 +0200
http://bitbucket.org/pypy/pypy/changeset/9e7fd5b9e987/
Log: Must capture 'metainterp_sd.all_descrs' really at the end of
initialization. The previous logic would miss at least one descr,
'clear_vable_descr', made by VirtualizableInfo.finish().
diff --git a/rpython/jit/metainterp/pyjitpl.py
b/rpython/jit/metainterp/pyjitpl.py
--- a/rpython/jit/metainterp/pyjitpl.py
+++ b/rpython/jit/metainterp/pyjitpl.py
@@ -1809,7 +1809,6 @@
self._addr2name_values = [value for key, value in list_of_addr2name]
def finish_setup(self, codewriter, optimizer=None):
- from rpython.jit.codewriter import effectinfo
from rpython.jit.metainterp.blackhole import BlackholeInterpBuilder
self.blackholeinterpbuilder = BlackholeInterpBuilder(codewriter, self)
#
@@ -1839,6 +1838,9 @@
self.cpu.propagate_exception_descr = exc_descr
#
self.globaldata = MetaInterpGlobalData(self)
+
+ def finish_setup_descrs(self):
+ from rpython.jit.codewriter import effectinfo
self.all_descrs = self.cpu.setup_descrs()
effectinfo.compute_bitstrings(self.all_descrs)
diff --git a/rpython/jit/metainterp/test/support.py
b/rpython/jit/metainterp/test/support.py
--- a/rpython/jit/metainterp/test/support.py
+++ b/rpython/jit/metainterp/test/support.py
@@ -132,6 +132,7 @@
metainterp_sd = pyjitpl.MetaInterpStaticData(cw.cpu, opt)
stats.metainterp_sd = metainterp_sd
metainterp_sd.finish_setup(cw)
+ metainterp_sd.finish_setup_descrs()
[jitdriver_sd] = metainterp_sd.jitdrivers_sd
metainterp = pyjitpl.MetaInterp(metainterp_sd, jitdriver_sd)
diff --git a/rpython/jit/metainterp/warmspot.py
b/rpython/jit/metainterp/warmspot.py
--- a/rpython/jit/metainterp/warmspot.py
+++ b/rpython/jit/metainterp/warmspot.py
@@ -277,6 +277,7 @@
for vinfo in vinfos:
if vinfo is not None:
vinfo.finish()
+ self.metainterp_sd.finish_setup_descrs()
if self.cpu.translate_support_code:
self.annhelper.finish()
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit