Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes.
Set by lizmat on 24 May 2021.
00:00 reportable6 left 00:01 reportable6 joined 01:36 jdv_ joined 01:42 camelia left, jdv left 01:48 camelia joined
Geth MoarVM/main: ab61b04468 | (Timo Paulssen)++ | src/spesh/optimize.c
log reason when not inlining into inlined bb
timo the inline log said things like this before: Can NOT inline set (21) with bytecode size 32746 into (16): (null) 02:54
this (null) is now replaced by a reason
04:56 nativecallable6 left, linkable6 left, statisfiable6 left, shareable6 left, bisectable6 left, benchable6 left, squashable6 left, evalable6 left, unicodable6 left, bloatable6 left, quotable6 left, notable6 left, reportable6 left, greppable6 left, releasable6 left, tellable6 left, committable6 left, sourceable6 left, coverable6 left 04:57 bloatable6 joined, bisectable6 joined, greppable6 joined, squashable6 joined, shareable6 joined, evalable6 joined 04:58 tellable6 joined, quotable6 joined, benchable6 joined, reportable6 joined, unicodable6 joined, coverable6 joined, releasable6 joined, sourceable6 joined 04:59 committable6 joined, notable6 joined, statisfiable6 joined, nativecallable6 joined, linkable6 joined 06:00 reportable6 left 06:02 reportable6 joined 09:02 sena_kun joined 12:00 reportable6 left, reportable6 joined 18:00 reportable6 left 18:03 reportable6 joined
timo a fun random distraction: i saw a getattr_o being called on a p6int repr'd object and was wondering how that could be, and it was just some code that depended on the type of the argument and spesh couldn't prove the branch in question was impossible 18:59
19:30 japhb left 22:26 sena_kun left 22:50 sena_kun joined 22:52 sena_kun left
timo saw a load of unbox_u ops in the spesh log that were not being turned into something simpler, in this case it was unboxing a MAST::Local which happens in the op writer functions in lib/MAST/Ops.nqp 23:30
so now they turn into sp_p6oget_i or sp_p6oget_i32 (the 16 and 8 variants don't exist yet and i didn't feel like creating them yet) 23:31
and i think there's a possibility yet to devirtualize atkey_* and atpos_* better when it's on a p6opaque with a positional or associative delegation slot 23:42
we do do atkey_o on Perl6::Grammar objects (i.e. to get submatches) and atpos_o on QAST::Op (i.e. to get at the child nodes) 23:44
in that case we devirtualize directly into the reprop of P6opaque that looks up the position of the slot and the embedded STable and then gets the function pointer from there 23:46