Author: Armin Rigo <ar...@tunes.org> Branch: optresult-unroll Changeset: r79477:2db9160f97b7 Date: 2015-09-06 14:19 +0200 http://bitbucket.org/pypy/pypy/changeset/2db9160f97b7/
Log: in-progress diff --git a/rpython/jit/backend/arm/helper/assembler.py b/rpython/jit/backend/arm/helper/assembler.py --- a/rpython/jit/backend/arm/helper/assembler.py +++ b/rpython/jit/backend/arm/helper/assembler.py @@ -2,7 +2,7 @@ from rpython.jit.backend.arm import conditions as c from rpython.jit.backend.arm import registers as r from rpython.jit.backend.arm.codebuilder import InstrBuilder -from rpython.jit.metainterp.history import ConstInt, BoxInt, FLOAT +from rpython.jit.metainterp.history import FLOAT from rpython.rlib.rarithmetic import r_uint, r_longlong, intmask from rpython.jit.metainterp.resoperation import rop diff --git a/rpython/jit/backend/arm/helper/regalloc.py b/rpython/jit/backend/arm/helper/regalloc.py --- a/rpython/jit/backend/arm/helper/regalloc.py +++ b/rpython/jit/backend/arm/helper/regalloc.py @@ -1,14 +1,13 @@ from rpython.jit.backend.arm import conditions as c from rpython.jit.backend.arm import registers as r -from rpython.jit.metainterp.history import ConstInt, BoxInt, Box, FLOAT -from rpython.jit.metainterp.history import ConstInt +from rpython.jit.metainterp.history import Const, FLOAT from rpython.rlib.objectmodel import we_are_translated VMEM_imm_size=0x3FC default_imm_size=0xFF def check_imm_arg(arg, size=default_imm_size, allow_zero=True): - assert not isinstance(arg, ConstInt) + assert not isinstance(arg, Const) if not we_are_translated(): if not isinstance(arg, int): import pdb; pdb.set_trace() @@ -20,7 +19,7 @@ return i <= size and lower_bound def check_imm_box(arg, size=0xFF, allow_zero=True): - if isinstance(arg, ConstInt): + if isinstance(arg, Const): return check_imm_arg(arg.getint(), size, allow_zero) return False @@ -96,7 +95,7 @@ arg2 = self.rm.make_sure_var_in_reg(a1, selected_reg=r.r1) assert arg1 == r.r0 assert arg2 == r.r1 - if isinstance(a0, Box) and self.stays_alive(a0): + if not isinstance(a0, Const) and self.stays_alive(a0): self.force_spill_var(a0) self.possibly_free_vars_for_op(op) self.free_temp_vars() @@ -135,7 +134,6 @@ def f(self, op, guard_op, fcond): assert fcond is not None a0 = op.getarg(0) - assert isinstance(a0, Box) reg = self.make_sure_var_in_reg(a0) self.possibly_free_vars_for_op(op) if guard_op is None: diff --git a/rpython/jit/backend/arm/regalloc.py b/rpython/jit/backend/arm/regalloc.py --- a/rpython/jit/backend/arm/regalloc.py +++ b/rpython/jit/backend/arm/regalloc.py @@ -2,7 +2,7 @@ from rpython.rlib import rgc from rpython.rlib.debug import debug_print, debug_start, debug_stop from rpython.jit.backend.llsupport.regalloc import FrameManager, \ - RegisterManager, TempBox, compute_vars_longevity, BaseRegalloc, \ + RegisterManager, TempVar, compute_vars_longevity, BaseRegalloc, \ get_scale from rpython.jit.backend.arm import registers as r from rpython.jit.backend.arm import locations @@ -43,21 +43,21 @@ # that it is a LABEL that was not compiled yet. TargetToken._ll_loop_code = 0 -class TempInt(TempBox): +class TempInt(TempVar): type = INT def __repr__(self): return "<TempInt at %s>" % (id(self),) -class TempPtr(TempBox): +class TempPtr(TempVar): type = REF def __repr__(self): return "<TempPtr at %s>" % (id(self),) -class TempFloat(TempBox): +class TempFloat(TempVar): type = FLOAT def __repr__(self): @@ -725,7 +725,7 @@ prepare_op_guard_nonnull_class = prepare_op_guard_class def _prepare_guard_class(self, op, fcond): - assert isinstance(op.getarg(0), Box) + assert not isinstance(op.getarg(0), Const) boxes = op.getarglist() x = self.make_sure_var_in_reg(boxes[0], boxes) @@ -1100,7 +1100,7 @@ def prepare_op_call_malloc_nursery_varsize_frame(self, op, fcond): size_box = op.getarg(0) - assert isinstance(size_box, BoxInt) # we cannot have a const here! + assert not isinstance(size_box, ConstInt) # we cannot have a const here! # sizeloc must be in a register, but we can free it now # (we take care explicitly of conflicts with r0 or r1) sizeloc = self.rm.make_sure_var_in_reg(size_box) @@ -1134,7 +1134,7 @@ # the result will be in r0 self.rm.force_allocate_reg(op.result, selected_reg=r.r0) # we need r1 as a temporary - tmp_box = TempBox() + tmp_box = TempVar() self.rm.force_allocate_reg(tmp_box, selected_reg=r.r1) gcmap = self.get_gcmap([r.r0, r.r1]) # allocate the gcmap *before* self.rm.possibly_free_var(tmp_box) diff --git a/rpython/jit/backend/arm/test/test_runner.py b/rpython/jit/backend/arm/test/test_runner.py --- a/rpython/jit/backend/arm/test/test_runner.py +++ b/rpython/jit/backend/arm/test/test_runner.py @@ -2,9 +2,9 @@ from rpython.jit.backend.detect_cpu import getcpuclass from rpython.jit.backend.test.runner_test import LLtypeBackendTest,\ boxfloat, constfloat -from rpython.jit.metainterp.history import (BasicFailDescr, BasicFinalDescr, - BoxInt) -from rpython.jit.metainterp.resoperation import ResOperation, rop +from rpython.jit.metainterp.history import BasicFailDescr, BasicFinalDescr +from rpython.jit.metainterp.resoperation import (ResOperation, rop, + InputArgInt) from rpython.jit.tool.oparser import parse from rpython.rtyper.lltypesystem import lltype, llmemory from rpython.rtyper import rclass @@ -52,30 +52,29 @@ def test_result_is_spilled(self): cpu = self.cpu - inp = [BoxInt(i) for i in range(1, 15)] - out = [BoxInt(i) for i in range(1, 15)] + inp = [InputArgInt(i) for i in range(1, 15)] looptoken = JitCellToken() targettoken = TargetToken() operations = [ ResOperation(rop.LABEL, inp, None, descr=targettoken), - ResOperation(rop.INT_ADD, [inp[0], inp[1]], out[0]), - ResOperation(rop.INT_ADD, [inp[2], inp[3]], out[1]), - ResOperation(rop.INT_ADD, [inp[4], inp[5]], out[2]), - ResOperation(rop.INT_ADD, [inp[6], inp[7]], out[3]), - ResOperation(rop.INT_ADD, [inp[8], inp[9]], out[4]), - ResOperation(rop.INT_ADD, [inp[10], inp[11]], out[5]), - ResOperation(rop.INT_ADD, [inp[12], inp[13]], out[6]), - ResOperation(rop.INT_ADD, [inp[0], inp[1]], out[7]), - ResOperation(rop.INT_ADD, [inp[2], inp[3]], out[8]), - ResOperation(rop.INT_ADD, [inp[4], inp[5]], out[9]), - ResOperation(rop.INT_ADD, [inp[6], inp[7]], out[10]), - ResOperation(rop.INT_ADD, [inp[8], inp[9]], out[11]), - ResOperation(rop.INT_ADD, [inp[10], inp[11]], out[12]), - ResOperation(rop.INT_ADD, [inp[12], inp[13]], out[13]), - ResOperation(rop.GUARD_FALSE, [inp[1]], None, descr=BasicFailDescr(1)), - ResOperation(rop.FINISH, [inp[1]], None, descr=BasicFinalDescr(1)), + ResOperation(rop.INT_ADD, [inp[0], inp[1]]), + ResOperation(rop.INT_ADD, [inp[2], inp[3]]), + ResOperation(rop.INT_ADD, [inp[4], inp[5]]), + ResOperation(rop.INT_ADD, [inp[6], inp[7]]), + ResOperation(rop.INT_ADD, [inp[8], inp[9]]), + ResOperation(rop.INT_ADD, [inp[10], inp[11]]), + ResOperation(rop.INT_ADD, [inp[12], inp[13]]), + ResOperation(rop.INT_ADD, [inp[0], inp[1]]), + ResOperation(rop.INT_ADD, [inp[2], inp[3]]), + ResOperation(rop.INT_ADD, [inp[4], inp[5]]), + ResOperation(rop.INT_ADD, [inp[6], inp[7]]), + ResOperation(rop.INT_ADD, [inp[8], inp[9]]), + ResOperation(rop.INT_ADD, [inp[10], inp[11]]), + ResOperation(rop.INT_ADD, [inp[12], inp[13]]), + ResOperation(rop.GUARD_FALSE, [inp[1]], descr=BasicFailDescr(1)), + ResOperation(rop.FINISH, [inp[1]], descr=BasicFinalDescr(1)), ] - operations[-2].setfailargs(out) + operations[-2].setfailargs(operations[1:15]) cpu.compile_loop(inp, operations, looptoken) args = [i for i in range(1, 15)] deadframe = self.cpu.execute_token(looptoken, *args) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit