github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm 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 github.com/MoarVM/MoarVM/blob/mast...#L565-L579 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: gist.github.com/MasterDuke17/3e02e...3222346d78 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 github.com/MoarVM/MoarVM/blob/mast...#L181-L267 | ||
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 | |
*most | |||
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 | |
0 is MVM_HLL_ROLE_NONE, 5 is MVM_HLL_ROLE_HASH | 16:05 | ||
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 github.com/MoarVM/MoarVM/blob/mast...#L572-L573 , 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 |
22:48 |