[pypy-commit] pypy memop-simplify3: zero array passes again, needed to pass both the start scale and the length scale to the backend,
plan_rich
pypy.commits at gmail.com
Mon Dec 28 06:59:23 EST 2015
Author: Richard Plangger <planrichi at gmail.com>
Branch: memop-simplify3
Changeset: r81451:d826b4e1e7da
Date: 2015-12-28 12:58 +0100
http://bitbucket.org/pypy/pypy/changeset/d826b4e1e7da/
Log: zero array passes again, needed to pass both the start scale and the
length scale to the backend, let's see if there are more
simplifications
diff --git a/rpython/jit/backend/test/runner_test.py b/rpython/jit/backend/test/runner_test.py
--- a/rpython/jit/backend/test/runner_test.py
+++ b/rpython/jit/backend/test/runner_test.py
@@ -4991,16 +4991,16 @@
py.test.skip("llgraph does not do zero_array")
PAIR = lltype.Struct('PAIR', ('a', lltype.Signed), ('b', lltype.Signed))
- for OF in [rffi.SHORT]: #[lltype.Signed, rffi.INT, rffi.SHORT, rffi.UCHAR, PAIR]:
+ for OF in [lltype.Signed, rffi.INT, rffi.SHORT, rffi.UCHAR, PAIR]:
A = lltype.GcArray(OF)
arraydescr = self.cpu.arraydescrof(A)
a = lltype.malloc(A, 100)
addr = llmemory.cast_ptr_to_adr(a)
a_int = heaptracker.adr2int(addr)
a_ref = lltype.cast_opaque_ptr(llmemory.GCREF, a)
- for (start, length) in [(0,100), (49, 49)]:#, (1, 98),
- #(15, 9), (10, 10), (47, 0),
- #(0, 4)]:
+ for (start, length) in [(0,100), (49, 49), (1, 98),
+ (15, 9), (10, 10), (47, 0),
+ (0, 4)]:
for cls1 in [ConstInt, InputArgInt]:
for cls2 in [ConstInt, InputArgInt]:
print 'a_int:', a_int
@@ -5033,7 +5033,7 @@
lengthbox, scale, offset)
if v_len is None:
v_len = ConstInt(e_offset)
- import pdb; pdb.set_trace()
+ #import pdb; pdb.set_trace()
args = [InputArgRef(a_ref), v_start, v_len,
ConstInt(scale_start), ConstInt(scale_len)]
ops.append(ResOperation(rop.ZERO_ARRAY, args,
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
@@ -1415,7 +1415,7 @@
null_loc = self.xrm.force_allocate_reg(null_box)
self.xrm.possibly_free_var(null_box)
self.perform_discard(op, [base_loc, startindex_loc,
- imm(constbytes), imm(len_itemsize),
+ imm(constbytes), imm(start_itemsize),
imm(baseofs), null_loc])
else:
# base_loc and startindex_loc are in two regs here (or they are
@@ -1423,6 +1423,7 @@
# address that we will pass as first argument to memset().
# It can be in the same register as either one, but not in
# args[2], because we're still needing the latter.
+ #import pdb; pdb.set_trace()
dstaddr_box = TempVar()
dstaddr_loc = self.rm.force_allocate_reg(dstaddr_box, [args[2]])
itemsize_loc = imm(start_itemsize)
More information about the pypy-commit
mailing list