[pypy-commit] pypy vecopt-merge: reanimating the assembler with the new method names

plan_rich noreply at buildbot.pypy.org
Thu Sep 17 12:35:32 CEST 2015


Author: Richard Plangger <planrichi at gmail.com>
Branch: vecopt-merge
Changeset: r79665:63c213404528
Date: 2015-09-17 12:35 +0200
http://bitbucket.org/pypy/pypy/changeset/63c213404528/

Log:	reanimating the assembler with the new method names

diff --git a/rpython/jit/backend/llgraph/runner.py b/rpython/jit/backend/llgraph/runner.py
--- a/rpython/jit/backend/llgraph/runner.py
+++ b/rpython/jit/backend/llgraph/runner.py
@@ -212,7 +212,6 @@
                kind == 'int' or \
                kind == ''
 
-
     def is_always_pure(self):
         return self._is_pure
 
diff --git a/rpython/jit/backend/llsupport/assembler.py b/rpython/jit/backend/llsupport/assembler.py
--- a/rpython/jit/backend/llsupport/assembler.py
+++ b/rpython/jit/backend/llsupport/assembler.py
@@ -3,7 +3,7 @@
 from rpython.jit.backend.llsupport.symbolic import WORD
 from rpython.jit.backend.llsupport.codemap import CodemapBuilder
 from rpython.jit.metainterp.history import (INT, REF, FLOAT, VECTOR,
-    JitCellToken, ConstInt, BoxInt, AbstractFailDescr, BoxVector)
+    JitCellToken, ConstInt, AbstractFailDescr)
 from rpython.jit.metainterp.resoperation import ResOperation, rop
 from rpython.rlib import rgc
 from rpython.rlib.debug import (debug_start, debug_stop, have_debug_prints_for,
diff --git a/rpython/jit/backend/x86/assembler.py b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -7,8 +7,7 @@
                                                 DEBUG_COUNTER, debug_bridge)
 from rpython.jit.backend.llsupport.asmmemmgr import MachineDataBlockWrapper
 from rpython.jit.backend.llsupport.gcmap import allocate_gcmap
-from rpython.jit.metainterp.history import (Const, Box, VOID,
-    BoxVector, ConstInt)
+from rpython.jit.metainterp.history import (Const, VOID, ConstInt)
 from rpython.jit.metainterp.history import AbstractFailDescr, INT, REF, FLOAT
 from rpython.jit.metainterp.compile import ResumeGuardDescr
 from rpython.rtyper.lltypesystem import lltype, rffi, rstr, llmemory
@@ -1105,7 +1104,7 @@
         def genop_cmp_float(self, op, arglocs, result_loc):
             if need_direct_p:
                 direct_case = not isinstance(arglocs[1], RegLoc)
-                else:
+            else:
                 direct_case = isinstance(arglocs[0], RegLoc)
             if direct_case:
                 self.mc.UCOMISD(arglocs[0], arglocs[1])
@@ -1777,7 +1776,7 @@
         # Note that the typeid half-word is at offset 0 on a little-endian
         # machine; it would be at offset 2 or 4 on a big-endian machine.
         assert self.cpu.supports_guard_gc_type
-            if IS_X86_32:
+        if IS_X86_32:
             self.mc.CMP16(mem(loc_ptr, 0), loc_expected_typeid)
         else:
             assert isinstance(loc_expected_typeid, ImmedLoc)
@@ -2092,7 +2091,7 @@
         self.guard_success_cc = rx86.Conditions['E']
         self.implement_guard(guard_token)
 
-    def _genop_guard_call_may_force(self, op, guard_op, guard_token,
+    def _genop_call_may_force(self, op, guard_op, guard_token,
                                    arglocs, result_loc):
         self._store_force_index(guard_op)
         self._genop_call(op, arglocs, result_loc)
diff --git a/rpython/jit/backend/x86/regalloc.py b/rpython/jit/backend/x86/regalloc.py
--- a/rpython/jit/backend/x86/regalloc.py
+++ b/rpython/jit/backend/x86/regalloc.py
@@ -22,9 +22,8 @@
 from rpython.jit.backend.x86.vector_ext import VectorRegallocMixin
 from rpython.jit.codewriter import longlong
 from rpython.jit.codewriter.effectinfo import EffectInfo
-from rpython.jit.metainterp.history import (Box, Const, ConstInt, ConstPtr,
-    ConstFloat, BoxInt, BoxFloat, BoxVector, INT, REF,
-    FLOAT, VECTOR, TargetToken)
+from rpython.jit.metainterp.history import (Const, ConstInt, ConstPtr,
+    ConstFloat, INT, REF, FLOAT, VECTOR, TargetToken)
 from rpython.jit.metainterp.resoperation import rop, ResOperation
 from rpython.jit.metainterp.compile import ResumeGuardDescr
 from rpython.jit.metainterp.resume import AccumInfo
@@ -1168,7 +1167,7 @@
     consider_raw_load_i = _consider_getarrayitem
     consider_raw_load_f = _consider_getarrayitem
 
-    def _consider_getinteriorfield_gc(self, op):
+    def _consider_getinteriorfield(self, op):
         t = unpack_interiorfielddescr(op.getdescr())
         ofs, itemsize, fieldsize, sign = imm(t[0]), imm(t[1]), imm(t[2]), t[3]
         if sign:
@@ -1205,7 +1204,7 @@
         argloc = self.loc(op.getarg(0))
         self.rm.possibly_free_var(op.getarg(0))
         resloc = self.force_allocate_reg_or_cc(op)
-            self.perform(op, [argloc], resloc)
+        self.perform(op, [argloc], resloc)
 
     consider_int_is_zero = consider_int_is_true
 
diff --git a/rpython/jit/backend/x86/test/test_x86vector.py b/rpython/jit/backend/x86/test/test_x86vector.py
--- a/rpython/jit/backend/x86/test/test_x86vector.py
+++ b/rpython/jit/backend/x86/test/test_x86vector.py
@@ -5,13 +5,13 @@
         (TestRegallocPushPop as BaseTestAssembler)
 from rpython.jit.backend.detect_cpu import getcpuclass
 from rpython.jit.metainterp.history import ConstFloat
-from rpython.jit.metainterp.test import support, test_metavec
+from rpython.jit.metainterp.test import support, test_vector
 from rpython.jit.metainterp.warmspot import ll_meta_interp
 from rpython.rlib.jit import JitDriver
 from rpython.rtyper.lltypesystem import lltype
 
 
-class TestBasic(test_metavec.VectorizeLLtypeTests, test_basic.Jit386Mixin):
+class TestBasic(test_vector.VectorizeLLtypeTests, test_basic.Jit386Mixin):
     # for the individual tests see
     # ====> ../../../metainterp/test/test_basic.py
     enable_opts = 'intbounds:rewrite:virtualize:string:earlyforce:pure:heap:unroll'
diff --git a/rpython/jit/backend/x86/vector_ext.py b/rpython/jit/backend/x86/vector_ext.py
--- a/rpython/jit/backend/x86/vector_ext.py
+++ b/rpython/jit/backend/x86/vector_ext.py
@@ -1,7 +1,6 @@
 import py
 from rpython.jit.metainterp.compile import ResumeGuardDescr
-from rpython.jit.metainterp.history import (Box, Const, ConstInt, ConstPtr,
-    ConstFloat, BoxInt, BoxFloat, BoxVector, INT, REF,
+from rpython.jit.metainterp.history import (ConstInt, INT, REF,
     FLOAT, VECTOR, TargetToken)
 from rpython.jit.backend.llsupport.descr import (ArrayDescr, CallDescr,
     unpack_arraydescr, unpack_fielddescr, unpack_interiorfielddescr)
@@ -131,22 +130,29 @@
 
         not_implemented("reduce sum for %s not impl." % arg)
 
-    def genop_vec_getarrayitem_raw(self, op, arglocs, resloc):
+    def _genop_vec_getarrayitem(self, op, arglocs, resloc):
         # considers item scale (raw_load does not)
         base_loc, ofs_loc, size_loc, ofs, integer_loc, aligned_loc = arglocs
         scale = get_scale(size_loc.value)
         src_addr = addr_add(base_loc, ofs_loc, ofs.value, scale)
         self._vec_load(resloc, src_addr, integer_loc.value,
                        size_loc.value, aligned_loc.value)
+    
+    genop_vec_getarrayitem_raw_i = _genop_vec_getarrayitem
+    genop_vec_getarrayitem_raw_f = _genop_vec_getarrayitem
+    
+    genop_vec_getarrayitem_gc_i = _genop_vec_getarrayitem
+    genop_vec_getarrayitem_gc_f = _genop_vec_getarrayitem
 
-    genop_vec_getarrayitem_gc = genop_vec_getarrayitem_raw
-
-    def genop_vec_raw_load(self, op, arglocs, resloc):
+    def _genop_vec_raw_load(self, op, arglocs, resloc):
         base_loc, ofs_loc, size_loc, ofs, integer_loc, aligned_loc = arglocs
         src_addr = addr_add(base_loc, ofs_loc, ofs.value, 0)
         self._vec_load(resloc, src_addr, integer_loc.value,
                        size_loc.value, aligned_loc.value)
 
+    genop_vec_raw_load_i = _genop_vec_raw_load
+    genop_vec_raw_load_f = _genop_vec_raw_load
+
     def _vec_load(self, resloc, src_addr, integer, itemsize, aligned):
         if integer:
             if aligned:
@@ -159,7 +165,7 @@
             elif itemsize == 8:
                 self.mc.MOVUPD(resloc, src_addr)
 
-    def genop_discard_vec_setarrayitem_raw(self, op, arglocs):
+    def _genop_discard_vec_setarrayitem(self, op, arglocs):
         # considers item scale (raw_store does not)
         base_loc, ofs_loc, value_loc, size_loc, baseofs, integer_loc, aligned_loc = arglocs
         scale = get_scale(size_loc.value)
@@ -167,7 +173,8 @@
         self._vec_store(dest_loc, value_loc, integer_loc.value,
                         size_loc.value, aligned_loc.value)
 
-    genop_discard_vec_setarrayitem_gc = genop_discard_vec_setarrayitem_raw
+    genop_discard_vec_setarrayitem_raw = _genop_discard_vec_setarrayitem
+    genop_discard_vec_setarrayitem_gc = _genop_discard_vec_setarrayitem
 
     def genop_discard_vec_raw_store(self, op, arglocs):
         base_loc, ofs_loc, value_loc, size_loc, baseofs, integer_loc, aligned_loc = arglocs
@@ -385,7 +392,7 @@
             msg = "vec int signext (%d->%d)" % (size, tosize)
             not_implemented(msg)
 
-    def genop_vec_float_expand(self, op, arglocs, resloc):
+    def genop_vec_expand_f(self, op, arglocs, resloc):
         srcloc, sizeloc = arglocs
         size = sizeloc.value
         if isinstance(srcloc, ConstFloatLoc):
@@ -401,7 +408,7 @@
         else:
             raise AssertionError("float of size %d not supported" % (size,))
 
-    def genop_vec_int_expand(self, op, arglocs, resloc):
+    def genop_vec_expand_i(self, op, arglocs, resloc):
         srcloc, sizeloc = arglocs
         if not isinstance(srcloc, RegLoc):
             self.mov(srcloc, X86_64_SCRATCH_REG)
@@ -425,7 +432,7 @@
         else:
             raise AssertionError("cannot handle size %d (int expand)" % (size,))
 
-    def genop_vec_int_pack(self, op, arglocs, resloc):
+    def genop_vec_pack_i(self, op, arglocs, resloc):
         resultloc, sourceloc, residxloc, srcidxloc, countloc, sizeloc = arglocs
         assert isinstance(resultloc, RegLoc)
         assert isinstance(sourceloc, RegLoc)
@@ -477,9 +484,9 @@
             ri += 1
             k -= 1
 
-    genop_vec_int_unpack = genop_vec_int_pack
+    genop_vec_unpack_i = genop_vec_pack_i
 
-    def genop_vec_float_pack(self, op, arglocs, resultloc):
+    def genop_vec_pack_f(self, op, arglocs, resultloc):
         resloc, srcloc, residxloc, srcidxloc, countloc, sizeloc = arglocs
         assert isinstance(resloc, RegLoc)
         assert isinstance(srcloc, RegLoc)
@@ -533,7 +540,7 @@
                             self.mc.UNPCKHPD(resloc, srcloc)
                         # if they are equal nothing is to be done
 
-    genop_vec_float_unpack = genop_vec_float_pack
+    genop_vec_unpack_f = genop_vec_pack_f
 
     def genop_vec_cast_float_to_singlefloat(self, op, arglocs, resloc):
         self.mc.CVTPD2PS(resloc, arglocs[0])
@@ -550,7 +557,7 @@
 class VectorRegallocMixin(object):
     _mixin_ = True
 
-    def consider_vec_getarrayitem_raw(self, op):
+    def _consider_vec_getarrayitem(self, op):
         descr = op.getdescr()
         assert isinstance(descr, ArrayDescr)
         assert not descr.is_array_of_pointers() and \
@@ -565,10 +572,14 @@
         self.perform(op, [base_loc, ofs_loc, imm(itemsize), imm(ofs),
                           imm(integer), imm(aligned)], result_loc)
 
-    consider_vec_getarrayitem_gc = consider_vec_getarrayitem_raw
-    consider_vec_raw_load = consider_vec_getarrayitem_raw
+    consider_vec_getarrayitem_raw_i = _consider_vec_getarrayitem
+    consider_vec_getarrayitem_raw_f = _consider_vec_getarrayitem
+    consider_vec_getarrayitem_gc_i = _consider_vec_getarrayitem
+    consider_vec_getarrayitem_gc_f = _consider_vec_getarrayitem
+    consider_vec_raw_load_i = _consider_vec_getarrayitem
+    consider_vec_raw_load_f = _consider_vec_getarrayitem
 
-    def consider_vec_setarrayitem_raw(self, op):
+    def _consider_vec_setarrayitem(self, op):
         descr = op.getdescr()
         assert isinstance(descr, ArrayDescr)
         assert not descr.is_array_of_pointers() and \
@@ -584,8 +595,9 @@
         self.perform_discard(op, [base_loc, ofs_loc, value_loc,
                                  imm(itemsize), imm(ofs), imm(integer), imm(aligned)])
 
-    consider_vec_setarrayitem_gc = consider_vec_setarrayitem_raw
-    consider_vec_raw_store = consider_vec_setarrayitem_raw
+    consider_vec_setarrayitem_raw = _consider_vec_setarrayitem
+    consider_vec_setarrayitem_gc = _consider_vec_setarrayitem
+    consider_vec_raw_store = _consider_vec_setarrayitem
 
     def consider_vec_arith(self, op):
         lhs = op.getarg(0)
@@ -647,8 +659,8 @@
     consider_vec_int_xor = consider_vec_logic
     del consider_vec_logic
 
-    def consider_vec_int_pack(self, op):
-        # new_res = vec_int_pack(res, src, index, count)
+    def consider_vec_pack_i(self, op):
+        # new_res = vec_pack_i(res, src, index, count)
         arg = op.getarg(1)
         index = op.getarg(2)
         count = op.getarg(3)
@@ -664,9 +676,9 @@
         arglocs = [resloc, srcloc, imm(residx), imm(srcidx), imm(count.value), imm(size)]
         self.perform(op, arglocs, resloc)
 
-    consider_vec_float_pack = consider_vec_int_pack
+    consider_vec_pack_f = consider_vec_pack_i
 
-    def consider_vec_int_unpack(self, op):
+    def consider_vec_unpack_i(self, op):
         index = op.getarg(1)
         count = op.getarg(2)
         assert isinstance(index, ConstInt)
@@ -688,14 +700,14 @@
         arglocs = [resloc, srcloc, imm(residx), imm(index.value), imm(count.value), imm(size)]
         self.perform(op, arglocs, resloc)
 
-    consider_vec_float_unpack = consider_vec_int_unpack
+    consider_vec_unpack_f = consider_vec_unpack_i
 
-    def consider_vec_float_expand(self, op):
+    def consider_vec_expand_f(self, op):
         result = op.result
         assert isinstance(result, BoxVector)
         arg = op.getarg(0)
         args = op.getarglist()
-        if isinstance(arg, Const):
+        if arg.is_constant():
             resloc = self.xrm.force_allocate_reg(result)
             srcloc = self.xrm.expand_float(result.getsize(), arg)
         else:
@@ -705,10 +717,10 @@
         size = op.result.getsize()
         self.perform(op, [srcloc, imm(size)], resloc)
 
-    def consider_vec_int_expand(self, op):
+    def consider_vec_expand_i(self, op):
         arg = op.getarg(0)
         args = op.getarglist()
-        if isinstance(arg, Const):
+        if arg.is_constant():
             srcloc = self.rm.convert_to_imm(arg)
         else:
             srcloc = self.make_sure_var_in_reg(arg, args)
@@ -739,9 +751,12 @@
         else:
             self.perform(op, [resloc,imm(size)], None)
 
-    def consider_vec_box(self, op):
+    def _consider_vec(self, op):
         # pseudo instruction, needed to create a new variable
         self.xrm.force_allocate_reg(op.result)
+    
+    consider_vec_i = _consider_vec
+    consider_vec_f = _consider_vec
 
     def consider_guard_early_exit(self, op):
         pass


More information about the pypy-commit mailing list