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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit