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

Reply via email to