Author: Carl Friedrich Bolz <cfb...@gmx.de> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit