Author: Remi Meier
Branch: stmgc-c7
Changeset: r70296:8732882f7eac
Date: 2014-03-26 14:46 +0100
http://bitbucket.org/pypy/pypy/changeset/8732882f7eac/
Log: add a stmrewrite test that was fixed by the previous commit
diff --git a/rpython/jit/backend/llsupport/test/test_stmrewrite.py
b/rpython/jit/backend/llsupport/test/test_stmrewrite.py
--- a/rpython/jit/backend/llsupport/test/test_stmrewrite.py
+++ b/rpython/jit/backend/llsupport/test/test_stmrewrite.py
@@ -81,10 +81,10 @@
oopspecindex = 0
def call_needs_inevitable(self):
return inev
-
- calldescr = get_call_descr(c1, [lltype.Ptr(T)], lltype.Ptr(U),
+
+ calldescr = get_call_descr(c1, [lltype.Ptr(T)], lltype.Ptr(U),
fakeextrainfo())
-
+
self.check_rewrite("""
[]
call(123, descr=cd)
@@ -315,7 +315,7 @@
jump()
""", """
[i1, i2]
-
+
jump()
""")
@@ -410,7 +410,7 @@
i2 = int_add(i1, 1)
cond_call_gc_wb(p1, descr=wbdescr)
setfield_gc(p1, i2, descr=tydescr)
-
+
jump(p1)
""")
@@ -453,7 +453,7 @@
i3 = getfield_raw(i1, descr=tydescr)
keepalive(i3)
i4 = getfield_raw(i2, descr=tydescr)
-
+
jump(i3, i4)
""")
@@ -469,7 +469,7 @@
""", """
[i1]
i2 = getfield_raw(i1, descr=fdescr)
-
+
jump(i2)
""", fdescr=fdescr)
@@ -487,7 +487,7 @@
label(i1, i2, i3)
$INEV
i4 = getfield_raw(i2, descr=tydescr)
-
+
jump(i3, i4)
""")
@@ -502,7 +502,7 @@
$INEV
i3 = getarrayitem_raw(i1, 5, descr=adescr)
i4 = getarrayitem_raw(i2, i3, descr=adescr)
-
+
jump(i3, i4)
""")
@@ -518,7 +518,7 @@
setarrayitem_gc(p1, i1, p2, descr=adescr)
cond_call_gc_wb(p3, descr=wbdescr)
setarrayitem_gc(p3, i3, p4, descr=adescr)
-
+
jump()
""")
@@ -535,7 +535,7 @@
setarrayitem_gc(p1, i2, p2, descr=adescr)
i4 = read_timestamp()
setarrayitem_gc(p1, i3, p3, descr=adescr)
-
+
jump()
""")
@@ -552,7 +552,7 @@
setinteriorfield_gc(p1, i2, p2, descr=intzdescr)
i4 = read_timestamp()
setinteriorfield_gc(p1, i3, p3, descr=intzdescr)
-
+
jump()
""")
@@ -567,7 +567,7 @@
cond_call_gc_wb(p1, descr=wbdescr)
strsetitem(p1, i2, i3)
unicodesetitem(p1, i2, i3)
-
+
jump()
""")
@@ -616,10 +616,10 @@
setfield_gc(p7, 10, descr=tydescr)
call_release_gil(123, descr=calldescr2)
guard_not_forced() []
-
+
cond_call_gc_wb(p7, descr=wbdescr)
setfield_gc(p7, 20, descr=tydescr)
-
+
jump(i2, p7)
""", calldescr2=calldescr2)
@@ -647,7 +647,7 @@
%s
cond_call_gc_wb(p7, descr=wbdescr)
setfield_gc(p7, 20, descr=tydescr)
-
+
jump(i2, p7)
""" % op, calldescr2=calldescr2)
@@ -695,7 +695,7 @@
setfield_gc(p1, 10, descr=tydescr)
%s
setfield_gc(p1, 20, descr=tydescr)
-
+
jump(p1)
""" % op)
@@ -730,7 +730,7 @@
%s
cond_call_gc_wb(p1, descr=wbdescr)
setfield_gc(p1, 20, descr=tydescr)
-
+
jump(p1)
""" % (op, guard, tr_break), calldescr2=calldescr2)
@@ -738,7 +738,7 @@
self.check_rewrite("""
[i0, f0]
i2 = call_assembler(i0, f0, descr=casmdescr)
- guard_not_forced()[]
+ guard_not_forced()[]
""", """
[i0, f0]
i1 = getfield_raw(ConstClass(frame_info), descr=jfi_frame_depth)
@@ -750,7 +750,41 @@
setarrayitem_gc(p1, 1, f0, descr=floatframedescr)
i3 = call_assembler(p1, descr=casmdescr)
guard_not_forced() []
-
+
+ """)
+
+ def test_repeat_barrier_after_call_assembler(self):
+ self.check_rewrite("""
+ [i0, f0, p1]
+ p2 = getfield_gc(p1, descr=tzdescr)
+ setfield_gc(p1, p2, descr=tzdescr)
+
+ i2 = call_assembler(i0, f0, descr=casmdescr)
+ guard_not_forced()[]
+
+ p3 = getfield_gc(p1, descr=tzdescr)
+ setfield_gc(p1, p3, descr=tzdescr)
+ """, """
+ [i0, f0, p1]
+ p2 = getfield_gc(p1, descr=tzdescr)
+ stm_read(p1)
+ cond_call_gc_wb(p1, descr=wbdescr)
+ setfield_gc(p1, p2, descr=tzdescr)
+
+ i1 = getfield_raw(ConstClass(frame_info), descr=jfi_frame_depth)
+ p5 = call_malloc_nursery_varsize_frame(i1)
+ setfield_gc(p5, 0, descr=tiddescr)
+ setfield_gc(p5, i1, descr=framelendescr)
+ setfield_gc(p5, ConstClass(frame_info), descr=jf_frame_info)
+ setarrayitem_gc(p5, 0, i0, descr=signedframedescr)
+ setarrayitem_gc(p5, 1, f0, descr=floatframedescr)
+ i3 = call_assembler(p5, descr=casmdescr)
+ guard_not_forced() []
+
+ p3 = getfield_gc(p1, descr=tzdescr)
+ stm_read(p1)
+ cond_call_gc_wb(p1, descr=wbdescr)
+ setfield_gc(p1, p3, descr=tzdescr)
""")
def test_ptr_eq_null(self):
@@ -761,7 +795,7 @@
""", """
[p1, p2]
i1 = ptr_eq(p1, NULL)
-
+
jump(i1)
""")
@@ -773,7 +807,7 @@
""", """
[p1, p2]
i1 = ptr_eq(p1, p2)
-
+
jump(i1)
""")
@@ -785,7 +819,7 @@
""", """
[p1, p2]
i1 = instance_ptr_eq(p1, p2)
-
+
jump(i1)
""")
@@ -797,7 +831,7 @@
""", """
[p1, p2]
i1 = ptr_ne(p1, p2)
-
+
jump(i1)
""")
@@ -809,7 +843,7 @@
""", """
[p1, p2]
i1 = instance_ptr_ne(p1, p2)
-
+
jump(i1)
""")
@@ -926,7 +960,7 @@
[i0]
p0 = call_malloc_nursery_varsize(0, 1, i0, descr=bdescr)
setfield_gc(p0, i0, descr=blendescr)
-
+
jump(i0)
""")
@@ -939,7 +973,7 @@
[i0]
p0 = call_malloc_nursery_varsize(1, 1, i0, descr=strdescr)
setfield_gc(p0, i0, descr=strlendescr)
-
+
jump(i0)
""")
@@ -963,7 +997,7 @@
%(nonstd_descr.lendescr.offset)d, \
6464, i0, \
descr=malloc_array_nonstandard_descr)
-
+
jump(i0)
""", nonstd_descr=nonstd_descr)
@@ -978,7 +1012,7 @@
p0 = call_malloc_gc(ConstClass(malloc_array), 1, \
%(bdescr.tid)d, 103, \
descr=malloc_array_descr)
-
+
jump()
""")
@@ -1015,7 +1049,7 @@
p0 = call_malloc_gc(ConstClass(malloc_array), 1, \
%(bdescr.tid)d, 20000000, \
descr=malloc_array_descr)
-
+
jump()
""")
@@ -1110,7 +1144,7 @@
setfield_gc(p1, 5, descr=blendescr)
stm_transaction_break(1)
-
+
p2 = call_malloc_nursery( \
%(bdescr.basesize + 8)d)
setfield_gc(p2, 8765, descr=tiddescr)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit