Skip to content

Instantly share code, notes, and snippets.

@MasterDuke17
Last active December 1, 2021 22:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MasterDuke17/be5bc45d38e0a4643b44249435d0743c to your computer and use it in GitHub Desktop.
Save MasterDuke17/be5bc45d38e0a4643b44249435d0743c to your computer and use it in GitHub Desktop.
Samples: 1K of event 'cycles', Event count (approx.): 1667251962
Overhead Command Shared Object Symbol
38.36% raku [JIT] tid 48592 [.] <unit>(-e:1)
3.75% raku libmoar.so [.] MVM_gc_collect_free_nursery_uncopied
3.69% raku libmoar.so [.] gc_free
2.78% raku libmoar.so [.] MVM_interp_run
2.53% raku libc-2.33.so [.] __memset_avx2_unaligned_erms
2.23% raku libmoar.so [.] MVM_gc_allocate_nursery
1.50% raku libc-2.33.so [.] _int_malloc
1.22% spesh optimizer libmoar.so [.] process_bb_for_deopt_usage
1.01% raku libmoar.so [.] MVM_serialization_read_ref
0.92% raku libmoar.so [.] MVM_disp_program_run
0.82% raku libmoar.so [.] SCRef_gc_mark
0.76% raku libmoar.so [.] MVM_gc_allocate_object
0.75% spesh optimizer libmoar.so [.] MVM_spesh_inline
0.75% raku libmoar.so [.] MVM_validate_static_frame
0.73% raku libmoar.so [.] validate_operands
0.72% spesh optimizer libmoar.so [.] MVM_jit_linear_scan_allocate
0.67% raku libc-2.33.so [.] malloc
0.66% raku libmoar.so [.] MVM_reentrantmutex_unlock
0.62% raku libmoar.so [.] MVM_sc_get_object
0.57% raku libmoar.so [.] MVM_fixed_size_alloc
0.57% raku [kernel.kallsyms] [k] clear_page_rep
0.57% raku libc-2.33.so [.] __memcmp_avx2_movbe
0.52% spesh optimizer libc-2.33.so [.] _int_malloc
0.51% raku libmoar.so [.] MVM_frame_dispatch
0.51% raku [kernel.kallsyms] [k] asm_exc_page_fault
0.51% raku [kernel.kallsyms] [k] unmap_page_range
0.48% raku libmoar.so [.] MVM_serialization_read_int
0.43% spesh optimizer libmoar.so [.] MVM_jit_tile_state_lookup.constprop.0
0.43% raku libmoar.so [.] MVM_reentrantmutex_lock
0.41% raku libmoar.so [.] MVM_cu_obtain_string
0.41% raku libmoar.so [.] deserialize
0.40% raku libmoar.so [.] MVM_string_equal
0.39% spesh optimizer libc-2.33.so [.] _int_free
0.38% raku libmoar.so [.] MVM_callsite_mark
0.38% spesh optimizer libmoar.so [.] apply_template
0.38% spesh optimizer libmoar.so [.] by_offset
0.37% raku libmoar.so [.] MVM_serialization_demand_object
- QAST::CompUnit :W<?> :UNIT<?> :CAN_LOWER_TOPIC<?>
[pre_deserialize]
- QAST::Stmt
- QAST::Stmt
- QAST::Op(loadbytecode)
- QAST::VM
[moar]
- QAST::SVal(ModuleLoader.moarvm)
[jvm]
- QAST::SVal(ModuleLoader.class)
[js]
- QAST::SVal(ModuleLoader)
- QAST::Op(callmethod load_module)
- QAST::Op(gethllsym)
- QAST::SVal(nqp)
- QAST::SVal(ModuleLoader)
- QAST::SVal(Perl6::ModuleLoader)
- QAST::Op(forceouterctx)
- QAST::BVal(4)
- QAST::Op(callmethod load_setting)
- QAST::Op(getcurhllsym)
- QAST::SVal(ModuleLoader)
- QAST::SVal(CORE.d)
[post_deserialize]
- QAST::Stmts
- QAST::Op(bind)
- QAST::Var(attribute $!do)
- QAST::WVal(Block)
- QAST::WVal(Code)
- QAST::BVal(1)
- QAST::Stmts
- QAST::Op(bind)
- QAST::Var(attribute $!do)
- QAST::WVal(Code)
- QAST::WVal(Code)
- QAST::BVal(2)
- QAST::Stmts
- QAST::Op(bind)
- QAST::Var(attribute $!do)
- QAST::WVal(Block)
- QAST::WVal(Code)
- QAST::BVal(3)
- QAST::Op(ifnull)
- QAST::Op(getcurhllsym)
- QAST::SVal(GLOBAL)
- QAST::Op(bindcurhllsym)
- QAST::SVal(GLOBAL)
- QAST::WVal(GLOBAL)
[load]
- QAST::Op(call)
- QAST::BVal(4)
[children]
- QAST::Block(:name(<unit-outer>) :cuid(4)) :in_stmt_mod<?> for ^10_000_000 { my $x = 0 }; say now - INIT now
│ - QAST::Var(local __args__ :decl(param))
│ - QAST::Stmts for ^10_000_000 { my $x = 0 }; say now - INIT now
│ - QAST::Op(call)
│ - QAST::Block(:name(<unit>) :cuid(3) :blocktype(declaration_static)) :outer<?> :in_stmt_mod<?> :code_object<?> :IN_DECL<mainline>
│ │ - QAST::Stmts for ^10_000_000 { my $x = 0 }; say now - INIT now
│ │ - QAST::Var(lexical !INIT_VALUES :decl(contvar))
│ │ [value]
│ │ -
│ │ - QAST::Var(lexical $¢ :decl(contvar))
│ │ - QAST::Var(lexical $! :decl(contvar))
│ │ - QAST::Var(lexical $/ :decl(contvar))
│ │ - QAST::Op(null)
│ │ - QAST::Var(lexical GLOBALish :decl(static))
│ │ - QAST::Var(lexical EXPORT :decl(static))
│ │ - QAST::Var(lexical $?PACKAGE :decl(static))
│ │ - QAST::Var(lexical ::?PACKAGE :decl(static))
│ │ - QAST::Var(lexical $=finish :decl(static))
│ │ - QAST::Block(:name() :cuid(1) :blocktype(declaration_static)) <sunk> :statement_id<1> :outer<?> :in_stmt_mod<?> :count<?> :code_object<?> { my $x = 0 }
│ │ │ - QAST::Stmts
│ │ │ - QAST::Var(lexical $_ :decl(static))
│ │ │ - QAST::Var(lexical $x :decl(static))
│ │ │ - QAST::Var(local __lowered_lex_1 :decl(var))
│ │ │ - QAST::Var(local __lowered_lex_2 :decl(param))
│ │ │ - QAST::Op(bind)
│ │ │ - QAST::Var(local __lowered_lex_1)
│ │ │ - QAST::Op(p6bindattrinvres)
│ │ │ - QAST::Op(p6bindattrinvres)
│ │ │ - QAST::Op(create)
│ │ │ - QAST::WVal(Scalar)
│ │ │ - QAST::WVal(Scalar)
│ │ │ - QAST::SVal($!descriptor)
│ │ │ - QAST::WVal(ContainerDescriptor::Untyped)
│ │ │ - QAST::WVal(Scalar)
│ │ │ - QAST::SVal($!value)
│ │ │ - QAST::WVal(Any)
│ │ │ - QAST::Stmts <sunk> my $x = 0
│ │ │ - QAST::Stmt <sunk final> my $x = 0
│ │ │ - QAST::Op(p6assign) :statement_id<2>
│ │ │ - QAST::Var(local __lowered_lex_1) <wanted sinkok> $x
│ │ │ - QAST::Want <wanted> 0
│ │ │ - QAST::WVal(Int)
│ │ │ - Ii
│ │ │ - QAST::IVal(0) 0
│ │ - QAST::Block(:name() :cuid(2) :blocktype(declaration_static)) <wanted> :statement_id<4> :outer<?> :in_stmt_mod<?> :code_object<?>
│ │ │ - QAST::Stmts now
│ │ │ - QAST::Stmts <wanted>
│ │ │ - QAST::Want <wanted>
│ │ │ - QAST::Op(callstatic &term:<now>) <wanted> :statement_id<5> now
│ │ │ - v
│ │ │ - QAST::Op(p6sink)
│ │ │ - QAST::Op(callstatic &term:<now>) <wanted> :statement_id<5> now
│ │ - QAST::Op(callmethod BIND-KEY)
│ │ - QAST::Var(lexical !INIT_VALUES)
│ │ - QAST::SVal(2)
│ │ - QAST::Op(call)
│ │ - QAST::WVal(Code)
│ │ - QAST::Var(lexical $=pod :decl(static))
│ │ [value]
│ │ -
│ │ - QAST::Var(lexical !UNIT_MARKER :decl(static))
│ │ - QAST::Stmts
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local ctxsave :decl(var))
│ │ - QAST::Var(contextual $*CTXSAVE)
│ │ - QAST::Op(unless)
│ │ - QAST::Op(isnull)
│ │ - QAST::Var(local ctxsave)
│ │ - QAST::Op(if)
│ │ - QAST::Op(can)
│ │ - QAST::Var(local ctxsave)
│ │ - QAST::SVal(ctxsave)
│ │ - QAST::Op(callmethod ctxsave)
│ │ - QAST::Var(local ctxsave)
│ │ - QAST::Stmts
│ │ - QAST::WVal(Array)
│ │ - QAST::Stmts <sunk> for ^10_000_000 { my $x = 0 }; say now - INIT now
│ │ - QAST::Stmt <sunk> for ^10_000_000 { my $x = 0 }
│ │ - QAST::Want <sunk> :statement_id<1> :statement_level<?>
│ │ - QAST::Op(stmts) <sunk> :IterationEnd<?> for ^10_000_000 { my $x = 0 }
│ │ - QAST::Stmts
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_it__1 :decl(var))
│ │ - QAST::IVal(-1)
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_last__1 :decl(var))
│ │ - QAST::IVal(9999999)
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_callee__1 :decl(var))
│ │ - QAST::Op(p6capturelex) :code_object<?> :past_block<?>
│ │ - QAST::Op(callmethod clone)
│ │ - QAST::WVal(Block :cuid(1)) :uninstall_if_immediately_used<?> :past_block<?> :code_object<?>
│ │ - QAST::Op(while)
│ │ - QAST::Op(isle_i)
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_it__1)
│ │ - QAST::Op(add_i)
│ │ - QAST::Var(local range_it__1)
│ │ - QAST::IVal(1)
│ │ - QAST::Var(local range_last__1)
│ │ - QAST::Op(call)
│ │ - QAST::Var(local range_callee__1)
│ │ - QAST::Var(local range_it__1)
│ │ - QAST::WVal(Nil)
│ │ - v
│ │ - QAST::Op(p6sink) <sunk>
│ │ - QAST::Op(stmts) <sunk> :IterationEnd<?> for ^10_000_000 { my $x = 0 }
│ │ - QAST::Stmts
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_it__1 :decl(var))
│ │ - QAST::IVal(-1)
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_last__1 :decl(var))
│ │ - QAST::IVal(9999999)
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_callee__1 :decl(var))
│ │ - QAST::Op(p6capturelex) :code_object<?> :past_block<?>
│ │ - QAST::Op(callmethod clone)
│ │ - QAST::WVal(Block :cuid(1)) :uninstall_if_immediately_used<?> :past_block<?> :code_object<?>
│ │ - QAST::Op(while)
│ │ - QAST::Op(isle_i)
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_it__1)
│ │ - QAST::Op(add_i)
│ │ - QAST::Var(local range_it__1)
│ │ - QAST::IVal(1)
│ │ - QAST::Var(local range_last__1)
│ │ - QAST::Op(call)
│ │ - QAST::Var(local range_callee__1)
│ │ - QAST::Var(local range_it__1)
│ │ - QAST::WVal(Nil)
│ │ - QAST::Stmt <sunk final> say now - INIT now
│ │ - QAST::Want <sunk>
│ │ - QAST::Op(callstatic &say) <sunk> :statement_id<4> say now - INIT now
│ │ - QAST::Op(callstatic &infix:<->) <wanted> -
│ │ - QAST::Op(callstatic &term:<now>) <wanted> now
│ │ - QAST::Op(callmethod AT-KEY) <wanted>
│ │ - QAST::Var(lexical !INIT_VALUES) <wanted>
│ │ - QAST::SVal(2) <wanted>
│ │ - v
│ │ - QAST::Op(p6sink)
│ │ - QAST::Op(callstatic &say) <sunk> :statement_id<4> say now - INIT now
│ │ - QAST::Op(callstatic &infix:<->) <wanted> -
│ │ - QAST::Op(callstatic &term:<now>) <wanted> now
│ │ - QAST::Op(callmethod AT-KEY) <wanted>
│ │ - QAST::Var(lexical !INIT_VALUES) <wanted>
│ │ - QAST::SVal(2) <wanted>
│ │ - QAST::WVal(Nil)
Samples: 6K of event 'cycles', Event count (approx.): 6258294844
Overhead Command Shared Object Symbol
8.46% raku libmoar.so [.] MVM_fixed_size_alloc
8.14% raku [JIT] tid 48334 [.] <unit>(-e:1)
7.34% raku libmoar.so [.] MVM_frame_dispatch
6.72% raku libmoar.so [.] MVM_interp_run
6.10% raku libmoar.so [.] MVM_frame_takeclosure
5.36% raku libmoar.so [.] MVM_gc_allocate_object
4.19% raku libmoar.so [.] MVM_gc_collect_free_nursery_uncopied
3.96% raku libmoar.so [.] copy_to
3.60% raku [JIT] tid 48334 [.] (-e:1)
3.55% raku libmoar.so [.] MVM_args_set_result_obj
3.24% raku libc-2.33.so [.] __memset_avx2_unaligned_erms
3.23% raku libmoar.so [.] MVM_repr_clone
2.64% raku libmoar.so [.] MVM_callstack_allocate_heap_frame
2.63% raku libmoar.so [.] exit_heap_frame
2.49% raku libmoar.so [.] MVM_frame_vivify_lexical
2.33% raku libmoar.so [.] MVM_callstack_unwind_frame
1.99% raku libmoar.so [.] MVM_fixed_size_free
1.54% raku libmoar.so [.] MVM_gc_allocate_nursery
1.53% raku libmoar.so [.] MVM_frame_try_return
1.15% raku libmoar.so [.] gc_free
1.08% raku libmoar.so [.] MVM_callsite_mark
0.96% raku libmoar.so [.] allocate
0.84% raku libmoar.so [.] MVM_gc_allocate_frame
0.79% raku libmoar.so [.] MVM_frame_destroy
0.75% raku libc-2.33.so [.] __memset_avx2_unaligned
0.54% raku libc-2.33.so [.] cfree@GLIBC_2.2.5
0.47% raku libc-2.33.so [.] _int_malloc
0.39% raku libmoar.so [.] MVM_fixed_size_alloc_zeroed
0.33% spesh optimizer libmoar.so [.] process_bb_for_deopt_usage
0.31% spesh optimizer libmoar.so [.] MVM_spesh_inline
0.31% raku [kernel.kallsyms] [k] clear_page_rep
0.29% raku libmoar.so [.] MVM_disp_program_run
0.26% raku libmoar.so [.] MVM_serialization_read_ref
0.24% raku libmoar.so [.] MVM_jit_code_trampoline
0.24% spesh optimizer libc-2.33.so [.] _int_malloc
0.22% raku libmoar.so [.] SCRef_gc_mark
0.21% raku libmoar.so [.] MVM_jit_code_enter@plt
- QAST::CompUnit :W<?> :UNIT<?> :CAN_LOWER_TOPIC<?>
[pre_deserialize]
- QAST::Stmt
- QAST::Stmt
- QAST::Op(loadbytecode)
- QAST::VM
[moar]
- QAST::SVal(ModuleLoader.moarvm)
[jvm]
- QAST::SVal(ModuleLoader.class)
[js]
- QAST::SVal(ModuleLoader)
- QAST::Op(callmethod load_module)
- QAST::Op(gethllsym)
- QAST::SVal(nqp)
- QAST::SVal(ModuleLoader)
- QAST::SVal(Perl6::ModuleLoader)
- QAST::Op(forceouterctx)
- QAST::BVal(6)
- QAST::Op(callmethod load_setting)
- QAST::Op(getcurhllsym)
- QAST::SVal(ModuleLoader)
- QAST::SVal(CORE.d)
[post_deserialize]
- QAST::Stmts
- QAST::Stmts
- QAST::Op(bind)
- QAST::Var(attribute $!do)
- QAST::WVal(Block)
- QAST::WVal(Code)
- QAST::BVal(3)
- QAST::Stmts
- QAST::Op(bind)
- QAST::Var(attribute $!do)
- QAST::WVal(Code)
- QAST::WVal(Code)
- QAST::BVal(4)
- QAST::Stmts
- QAST::Op(bind)
- QAST::Var(attribute $!do)
- QAST::WVal(Block)
- QAST::WVal(Code)
- QAST::BVal(5)
- QAST::Op(ifnull)
- QAST::Op(getcurhllsym)
- QAST::SVal(GLOBAL)
- QAST::Op(bindcurhllsym)
- QAST::SVal(GLOBAL)
- QAST::WVal(GLOBAL)
[load]
- QAST::Op(call)
- QAST::BVal(6)
[children]
- QAST::Block(:name(<unit-outer>) :cuid(6)) :in_stmt_mod<?> for ^10_000_000 { my $x is default(0) }; say now -...
│ - QAST::Var(local __args__ :decl(param))
│ - QAST::Stmts for ^10_000_000 { my $x is default(0) }; say now -...
│ - QAST::Op(call)
│ - QAST::Block(:name(<unit>) :cuid(5) :blocktype(declaration_static)) :outer<?> :in_stmt_mod<?> :code_object<?> :IN_DECL<mainline>
│ │ - QAST::Stmts for ^10_000_000 { my $x is default(0) }; say now -...
│ │ - QAST::Var(lexical !INIT_VALUES :decl(contvar))
│ │ [value]
│ │ -
│ │ - QAST::Var(lexical $¢ :decl(contvar))
│ │ - QAST::Var(lexical $! :decl(contvar))
│ │ - QAST::Var(lexical $/ :decl(contvar))
│ │ - QAST::Op(null)
│ │ - QAST::Var(lexical GLOBALish :decl(static))
│ │ - QAST::Var(lexical EXPORT :decl(static))
│ │ - QAST::Var(lexical $?PACKAGE :decl(static))
│ │ - QAST::Var(lexical ::?PACKAGE :decl(static))
│ │ - QAST::Var(lexical $=finish :decl(static))
│ │ - QAST::Block(:name() :cuid(3) :blocktype(declaration_static)) <sunk> :statement_id<1> :outer<?> :in_stmt_mod<?> :count<?> :code_object<?> { my $x is default(0) }
│ │ │ - QAST::Stmts
│ │ │ - QAST::Var(lexical $_ :decl(static))
│ │ │ - QAST::Var(lexical $x :decl(contvar)) :lexical_used_implicitly<?>
│ │ │ [value]
│ │ │ - 0
│ │ │ - QAST::Var(local __lowered_lex_1 :decl(param))
│ │ │ - QAST::Block(:name() :cuid(1)) :statement_id<2> :outer<?> :in_stmt_mod<?> :code_object<?> :DYNAMICALLY_COMPILED<?>
│ │ │ │ - QAST::Stmts is default(0)
│ │ │ │ - QAST::Stmts <wanted> 0
│ │ │ │ - QAST::Want <wanted> :statement_id<3> 0
│ │ │ │ - QAST::WVal(Int)
│ │ │ │ - Ii
│ │ │ │ - QAST::IVal(0) 0
│ │ │ - QAST::Stmts <sunk> my $x is default(0)
│ │ │ - QAST::Stmt <sunk final> my $x is default(0)
│ │ │ - QAST::Var(lexical $x) <sinkok> :statement_id<2> $x
│ │ - QAST::Block(:name() :cuid(4) :blocktype(declaration_static)) <wanted> :statement_id<6> :outer<?> :in_stmt_mod<?> :code_object<?>
│ │ │ - QAST::Stmts now
│ │ │ - QAST::Stmts <wanted>
│ │ │ - QAST::Want <wanted>
│ │ │ - QAST::Op(callstatic &term:<now>) <wanted> :statement_id<7> now
│ │ │ - v
│ │ │ - QAST::Op(p6sink)
│ │ │ - QAST::Op(callstatic &term:<now>) <wanted> :statement_id<7> now
│ │ - QAST::Op(callmethod BIND-KEY)
│ │ - QAST::Var(lexical !INIT_VALUES)
│ │ - QAST::SVal(4)
│ │ - QAST::Op(call)
│ │ - QAST::WVal(Code)
│ │ - QAST::Var(lexical $=pod :decl(static))
│ │ [value]
│ │ -
│ │ - QAST::Var(lexical !UNIT_MARKER :decl(static))
│ │ - QAST::Stmts
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local ctxsave :decl(var))
│ │ - QAST::Var(contextual $*CTXSAVE)
│ │ - QAST::Op(unless)
│ │ - QAST::Op(isnull)
│ │ - QAST::Var(local ctxsave)
│ │ - QAST::Op(if)
│ │ - QAST::Op(can)
│ │ - QAST::Var(local ctxsave)
│ │ - QAST::SVal(ctxsave)
│ │ - QAST::Op(callmethod ctxsave)
│ │ - QAST::Var(local ctxsave)
│ │ - QAST::Stmts
│ │ - QAST::WVal(Array)
│ │ - QAST::Stmts <sunk> for ^10_000_000 { my $x is default(0) }; say now -...
│ │ - QAST::Stmt <sunk> for ^10_000_000 { my $x is default(0) }
│ │ - QAST::Want <sunk> :statement_id<1> :statement_level<?>
│ │ - QAST::Op(stmts) <sunk> :IterationEnd<?> for ^10_000_000 { my $x is default(0) }
│ │ - QAST::Stmts
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_it__1 :decl(var))
│ │ - QAST::IVal(-1)
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_last__1 :decl(var))
│ │ - QAST::IVal(9999999)
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_callee__1 :decl(var))
│ │ - QAST::Op(p6capturelex) :code_object<?> :past_block<?>
│ │ - QAST::Op(callmethod clone)
│ │ - QAST::WVal(Block :cuid(3)) :uninstall_if_immediately_used<?> :past_block<?> :code_object<?>
│ │ - QAST::Op(while)
│ │ - QAST::Op(isle_i)
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_it__1)
│ │ - QAST::Op(add_i)
│ │ - QAST::Var(local range_it__1)
│ │ - QAST::IVal(1)
│ │ - QAST::Var(local range_last__1)
│ │ - QAST::Op(call)
│ │ - QAST::Var(local range_callee__1)
│ │ - QAST::Var(local range_it__1)
│ │ - QAST::WVal(Nil)
│ │ - v
│ │ - QAST::Op(p6sink) <sunk>
│ │ - QAST::Op(stmts) <sunk> :IterationEnd<?> for ^10_000_000 { my $x is default(0) }
│ │ - QAST::Stmts
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_it__1 :decl(var))
│ │ - QAST::IVal(-1)
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_last__1 :decl(var))
│ │ - QAST::IVal(9999999)
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_callee__1 :decl(var))
│ │ - QAST::Op(p6capturelex) :code_object<?> :past_block<?>
│ │ - QAST::Op(callmethod clone)
│ │ - QAST::WVal(Block :cuid(3)) :uninstall_if_immediately_used<?> :past_block<?> :code_object<?>
│ │ - QAST::Op(while)
│ │ - QAST::Op(isle_i)
│ │ - QAST::Op(bind)
│ │ - QAST::Var(local range_it__1)
│ │ - QAST::Op(add_i)
│ │ - QAST::Var(local range_it__1)
│ │ - QAST::IVal(1)
│ │ - QAST::Var(local range_last__1)
│ │ - QAST::Op(call)
│ │ - QAST::Var(local range_callee__1)
│ │ - QAST::Var(local range_it__1)
│ │ - QAST::WVal(Nil)
│ │ - QAST::Stmt <sunk final> say now - INIT now
│ │ - QAST::Want <sunk>
│ │ - QAST::Op(callstatic &say) <sunk> :statement_id<6> say now - INIT now
│ │ - QAST::Op(callstatic &infix:<->) <wanted> -
│ │ - QAST::Op(callstatic &term:<now>) <wanted> now
│ │ - QAST::Op(callmethod AT-KEY) <wanted>
│ │ - QAST::Var(lexical !INIT_VALUES) <wanted>
│ │ - QAST::SVal(4) <wanted>
│ │ - v
│ │ - QAST::Op(p6sink)
│ │ - QAST::Op(callstatic &say) <sunk> :statement_id<6> say now - INIT now
│ │ - QAST::Op(callstatic &infix:<->) <wanted> -
│ │ - QAST::Op(callstatic &term:<now>) <wanted> now
│ │ - QAST::Op(callmethod AT-KEY) <wanted>
│ │ - QAST::Var(lexical !INIT_VALUES) <wanted>
│ │ - QAST::SVal(4) <wanted>
│ │ - QAST::WVal(Nil)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment