[pypy-commit] pypy jit-constptr-2: translation fix for some tests
arigo
pypy.commits at gmail.com
Thu Mar 31 18:57:02 EDT 2016
Author: Armin Rigo <arigo at tunes.org>
Branch: jit-constptr-2
Changeset: r83473:647c93899602
Date: 2016-04-01 00:56 +0200
http://bitbucket.org/pypy/pypy/changeset/647c93899602/
Log: translation fix for some tests
diff --git a/rpython/jit/backend/llsupport/rewrite.py b/rpython/jit/backend/llsupport/rewrite.py
--- a/rpython/jit/backend/llsupport/rewrite.py
+++ b/rpython/jit/backend/llsupport/rewrite.py
@@ -321,8 +321,8 @@
# this case means between CALLs or unknown-size mallocs.
#
self.gcrefs_output_list = gcrefs_output_list
- self.gcrefs_map = r_dict(rd_eq, rd_hash) # rdict {gcref: index}
- self.gcrefs_recently_loaded = {}
+ self.gcrefs_map = None
+ self.gcrefs_recently_loaded = None
operations = self.remove_bridge_exception(operations)
self._changed_op = None
for i in range(len(operations)):
@@ -955,9 +955,11 @@
def emit_label(self):
self.emitting_an_operation_that_can_collect()
self._known_lengths.clear()
- self.gcrefs_recently_loaded.clear()
+ self.gcrefs_recently_loaded = None
def _gcref_index(self, gcref):
+ if self.gcrefs_map is None:
+ self.gcrefs_map = r_dict(rd_eq, rd_hash)
try:
return self.gcrefs_map[gcref]
except KeyError:
@@ -974,6 +976,8 @@
# LABELs. We'd like something better, like "don't spill it",
# but that's the wrong level...
index = self._gcref_index(c.value)
+ if self.gcrefs_recently_loaded is None:
+ self.gcrefs_recently_loaded = {}
try:
load_op = self.gcrefs_recently_loaded[index]
except KeyError:
More information about the pypy-commit
mailing list