| IRC logs at
Set by AlexDaniel on 12 June 2018.
01:06 konvertex left 02:58 pamplemousse left 03:13 pamplemousse joined 03:17 pamplemousse left 06:41 farcas1982regreg left 07:34 zakharyas joined 08:05 MasterDuke joined 08:06 Altai-man_ joined 08:17 sena_kun joined 08:19 Altai-man_ left 10:16 Altai-man_ joined 10:19 sena_kun left 10:31 farcas1982regreg joined 11:00 konvertex joined 12:17 sena_kun joined 12:19 Altai-man_ left 12:36 pamplemousse joined
timotimo i wonder how common hllizing is in common workloads, and if we should see if hllize could be split into a bunch of ops that could partially be simplified or specialized 13:11
like, if hllizing a BOOTArray into an Array means craeting an Array and binding a clone into its $!reified, the escape analysis could conceivably work with that 13:12
14:11 pamplemousse left 14:12 pamplemousse joined 14:16 Altai-man_ joined 14:17 pamplemousse left 14:19 sena_kun left 14:43 pamplemousse joined 15:02 pamplemousse left 15:03 pamplemousse joined 15:07 pamplemousse left
MasterDuke timotimo: more than does? 15:29
timotimo yes 15:31
that's for when hllize has to do nothing at all
nine MasterDuke: Escape analysis could detect that the HLL array does not escape and only it's $!reified is really used. So we could forgoe allocating that Array in the first place 15:32
But for that it must know that hllize will just allocate an Array and bind into it's $!reified
15:33 zakharyas left 15:35 pamplemousse joined
MasterDuke timotimo: when compiling CORE.c 15:41
timotimo does it actually invoke these frames? 15:43
int, num, str should be easy to spesh into equivalent bytecode 15:44
src/Perl6/bootstrap.c/BOOTSTRAP.nqp 15:46
3786: 'foreign_transform_array', -> $farray {
3791: 'foreign_transform_hash', -> $hash {
3796: 'foreign_transform_code', -> $code {
MasterDuke how would i know? i just stuck fprintfs in
timotimo did you put them directly after the "case" lines? 15:47
would be interesting to see a number for the if and the else branches respectively 15:48
MasterDuke yeah 15:49
timotimo we can probably turn the hllize - if we know the hll role and the hll's transformation functions at spesh time - into invokes, and have the rest of spesh continue the optimization into inlining
MasterDuke gist updated 15:53
timotimo mhm 15:54
could be worth just special case hash here 15:55
MasterDuke the current spesh optimization is for the more common case, right? "belongs to current HLL" 15:56
timotimo yes
MasterDuke but hash is right behind
timotimo almost 50/50
want to output the hll role for "belongs to current HLL"? 15:59
perhaps also the null one at the top? 16:00
16:03 sena_kun joined
MasterDuke gist updated 16:04
16:05 Altai-man_ left
timotimo 1814 obj HLL role is default 16:06
should be easy to optimize, too
if isnt already
MasterDuke that's just another conditional || to , right? 16:08
timotimo oh, if it's HLL_ROLE_NONE, it outputs default, but also if it's in current HLL 16:10
if it's default, what hll role value is it actually? is there anything other than the keys that are in the switch/case and _NONE?
also, a run with SPESH_DISABLE could be interesting to compare how many hlls are successfully prevented by spesh already 16:12
MasterDuke all defaults are 0 16:15
timotimo ok, in that case the hllize optimization already gets those
in theory
all the calls that remain must be from non-speshed code, or code where the type wasn't known etc 16:16
MasterDuke gist updated 16:17
timotimo ok the success rate of hllize to nothing for role being 0 is not overwhelming 16:19
1814 obj HLL role is default to 3739 obj HLL role is default, actually is 0 16:20
not so bad, but rare in general
cat has my hand again so typing is slooooow 16:22
MasterDuke i've gotten lost. is there an easy addition to the current optimization? 16:31
timotimo no, i think the one i was suggesting was basically already there
17:14 farcas1982regreg left 17:45 squashable6 left, squashable6 joined 18:03 zakharyas joined 18:04 Altai-man_ joined 18:07 sena_kun left 19:40 MasterDuke left 19:42 lucasb joined 20:05 sena_kun joined 20:07 Altai-man_ left 20:38 zakharyas left 21:50 sena_kun left 21:59 Kaiepi left 22:11 MasterDuke joined
Geth MoarVM: scovit++ created pull request #1285:
Setup inlined CStruct assigned during construction