Author: fijal Branch: compress-numbering Changeset: r80965:46f0e27c4700 Date: 2015-11-25 20:49 +0200 http://bitbucket.org/pypy/pypy/changeset/46f0e27c4700/
Log: fixes + rpython fixes diff --git a/rpython/jit/metainterp/compile.py b/rpython/jit/metainterp/compile.py --- a/rpython/jit/metainterp/compile.py +++ b/rpython/jit/metainterp/compile.py @@ -15,8 +15,9 @@ TargetToken, AbstractFailDescr, ConstInt) from rpython.jit.metainterp import history, jitexc from rpython.jit.metainterp.optimize import InvalidLoop -from rpython.jit.metainterp.resume import (NUMBERING, PENDINGFIELDSP, +from rpython.jit.metainterp.resume import (PENDINGFIELDSP, ResumeDataDirectReader, AccumInfo) +from rpython.jit.metainterp.resumecode import NUMBERING from rpython.jit.codewriter import heaptracker, longlong @@ -842,12 +843,11 @@ class ResumeGuardDescr(AbstractResumeGuardDescr): _attrs_ = ('rd_numb', 'rd_count', 'rd_consts', 'rd_virtuals', - 'rd_pendingfields', 'rd_stackdepth', 'status') + 'rd_pendingfields', 'status') rd_numb = lltype.nullptr(NUMBERING) rd_count = 0 rd_consts = None rd_virtuals = None - rd_stackdepth = 0 rd_pendingfields = lltype.nullptr(PENDINGFIELDSP.TO) def copy_all_attributes_from(self, other): @@ -858,7 +858,6 @@ self.rd_consts = other.rd_consts self.rd_pendingfields = other.rd_pendingfields self.rd_virtuals = other.rd_virtuals - self.rd_stackdepth = other.rd_stackdepth self.rd_numb = other.rd_numb # we don't copy status if other.rd_vector_info: diff --git a/rpython/jit/metainterp/resume.py b/rpython/jit/metainterp/resume.py --- a/rpython/jit/metainterp/resume.py +++ b/rpython/jit/metainterp/resume.py @@ -144,23 +144,6 @@ snapshot_storage.rd_frame_info_list = None snapshot_storage.rd_snapshot = Snapshot(None, boxes) -# -# The following is equivalent to the RPython-level declaration: -# -# class Numbering: __slots__ = ['prev', 'nums'] -# -# except that it is more compact in translated programs, because the -# array 'nums' is inlined in the single NUMBERING object. This is -# important because this is often the biggest single consumer of memory -# in a pypy-c-jit. -# -NUMBERINGP = lltype.Ptr(lltype.GcForwardReference()) -NUMBERING = lltype.GcStruct('Numbering', - ('prev', NUMBERINGP), - ('packed_jitcode_pc', lltype.Signed), - ('nums', lltype.Array(rffi.SHORT))) -NUMBERINGP.TO.become(NUMBERING) - PENDINGFIELDSTRUCT = lltype.Struct('PendingField', ('lldescr', OBJECTPTR), ('num', rffi.SHORT), @@ -345,8 +328,8 @@ frameinfo = framestack_list[i - 1] jitcode_pos, pc = unpack_uint(frameinfo.packed_jitcode_pc) state.position -= 2 - state.append(rffi.cast(rffi.USHORT, jitcode_pos)) - state.append(rffi.cast(rffi.USHORT, pc)) + state.append(rffi.cast(rffi.SHORT, jitcode_pos)) + state.append(rffi.cast(rffi.SHORT, pc)) self._number_boxes(snapshot_list[i].boxes, optimizer, state) numb = resumecode.create_numbering(state.current, @@ -496,12 +479,6 @@ snapshot = self.snapshot_storage.rd_snapshot assert snapshot is not None # is that true? # count stack depth - frame_info_list = self.snapshot_storage.rd_frame_info_list - stack_depth = 0 - while frame_info_list is not None: - frame_info_list = frame_info_list.prev - stack_depth += 1 - storage.rd_stack_depth = stack_depth numb, liveboxes_from_env, v = self.memo.number(optimizer, snapshot, self.snapshot_storage.rd_frame_info_list) self.liveboxes_from_env = liveboxes_from_env _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit