[pypy-commit] lang-smalltalk default: fix jittests for untagged ints, and add test for simulated bitblt

timfel noreply at buildbot.pypy.org
Fri Jan 17 14:45:40 CET 2014


Author: Tim Felgentreff <timfelgentreff at gmail.com>
Branch: 
Changeset: r589:68fc7d747dd8
Date: 2014-01-17 14:27 +0100
http://bitbucket.org/pypy/lang-smalltalk/changeset/68fc7d747dd8/

Log:	fix jittests for untagged ints, and add test for simulated bitblt

diff --git a/spyvm/test/jittest/base.py b/spyvm/test/jittest/base.py
--- a/spyvm/test/jittest/base.py
+++ b/spyvm/test/jittest/base.py
@@ -24,7 +24,8 @@
         proc = subprocess.Popen(
             [str(spy), "-r", code.replace("\n", "\r\n"), BenchmarkImage],
             cwd=str(tmpdir),
-            env={"PYPYLOG": "jit-log-opt:%s" % tmpdir.join("x.pypylog")}
+            env={"PYPYLOG": "jit-log-opt:%s" % tmpdir.join("x.pypylog"),
+                 "SDL_VIDEODRIVER": "dummy"}
         )
         proc.wait()
         data = logparser.parse_log_file(str(tmpdir.join("x.pypylog")), verbose=False)
diff --git a/spyvm/test/jittest/test_basic.py b/spyvm/test/jittest/test_basic.py
--- a/spyvm/test/jittest/test_basic.py
+++ b/spyvm/test/jittest/test_basic.py
@@ -13,9 +13,6 @@
         i60 = int_le(i49, 10000)
         guard_true(i60, descr=<Guard0xa15ec40>)
         i61 = int_add(i49, 1)
-        i62 = int_sub(i61, -1073741824)
-        i63 = uint_lt(i62, -2147483648)
-        guard_true(i63, descr=<Guard0xa15ec04>)
         i64 = int_sub(i57, 1)
         setfield_gc(ConstPtr(ptr54), i64, descr=<FieldS spyvm.interpreter.Interpreter.inst_interrupt_check_counter 16>)
         i65 = int_le(i64, 0)
@@ -41,9 +38,6 @@
         i34 = int_le(i16, 1000000000)
         guard_true(i34, descr=<Guard0x97619e8>)
         i36 = int_add(i16, 1)
-        i38 = int_sub(i36, -1073741824)
-        i40 = uint_lt(i38, -2147483648)
-        guard_true(i40, descr=<Guard0x97619ac>)
         setfield_gc(ConstPtr(ptr19), 9999, descr=<FieldS spyvm.interpreter.Interpreter.inst_interrupt_check_counter 24>)
         jump(p0, p1, i36, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, 9999, descr=TargetToken(158474976))
         """)
@@ -60,9 +54,6 @@
         i68 = int_le(i58, 10000)
         guard_true(i68, descr=<Guard0x9252088>)
         i69 = int_add(i58, 1)
-        i70 = int_sub(i69, -1073741824)
-        i71 = uint_lt(i70, -2147483648)
-        guard_true(i71, descr=<Guard0x925204c>)
         i72 = int_sub(i65, 1)
         setfield_gc(ConstPtr(ptr55), i72, descr=<FieldS spyvm.interpreter.Interpreter.inst_interrupt_check_counter 16>)
         i73 = int_le(i72, 0)
@@ -87,9 +78,6 @@
         i76 = int_le(i65, 100000),
         guard_true(i76, descr=<Guard0x9c66628>),
         i77 = int_add(i65, 1),
-        i78 = int_sub(i77, -1073741824),
-        i79 = uint_lt(i78, -2147483648),
-        guard_true(i79, descr=<Guard0x9c622a4>),
         i80 = int_sub(i73, 2),
         setfield_gc(ConstPtr(ptr70), i80, descr=<FieldS spyvm.interpreter.Interpreter.inst_interrupt_check_counter 24>),
         i81 = int_le(i80, 0),
@@ -121,12 +109,257 @@
         i73 = int_le(i62, 100000),
         guard_true(i73, descr=<Guard0x967e790>),
         i74 = int_add(i62, 1),
-        i75 = int_sub(i74, -1073741824),
-        i76 = uint_lt(i75, -2147483648),
-        guard_true(i76, descr=<Guard0x967e754>),
         i77 = int_sub(i70, 1),
         setfield_gc(ConstPtr(ptr67), i77, descr=<FieldS spyvm.interpreter.Interpreter.inst_interrupt_check_counter 24>),
         i78 = int_le(i77, 0),
         guard_false(i78, descr=<Guard0x967e718>),
         jump(p0, p3, i74, p8, p10, p12, p14, p20, p22, p24, p26, p28, p30, p32, p34, p36, p38, p40, p42, p44, p46, i77, descr=TargetToken(157713840))
         """)
+
+    def test_bitblt(self, spy, tmpdir):
+        # This used to have a call to array comparison in it
+        traces = self.run(spy, tmpdir, """
+        Display beDisplay.
+        1 to: 10000 do: [:i | Display fillWhite].
+        """)
+        self.assert_matches(traces[0].loop, """
+        guard_not_invalidated(descr=<Guard0xa3523d0>),
+        i540 = int_le(2, i151),
+        guard_false(i540, descr=<Guard0xa34fde4>),
+        i541 = getfield_gc_pure(p529, descr=<FieldS spyvm.model.W_SmallInteger.inst_value 8>),
+        i542 = int_add_ovf(i541, i158),
+        guard_no_overflow(descr=<Guard0xa34f574>),
+        i543 = getfield_gc_pure(p532, descr=<FieldS spyvm.model.W_SmallInteger.inst_value 8>),
+        i544 = int_add_ovf(i543, i165),
+        guard_no_overflow(descr=<Guard0xa34dcf4>),
+        i545 = int_add_ovf(i170, 1),
+        guard_no_overflow(descr=<Guard0xa34d808>),
+        i546 = int_sub(i525, 3),
+        setfield_gc(ConstPtr(ptr171), i546, descr=<FieldS spyvm.interpreter.Interpreter.inst_interrupt_check_counter 24>),
+        i547 = int_le(i546, 0),
+        guard_false(i547, descr=<Guard0xa34d5b0>),
+        i548 = int_le(i545, i179),
+        guard_true(i548, descr=<Guard0xa34aed4>),
+        i549 = getfield_gc_pure(p535, descr=<FieldS spyvm.model.W_SmallInteger.inst_value 8>),
+        i550 = int_mod(i549, i197),
+        i551 = int_rshift(i550, 31),
+        i552 = int_and(i197, i551),
+        i553 = int_add(i550, i552),
+        i554 = int_add_ovf(1, i553),
+        guard_no_overflow(descr=<Guard0xa347a9c>),
+        i555 = int_ge(i553, 0),
+        guard_true(i555, descr=<Guard0xa347664>),
+        i556 = int_lt(i553, i197),
+        guard_true(i556, descr=<Guard0xa347628>),
+        i557 = getarrayitem_gc(p213, i553, descr=<ArrayU 4>),
+        i558 = uint_lt(i557, 0),
+        guard_false(i558, descr=<Guard0xa3475b0>),
+        i559 = uint_lt(i557, 2147483647),
+        guard_true(i559, descr=<Guard0xa347574>),
+        i560 = int_add_ovf(i549, i221),
+        guard_no_overflow(descr=<Guard0xa345e5c>),
+        i561 = int_ge(i557, 0),
+        guard_true(i561, descr=<Guard0xa340f4c>),
+        i562 = int_and(i557, i557),
+        i563 = uint_lt(i562, 2147483647),
+        guard_true(i563, descr=<Guard0xa340ed4>),
+        i564 = int_add_ovf(i544, 1),
+        guard_no_overflow(descr=<Guard0xa340970>),
+        i565 = int_ge(i544, 0),
+        guard_true(i565, descr=<Guard0xa340538>),
+        i566 = int_lt(i544, i250),
+        guard_true(i566, descr=<Guard0xa3404fc>),
+        i567 = getarrayitem_raw(i252, i544, descr=<ArrayU 4>),
+        i568 = uint_lt(i567, 0),
+        guard_false(i568, descr=<Guard0xa3404c0>),
+        i569 = uint_lt(i567, 2147483647),
+        guard_true(i569, descr=<Guard0xa340484>),
+        i570 = int_ge(i562, 0),
+        guard_true(i570, descr=<Guard0xa3382a4>),
+        i571 = int_and(i282, i562),
+        i572 = uint_lt(i571, 2147483647),
+        guard_true(i572, descr=<Guard0xa338268>),
+        i573 = getarrayitem_raw(i252, i544, descr=<ArrayU 4>),
+        i574 = uint_lt(i573, 0),
+        guard_false(i574, descr=<Guard0xa3336dc>),
+        i575 = uint_lt(i573, 2147483647),
+        guard_true(i575, descr=<Guard0xa3336a0>),
+        i576 = int_ge(i573, 0),
+        guard_true(i576, descr=<Guard0xa333574>),
+        i577 = int_and(i293, i573),
+        i578 = uint_lt(i577, 2147483647),
+        guard_true(i578, descr=<Guard0xa333538>),
+        i579 = int_ge(i571, 0),
+        guard_true(i579, descr=<Guard0xa333448>),
+        i580 = int_ge(i577, 0),
+        guard_true(i580, descr=<Guard0xa33340c>),
+        i581 = int_or(i571, i577),
+        i582 = uint_lt(i581, 2147483647),
+        guard_true(i582, descr=<Guard0xa3333d0>),
+        setarrayitem_raw(i252, i544, i581, descr=<ArrayU 4>),
+        i584 = int_lshift(i544, 3),
+        i585 = int_ge(i584, i250),
+        guard_false(i585, descr=<Guard0xa330e5c>),
+        i586 = uint_rshift(i581, i328),
+        i587 = int_lshift(i581, i315),
+        i588 = uint_rshift(i587, i328),
+        i589 = int_lshift(i588, 8),
+        i590 = int_or(i586, i589),
+        i591 = int_lshift(i587, i315),
+        i592 = uint_rshift(i591, i328),
+        i593 = int_lshift(i592, 16),
+        i594 = int_or(i590, i593),
+        i595 = int_lshift(i591, i315),
+        i596 = uint_rshift(i595, i328),
+        i597 = int_lshift(i596, 24),
+        i598 = int_or(i594, i597),
+        i599 = int_lshift(i595, i315),
+        setarrayitem_raw(i349, i584, i598, descr=<ArrayU 4>),
+        i600 = int_add(i584, 1),
+        i601 = int_ge(i600, i250),
+        guard_false(i601, descr=<Guard0xa330de4>),
+        i602 = uint_rshift(i599, i328),
+        i603 = int_lshift(i599, i315),
+        i604 = uint_rshift(i603, i328),
+        i605 = int_lshift(i604, 8),
+        i606 = int_or(i602, i605),
+        i607 = int_lshift(i603, i315),
+        i608 = uint_rshift(i607, i328),
+        i609 = int_lshift(i608, 16),
+        i610 = int_or(i606, i609),
+        i611 = int_lshift(i607, i315),
+        i612 = uint_rshift(i611, i328),
+        i613 = int_lshift(i612, 24),
+        i614 = int_or(i610, i613),
+        i615 = int_lshift(i611, i315),
+        setarrayitem_raw(i349, i600, i614, descr=<ArrayU 4>),
+        i616 = int_add(i600, 1),
+        i617 = int_ge(i616, i250),
+        guard_false(i617, descr=<Guard0xa330d6c>),
+        i618 = uint_rshift(i615, i328),
+        i619 = int_lshift(i615, i315),
+        i620 = uint_rshift(i619, i328),
+        i621 = int_lshift(i620, 8),
+        i622 = int_or(i618, i621),
+        i623 = int_lshift(i619, i315),
+        i624 = uint_rshift(i623, i328),
+        i625 = int_lshift(i624, 16),
+        i626 = int_or(i622, i625),
+        i627 = int_lshift(i623, i315),
+        i628 = uint_rshift(i627, i328),
+        i629 = int_lshift(i628, 24),
+        i630 = int_or(i626, i629),
+        i631 = int_lshift(i627, i315),
+        setarrayitem_raw(i349, i616, i630, descr=<ArrayU 4>),
+        i632 = int_add(i616, 1),
+        i633 = int_ge(i632, i250),
+        guard_false(i633, descr=<Guard0xa330cf4>),
+        i634 = uint_rshift(i631, i328),
+        i635 = int_lshift(i631, i315),
+        i636 = uint_rshift(i635, i328),
+        i637 = int_lshift(i636, 8),
+        i638 = int_or(i634, i637),
+        i639 = int_lshift(i635, i315),
+        i640 = uint_rshift(i639, i328),
+        i641 = int_lshift(i640, 16),
+        i642 = int_or(i638, i641),
+        i643 = int_lshift(i639, i315),
+        i644 = uint_rshift(i643, i328),
+        i645 = int_lshift(i644, 24),
+        i646 = int_or(i642, i645),
+        i647 = int_lshift(i643, i315),
+        setarrayitem_raw(i349, i632, i646, descr=<ArrayU 4>),
+        i648 = int_add(i632, 1),
+        i649 = int_ge(i648, i250),
+        guard_false(i649, descr=<Guard0xa330c7c>),
+        i650 = uint_rshift(i647, i328),
+        i651 = int_lshift(i647, i315),
+        i652 = uint_rshift(i651, i328),
+        i653 = int_lshift(i652, 8),
+        i654 = int_or(i650, i653),
+        i655 = int_lshift(i651, i315),
+        i656 = uint_rshift(i655, i328),
+        i657 = int_lshift(i656, 16),
+        i658 = int_or(i654, i657),
+        i659 = int_lshift(i655, i315),
+        i660 = uint_rshift(i659, i328),
+        i661 = int_lshift(i660, 24),
+        i662 = int_or(i658, i661),
+        i663 = int_lshift(i659, i315),
+        setarrayitem_raw(i349, i648, i662, descr=<ArrayU 4>),
+        i664 = int_add(i648, 1),
+        i665 = int_ge(i664, i250),
+        guard_false(i665, descr=<Guard0xa330c04>),
+        i666 = uint_rshift(i663, i328),
+        i667 = int_lshift(i663, i315),
+        i668 = uint_rshift(i667, i328),
+        i669 = int_lshift(i668, 8),
+        i670 = int_or(i666, i669),
+        i671 = int_lshift(i667, i315),
+        i672 = uint_rshift(i671, i328),
+        i673 = int_lshift(i672, 16),
+        i674 = int_or(i670, i673),
+        i675 = int_lshift(i671, i315),
+        i676 = uint_rshift(i675, i328),
+        i677 = int_lshift(i676, 24),
+        i678 = int_or(i674, i677),
+        i679 = int_lshift(i675, i315),
+        setarrayitem_raw(i349, i664, i678, descr=<ArrayU 4>),
+        i680 = int_add(i664, 1),
+        i681 = int_ge(i680, i250),
+        guard_false(i681, descr=<Guard0xa330b8c>),
+        i682 = uint_rshift(i679, i328),
+        i683 = int_lshift(i679, i315),
+        i684 = uint_rshift(i683, i328),
+        i685 = int_lshift(i684, 8),
+        i686 = int_or(i682, i685),
+        i687 = int_lshift(i683, i315),
+        i688 = uint_rshift(i687, i328),
+        i689 = int_lshift(i688, 16),
+        i690 = int_or(i686, i689),
+        i691 = int_lshift(i687, i315),
+        i692 = uint_rshift(i691, i328),
+        i693 = int_lshift(i692, 24),
+        i694 = int_or(i690, i693),
+        i695 = int_lshift(i691, i315),
+        setarrayitem_raw(i349, i680, i694, descr=<ArrayU 4>),
+        i696 = int_add(i680, 1),
+        i697 = int_ge(i696, i250),
+        guard_false(i697, descr=<Guard0xa330b14>),
+        i698 = uint_rshift(i695, i328),
+        i699 = int_lshift(i695, i315),
+        i700 = uint_rshift(i699, i328),
+        i701 = int_lshift(i700, 8),
+        i702 = int_or(i698, i701),
+        i703 = int_lshift(i699, i315),
+        i704 = uint_rshift(i703, i328),
+        i705 = int_lshift(i704, 16),
+        i706 = int_or(i702, i705),
+        i707 = int_lshift(i703, i315),
+        i708 = uint_rshift(i707, i328),
+        i709 = int_lshift(i708, 24),
+        i710 = int_or(i706, i709),
+        i711 = int_lshift(i707, i315),
+        setarrayitem_raw(i349, i696, i710, descr=<ArrayU 4>),
+        i712 = int_add(i696, 1),
+        i713 = int_add_ovf(i542, i510),
+        guard_no_overflow(descr=<Guard0xa33031c>),
+        i714 = int_add_ovf(i544, i510),
+        guard_no_overflow(descr=<Guard0xa32ea9c>),
+        i715 = int_sub(i546, 26),
+        setfield_gc(ConstPtr(ptr171), i715, descr=<FieldS spyvm.interpreter.Interpreter.inst_interrupt_check_counter 24>),
+        i716 = int_le(i715, 0),
+        guard_false(i716, descr=<Guard0xa31e808>),
+        p717 = new_with_vtable(ConstClass(W_SmallInteger)),
+        setfield_gc(p717, i713, descr=<FieldS spyvm.model.W_SmallInteger.inst_value 8>),
+        setarrayitem_gc(p146, 34, p717, descr=<ArrayP 4>),
+        p718 = new_with_vtable(ConstClass(W_SmallInteger)),
+        setfield_gc(p718, i714, descr=<FieldS spyvm.model.W_SmallInteger.inst_value 8>),
+        setarrayitem_gc(p146, 35, p718, descr=<ArrayP 4>),
+        p719 = new_with_vtable(ConstClass(W_SmallInteger)),
+        setfield_gc(p719, i560, descr=<FieldS spyvm.model.W_SmallInteger.inst_value 8>),
+        setarrayitem_gc(p146, 20, p719, descr=<ArrayP 4>),
+        i720 = arraylen_gc(p146, descr=<ArrayP 4>),
+        i721 = arraylen_gc(p521, descr=<ArrayP 4>),
+        jump(p0, p3, p8, i557, p538, i562, p18, i545, p38, p40, p42, p44, p46, p48, p50, p52, p54, p56, p58, p60, p62, p64, p66, p68, p70, p72, p74, p76, p78, p80, p82, p84, p86, p88, p90, p92, p94, p96, p98, p100, p102, p104, p106, p108, p110, p112, p114, p116, p118, p120, p122, p124, p126, p128, p130, p132, p134, 1, p148, p717, i158, p156, p718, i165, p163, p146, i715, i179, p178, p719, i197, p188, p213, i221, p220, p228, p140, p242, i250, i252, i282, i293, i328, i315, i349, i510, p509, p538, p521, descr=TargetToken(169555520))]
+        """)


More information about the pypy-commit mailing list