Author: Carl Friedrich Bolz <cfb...@gmx.de> Branch: optinfo-into-bridges-3 Changeset: r90289:3b86571d166a Date: 2017-02-21 19:50 +0100 http://bitbucket.org/pypy/pypy/changeset/3b86571d166a/
Log: do the right thing with descsr (port of 96fe6ec4dec2 and 52ad37a21275) 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_short(tag_box(box1, liveboxes_from_env, memo)) numb_state.append_int(index) numb_state.append_short(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 @@ -1863,9 +1863,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) diff --git a/rpython/jit/metainterp/test/test_compile.py b/rpython/jit/metainterp/test/test_compile.py --- a/rpython/jit/metainterp/test/test_compile.py +++ b/rpython/jit/metainterp/test/test_compile.py @@ -79,6 +79,7 @@ def test_compile_loop(): cpu = FakeCPU() staticdata = FakeMetaInterpStaticData() + staticdata.all_descrs = LLtypeMixin.cpu.setup_descrs() staticdata.cpu = cpu staticdata.jitlog = jl.JitLogger(cpu) staticdata.jitlog.trace_id = 1 _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit