Author: Carl Friedrich Bolz <[email protected]>
Branch: optinfo-into-bridges
Changeset: r87846:96fe6ec4dec2
Date: 2016-10-16 11:46 +0200
http://bitbucket.org/pypy/pypy/changeset/96fe6ec4dec2/
Log: use the correct descr list on metainterp_sd
diff --git a/rpython/jit/metainterp/optimizeopt/bridgeopt.py
b/rpython/jit/metainterp/optimizeopt/bridgeopt.py
--- a/rpython/jit/metainterp/optimizeopt/bridgeopt.py
+++ b/rpython/jit/metainterp/optimizeopt/bridgeopt.py
@@ -75,12 +75,12 @@
# heap knowledge
if optimizer.optheap:
triples = optimizer.optheap.serialize_optheap(liveboxes_set)
+ # can only encode descrs that have a known index into
+ # metainterp_sd.all_descrs
+ triples = [triple for triple in triples if triple[1].descr_index != -1]
numb_state.append_int(len(triples))
for box1, descr, box2 in triples:
- index = metainterp_sd.descrs_dct.get(descr, -1)
- if index == -1:
- # XXX XXX XXX fix length!
- continue # just skip it, if the descr is not encodable
+ index = descr.descr_index
numb_state.append_int(tag_box(box1, liveboxes_from_env, memo))
numb_state.append_int(index)
numb_state.append_int(tag_box(box2, liveboxes_from_env, memo))
@@ -117,8 +117,8 @@
for i in range(length):
tagged = reader.next_item()
box1 = decode_box(resumestorage, tagged, liveboxes, metainterp_sd.cpu)
- tagged = reader.next_item()
- descr = metainterp_sd.opcode_descrs[tagged]
+ index = reader.next_item()
+ descr = metainterp_sd.all_descrs[index]
tagged = reader.next_item()
box2 = decode_box(resumestorage, tagged, liveboxes, metainterp_sd.cpu)
result.append((box1, descr, box2))
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
@@ -1815,9 +1815,6 @@
def setup_descrs(self, descrs):
self.opcode_descrs = descrs
- self.descrs_dct = {}
- for index, descr in enumerate(descrs):
- self.descrs_dct[descr] = index
def setup_indirectcalltargets(self, indirectcalltargets):
self.indirectcalltargets = list(indirectcalltargets)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit