Author: Carl Friedrich Bolz <[email protected]>
Branch: optinfo-into-bridges
Changeset: r87806:954c6ef729d0
Date: 2016-10-14 16:24 +0200
http://bitbucket.org/pypy/pypy/changeset/954c6ef729d0/
Log: more shortcuts
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
@@ -1288,6 +1288,9 @@
assert box.type == kind
return box
+ def next_box_of_type(self, kind):
+ return self.decode_box(self.resumecodereader.next_item(), kind)
+
def load_box_from_cpu(self, num, kind):
if num < 0:
num += len(self.liveboxes)
@@ -1306,7 +1309,7 @@
self.liveboxes[num] = box
return box
- def decode_box_of_type(self, TYPE, tagged):
+ def next_box_of_type(self, TYPE):
kind = getkind(TYPE)
if kind == 'int':
kind = INT
@@ -1317,7 +1320,7 @@
else:
raise AssertionError(kind)
return self.decode_box(tagged, kind)
- decode_box_of_type._annspecialcase_ = 'specialize:arg(1)'
+ next_box_of_type._annspecialcase_ = 'specialize:arg(1)'
def write_an_int(self, index, box):
self.boxes_i[index] = box
@@ -1430,19 +1433,19 @@
index, numb)
return index
- def load_value_of_type(self, TYPE, tagged):
+ def load_next_value_of_type(self, TYPE):
from rpython.jit.metainterp.warmstate import specialize_value
kind = getkind(TYPE)
if kind == 'int':
- x = self.decode_int(tagged)
+ x = self.next_int()
elif kind == 'ref':
- x = self.decode_ref(tagged)
+ x = self.next_ref()
elif kind == 'float':
- x = self.decode_float(tagged)
+ x = self.next_float()
else:
raise AssertionError(kind)
return specialize_value(TYPE, x)
- load_value_of_type._annspecialcase_ = 'specialize:arg(1)'
+ load_next_value_of_type._annspecialcase_ = 'specialize:arg(1)'
def consume_vref_and_vable(self, vrefinfo, vinfo, ginfo):
vable_size = self.resumecodereader.next_item()
diff --git a/rpython/jit/metainterp/virtualizable.py
b/rpython/jit/metainterp/virtualizable.py
--- a/rpython/jit/metainterp/virtualizable.py
+++ b/rpython/jit/metainterp/virtualizable.py
@@ -2,7 +2,6 @@
from rpython.jit.metainterp import history
from rpython.jit.metainterp.typesystem import deref, fieldType, arrayItem
from rpython.jit.metainterp.warmstate import wrap, unwrap
-from rpython.jit.metainterp.resumecode import numb_next_item
from rpython.rlib.unroll import unrolling_iterable
from rpython.rtyper import rvirtualizable
from rpython.rtyper.lltypesystem import lltype, llmemory
@@ -127,20 +126,18 @@
size += 1
return size
- def write_from_resume_data_partial(virtualizable, reader, index, numb):
+ def write_from_resume_data_partial(virtualizable, reader):
virtualizable = cast_gcref_to_vtype(virtualizable)
# Load values from the reader (see resume.py) described by
# the list of numbers 'nums', and write them in their proper
# place in the 'virtualizable'.
for FIELDTYPE, fieldname in unroll_static_fields:
- item, index = numb_next_item(numb, index)
- x = reader.load_value_of_type(FIELDTYPE, item)
+ x = reader.load_next_value_of_type(FIELDTYPE)
setattr(virtualizable, fieldname, x)
for ARRAYITEMTYPE, fieldname in unroll_array_fields:
lst = getattr(virtualizable, fieldname)
for j in range(getlength(lst)):
- item, index = numb_next_item(numb, index)
- x = reader.load_value_of_type(ARRAYITEMTYPE, item)
+ x = reader.load_next_value_of_type(ARRAYITEMTYPE)
setarrayitem(lst, j, x)
return index
@@ -152,14 +149,12 @@
# the virtualizable itself.
boxes = []
for FIELDTYPE, fieldname in unroll_static_fields:
- item = reader.resumecodereader.next_item()
- box = reader.decode_box_of_type(FIELDTYPE, item)
+ box = reader.next_box_of_type(FIELDTYPE)
boxes.append(box)
for ARRAYITEMTYPE, fieldname in unroll_array_fields:
lst = getattr(virtualizable, fieldname)
for j in range(getlength(lst)):
- item = reader.resumecodereader.next_item()
- box = reader.decode_box_of_type(ARRAYITEMTYPE, item)
+ box = reader.next_box_of_type(ARRAYITEMTYPE)
boxes.append(box)
boxes.append(vable_box)
return boxes, index
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit