jit/backend/x86/test/test_rawmem.py::TestRawMem::()::test_scoped_alloc_buffer
self = <rpython.jit.backend.x86.test.test_rawmem.TestRawMem object at 0x0bd64790>
def test_scoped_alloc_buffer(self):
def f():
with rffi.scoped_alloc_buffer(42) as p:
p.raw[0] = 'X'
s = p.str(1)
return ord(s[0])
> res = self.interp_operations(f, [])
jit/metainterp/test/test_rawmem.py:105:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
jit/metainterp/test/support.py:273: in interp_operations
result1 = _run_with_blackhole(self, args)
jit/metainterp/test/support.py:132: in _run_with_blackhole
blackholeinterp.run()
jit/metainterp/blackhole.py:360: in run
lle = get_llexception(self.cpu, e)
jit/metainterp/blackhole.py:354: in run
self.dispatch_loop(self, self.jitcode.code, self.position)
jit/metainterp/blackhole.py:95: in dispatch_loop
position = func(self, code, position)
jit/metainterp/blackhole.py:170: in handler
result = unboundmethod(*args)
jit/metainterp/blackhole.py:1285: in bhimpl_inline_call_r_r
None, args_r, None, jitcode.calldescr)
jit/backend/llsupport/llmodel.py:826: in bh_call_r
return calldescr.call_stub_r(func, args_i, args_r, args_f)
<570-codegen /workspace/rpython/jit/backend/llsupport/descr.py:608>:4: in call_stub
res = support.maybe_on_top_of_llinterp(rtyper, fnptr)(args_r[0])
jit/backend/llsupport/support.py:41: in on_top_of_llinterp
return llinterp.eval_graph(funcobj.graph, real_args)
rtyper/llinterp.py:102: in eval_graph
retval = llframe.eval()
rtyper/llinterp.py:300: in eval
nextblock, args = self.eval_block(nextblock)
rtyper/llinterp.py:329: in eval_block
rstackovf.check_stack_overflow()
rtyper/llinterp.py:324: in eval_block
self.eval_operation(op)
rtyper/llinterp.py:427: in eval_operation
retval = ophandler(*vals)
rtyper/llinterp.py:702: in op_direct_call
return self.perform_call(f, FTYPE.ARGS, args)
rtyper/llinterp.py:698: in perform_call
return frame.eval()
rtyper/llinterp.py:300: in eval
nextblock, args = self.eval_block(nextblock)
rtyper/llinterp.py:329: in eval_block
rstackovf.check_stack_overflow()
rtyper/llinterp.py:324: in eval_block
self.eval_operation(op)
rtyper/llinterp.py:427: in eval_operation
retval = ophandler(*vals)
rtyper/llinterp.py:702: in op_direct_call
return self.perform_call(f, FTYPE.ARGS, args)
rtyper/llinterp.py:698: in perform_call
return frame.eval()
rtyper/llinterp.py:300: in eval
nextblock, args = self.eval_block(nextblock)
rtyper/llinterp.py:329: in eval_block
rstackovf.check_stack_overflow()
rtyper/llinterp.py:324: in eval_block
self.eval_operation(op)
rtyper/llinterp.py:427: in eval_operation
retval = ophandler(*vals)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <rpython.rtyper.llinterp.LLFrame object at 0x0bf22cf0>, obj = 11
def op_gc_get_stats(self, obj):
> raise NotImplementedError("gc_get_stats")
E NotImplementedError: gc_get_stats
rtyper/llinterp.py:764: NotImplementedError
---------- Captured stdout call ----------
f:
0 new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0bf13190> -> %r0
4 inline_call_ir_v <JitCode 'scoped_alloc_buffer.__init__'>, I[$42], R[%r0]
11 -live- %r0
14 inline_call_r_r <JitCode 'scoped_alloc_buffer.__enter__'>, R[%r0] -> %r1
20 -live- %r0, %r1
23 getfield_gc_i %r1, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_raw> -> %i0
28 setarrayitem_raw_i %i0, $0, $'X', <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0bf13210>
34 inline_call_ir_r <JitCode 'scoped_alloc_buffer.str'>, I[$1], R[%r1] -> %r1
42 -live- %r0, %r1
45 catch_exception L1
48 inline_call_r_v <JitCode '__exit____star_3'>, R[%r0, $<* struct exceptions.Exception>, $<* struct exceptions.Exception>]
55 -live- %r1
58 inline_call_ir_i <JitCode 'll_stritem_nonneg__rpy_stringPtr_Signed'>, I[$0], R[%r1] -> %i0
66 -live- %i0
69 int_return %i0
71 ---
71 L1:
71 last_exception -> %i0
73 last_exc_value -> %r1
75 inline_call_r_v <JitCode '__exit____star_3'>, R[%r0, %r1, %r1]
82 -live- %r1
85 raise %r1
ll_stritem_nonneg__rpy_stringPtr_Signed:
0 strgetitem %r0, %i0 -> %i0
4 int_return %i0
__exit____star_3:
0 getfield_gc_i %r0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_raw> -> %i0
5 getfield_gc_r %r0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_gc_buf> -> %r1
10 getfield_gc_i %r0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_case_num> -> %i1
15 residual_call_ir_v $<* fn keep_buffer_alive_until_here>, I[%i0, %i1], R[%r1], <CallDescr(iri) EF=2>
24 void_return
scoped_alloc_buffer.str:
0 getfield_gc_i %r0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_raw> -> %i0
5 getfield_gc_r %r0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_gc_buf> -> %r1
10 getfield_gc_i %r0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_case_num> -> %i1
15 residual_call_ir_r $<* fn str_from_buffer>, I[%i0, %i1, $42, $1], R[%r1], <CallDescr(iriii) EF=5> -> %r0
27 -live- %r0
30 ref_return %r0
scoped_alloc_buffer.__enter__:
0 residual_call_ir_r $<* fn alloc_buffer>, I[$42], R[], <CallDescr(i) EF=5> -> %r1
8 -live- %r0, %r1
11 getfield_gc_i_pure %r1, FieldDescr<tuple3.item0> -> %i0
16 getfield_gc_r_pure %r1, FieldDescr<tuple3.item1> -> %r2
21 getfield_gc_i_pure %r1, FieldDescr<tuple3.item2> -> %i1
26 setfield_gc_i %r0, %i0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_raw>
31 setfield_gc_r %r0, %r2, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_gc_buf>
36 setfield_gc_i %r0, %i1, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_case_num>
41 ref_return %r0
scoped_alloc_buffer.__init__:
0 setfield_gc_i %r0, $42, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_size>
5 void_return
bh: new_with_vtable [<rpython.jit.backend.x86.runner.CPU386 object at 0x0be9be90>, <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0bf13190>] -> * <rpython.rtyper.lltypesystem.ll2ctypes._llgcopaque object at 0x0bf227f0>
bh: inline_call_ir_v [<rpython.jit.backend.x86.runner.CPU386 object at 0x0be9be90>, <JitCode 'scoped_alloc_buffer.__init__'>, [42], [<* <rpython.rtyper.lltypesystem.ll2ctypes._llgcopaque object at 0x0bf227f0>>]]
bh: live [12] -> 14
bh: inline_call_r_r [<rpython.jit.backend.x86.runner.CPU386 object at 0x0be9be90>, <JitCode 'scoped_alloc_buffer.__enter__'>, [<* <rpython.rtyper.lltypesystem.ll2ctypes._llgcopaque object at 0x0bf227f0>>]] -> NotImplementedError!
---------- Captured stderr call ----------
[rtyper] -=- specialized 81 blocks -=-
[rtyper] -=- specialized 4 more blocks -=-
[backendopt:removeassert] Removed 3 asserts
[backendopt:malloc] starting malloc removal
[backendopt:malloc] removed 0 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[rtyper] -=- specialized 2 more blocks -=-
[rtyper] -=- specialized 7 more blocks -=-
[rtyper] specializing: 100 / 100 blocks (100%)
[rtyper] -=- specialized 6 more blocks -=-
[rtyper] -=- specialized 17 more blocks -=-
[rtyper] -=- specialized 2 more blocks -=-
[jitcodewriter:info] making JitCodes...
[jitcodewriter:info] There are 6 JitCode instances.
[jitcodewriter:info] There are 8 -live- ops. Size of liveness is 16 bytes
(somefailed=True in jit/backend/x86/test/test_rawmem.py)
builder: rpython-linux-x86-32 build #771*
test: jit/backend/x86/test/test_rawmem.py::TestRawMem::()::test_scoped_alloc_buffer