Home - Summaries: (main) : (py3.11) : Everything - Nightly builds - Benchmarks - RPython - Builders - About

jit/metainterp/test/test_warmspot.py::TestLLWarmspot::()::test_simple_loop

self = <rpython.jit.metainterp.test.test_warmspot.TestLLWarmspot instance at 0x7f3a7afc3910>

    def test_simple_loop(self):
        mydriver = JitDriver(greens=[], reds=['m'])
        def f1(m):
            while m > 0:
                mydriver.jit_merge_point(m=m)
                m = m - 1
        self.meta_interp(f1, [8])
        self.check_trace_count(1)
        self.check_resops({'jump': 1, 'guard_true': 2, 'int_gt': 2,
>                          'int_sub': 2})

jit/metainterp/test/test_warmspot.py:252: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
jit/metainterp/test/support.py:199: in check_resops
    get_stats().check_resops(expected=expected, **check)
jit/metainterp/history.py:969: in check_resops
    return self._check_insns(insns, expected, check)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <rpython.jit.metainterp.history.Stats object at 0x7f3a7af9f3d0>
insns = {'guard_true': 2, 'int_add': 2, 'int_gt': 2, 'jump': 1}
expected = {'guard_true': 2, 'int_gt': 2, 'int_sub': 2, 'jump': 1}, check = {}

    def _check_insns(self, insns, expected, check):
        if expected is not None:
            insns.pop('debug_merge_point', None)
            insns.pop('enter_portal_frame', None)
            insns.pop('leave_portal_frame', None)
            insns.pop('label', None)
>           assert insns == expected
E           assert {'guard_true'... 2, 'jump': 1} == {'guard_true':... 2, 'jump': 1}
E             Omitting 3 identical items, use -v to show
E             Left contains more items:
E             {'int_add': 2}
E             Right contains more items:
E             {'int_sub': 2}
E             Use -v to get the full diff

jit/metainterp/history.py:977: AssertionError
---------- Captured stdout call ----------
	bh: goto_if_not_int_gt [0, 0, 30, 27] -> 30
	bh: void_return [<BHInterp <JitCode 'f1'>>] -> LeaveFrame!
~~~ return value: None
---------- Captured stderr call ----------
[rtyper] -=- specialized 6 blocks -=-
[rtyper] -=- specialized 4 more blocks -=-
[rtyper] -=- specialized 2 more blocks -=-
[rtyper] -=- specialized 7 more blocks -=-
[rtyper] -=- specialized 6 more blocks -=-
[rtyper] -=- specialized 17 more blocks -=-
[rtyper] -=- specialized 2 more blocks -=-
[rtyper] -=- specialized 3 more blocks -=-
[jitcodewriter:info] making JitCodes...
[jitcodewriter:info] There are 1 JitCode instances.
[jitcodewriter:info] There are 3 -live- ops. Size of liveness is 4 bytes
[jitcodewriter] compute_bitstrings:
[jitcodewriter]   0 effectinfos:
[jitcodewriter]     0 descrs for arrays
[jitcodewriter]     0 descrs for fields
[jitcodewriter]     0 descrs for interiorfields
[c5fd55107ee1c00] {jit-tracing
JIT starting (llgraph) 
(jitdriver: no get_printable_location) 
(jitdriver: no get_printable_location) 
[c5fd55107f68c00] {jit-trace-done
trace length: 37 
 number operations: 7 
 total snapshots: 2 
 snapshot data: 24 
 snapshot array data: 10 
 bigint consts:  0 0 
 float consts:  0 0 
 ref consts:  0 0 1 
 descrs: 1 
[c5fd55107f7d400] jit-trace-done}
[c5fd55107f9ac80] {jit-log-noopt
# Traced loop or bridge with 7 ops 
[i0] 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
i2 = int_sub(i0, 1) 
i4 = int_gt(i2, 0) 
guard_true(i4) 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
guard_future_condition() 
jump(i2, descr=<Loop-1>) 
[c5fd55107fc6d80] jit-log-noopt}
[c5fd55107fcf880] {jit-optimize
[c5fd55107fdf080] {jit-log-intbounds
[i0] 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
i2 = int_add(i0, -1) 
i4 = int_gt(i2, 0) 
guard_true(i4, descr=<rpython.jit.metainterp.compile.ResumeGuardDescr object at 0x7f3a7aef6a90>) [i2] 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
[c5fd5510817ae00] jit-log-intbounds}
[c5fd551081b0600] {jit-log-exported-state
[i5] 
  INP(i5 = int_add(i6, -1/ci)) 
  PureOp(i7 = int_gt(i5, 0/ci)) 
[c5fd551081bd680] jit-log-exported-state}
[c5fd551081c2900] jit-optimize}
[c5fd551081d2280] {jit-optimize
[c5fd5510822c480] {jit-log-intbounds
[i0] 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
# i1: (1 <= 0b0?...?)   IntBound(1, MAXINT) 
i3 = int_add(i1, -1) 
# i3: (0 <= 0b0?...? <= MAXINT - 1)   IntBound(0, MAXINT - 1) 
i5 = int_gt(i3, 0) 
guard_true(i5, descr=<rpython.jit.metainterp.compile.ResumeGuardDescr object at 0x7f3a7aef6a50>) [i3] 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
[c5fd5510843d300] jit-log-intbounds}
# i3: (1 <= 0b0?...?)   IntBound(1, MAXINT) 
jump(i3, descr=TargetToken(139889147366160)) 
[c5fd551084bad00] jit-optimize}
[c5fd551084c1a80] {jit-log-short-preamble
[] 
label(i8) 
jump() 
[c5fd551084cbe80] jit-log-short-preamble}
[c5fd551084e0280] {jit-backend
[c5fd551084ecb80] {jit-log-compiling-loop
[i6] 
label(i6, descr=TargetToken(139889148792592)) 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
i5 = int_add(i6, -1) 
i7 = int_gt(i5, 0) 
guard_true(i7, descr=<Guard0x7f3a7aef6a90>) [i5] 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
label(i5, descr=TargetToken(139889147366160)) 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
i12 = int_add(i5, -1) 
i14 = int_gt(i12, 0) 
guard_true(i14, descr=<Guard0x7f3a7aef6a50>) [i12] 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
jump(i12, descr=TargetToken(139889147366160)) 
[c5fd55108512d00] jit-log-compiling-loop}
[c5fd55108520f80] {jit-mem-looptoken-alloc
allocating Loop # 1 
[c5fd55108526f80] jit-mem-looptoken-alloc}
[c5fd55108550380] jit-backend}
compiled new loop 
[c5fd55108558600] {jit-log-opt-loop
# Loop 1 ((jitdriver: no get_printable_location)) : loop with 13 ops 
[i0] 
label(i0, descr=TargetToken(139889148792592)) 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
i2 = int_add(i0, -1) 
i4 = int_gt(i2, 0) 
guard_true(i4, descr=<Guard0x7f3a7aef6a90>) [i2] 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
label(i2, descr=TargetToken(139889147366160)) 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
i6 = int_add(i2, -1) 
i8 = int_gt(i6, 0) 
guard_true(i8, descr=<Guard0x7f3a7aef6a50>) [i6] 
debug_merge_point(0, 0, '(jitdriver: no get_printable_location)') 
jump(i6, descr=TargetToken(139889147366160)) 
[c5fd55108583b80] jit-log-opt-loop}
DoneWithThisFrameVoid 
[c5fd55108617b00] jit-tracing}
builder: rpython-linux-x86-64 build #918+
test: jit/metainterp/test/test_warmspot.py::TestLLWarmspot::()::test_simple_loop