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

Reply via email to