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:04
reportable6 joined
00:12
squashable6 left
00:13
squashable6 joined
00:55
linkable6 joined,
statisfiable6 joined
00:57
bloatable6 joined
01:56
bisectable6 joined,
releasable6 joined,
evalable6 joined
01:57
unicodable6 joined
02:57
nativecallable6 left,
coverable6 left,
reportable6 left,
tellable6 left,
benchable6 left,
squashable6 left,
greppable6 left,
quotable6 left,
bisectable6 left,
committable6 left,
statisfiable6 left,
notable6 left,
shareable6 left,
linkable6 left,
unicodable6 left,
evalable6 left,
bloatable6 left,
releasable6 left
02:58
quotable6 joined,
releasable6 joined,
notable6 joined
02:59
nativecallable6 joined
03:00
reportable6 joined
03:56
sourceable6 joined
03:58
linkable6 joined,
committable6 joined
03:59
coverable6 joined,
squashable6 joined,
evalable6 joined,
benchable6 joined
04:00
greppable6 joined
04:51
squashable6 left
04:52
squashable6 joined
04:58
statisfiable6 joined
05:58
unicodable6 joined,
shareable6 joined
05:59
tellable6 joined
06:02
reportable6 left
06:03
reportable6 joined
07:24
frost joined
08:00
bloatable6 joined
|
|||
Nicholas | good *, bloatable6 | 08:21 | |
jnthnwrthngtn: yes, ASAN is back to the usual disdain for MoarVM | |||
(and shows no interest in timo's change either) | |||
08:49
frost left
08:52
frost joined
08:59
bisectable6 joined
09:00
squashable6 left
09:01
squashable6 joined
10:24
squashable6 left
11:26
squashable6 joined
12:02
squashable6 left,
reportable6 left
12:04
reportable6 joined
12:05
squashable6 joined
13:56
frost left
16:39
notable6 left,
reportable6 left,
squashable6 left,
shareable6 left,
committable6 left,
linkable6 left,
coverable6 left,
tellable6 left,
releasable6 left,
greppable6 left,
bloatable6 left,
statisfiable6 left,
bisectable6 left,
quotable6 left,
nativecallable6 left,
sourceable6 left,
evalable6 left,
benchable6 left,
unicodable6 left
16:40
tellable6 joined,
bisectable6 joined,
releasable6 joined,
committable6 joined,
linkable6 joined,
nativecallable6 joined,
greppable6 joined
16:41
shareable6 joined,
quotable6 joined,
notable6 joined
16:42
reportable6 joined,
coverable6 joined
|
|||
timo | made the absolutely smallest change in compile_mastop | 17:18 | |
17:22
lizmat_ joined
17:26
lizmat left
|
|||
timo | callgrinding core setting compilation to get like a comparison number but ... dang | 17:32 | |
17:36
squashable6 joined
17:41
benchable6 joined
17:42
sourceable6 joined
17:55
lizmat_ left
17:56
lizmat joined
18:02
reportable6 left
18:04
reportable6 joined
18:08
brrt joined
|
|||
Nicholas | good *, brrt | 18:10 | |
brrt | good * Nicholas | ||
any more quests for me | |||
Nicholas | "JIT all the things" | ||
(A joke) | 18:11 | ||
seriously - keep having fun | |||
brrt | :-) | 18:12 | |
18:25
squashable6 left
|
|||
timo | i mean, i'm still not sure how we'll be doing devirtualization of reprops and such in the exprjit | 18:25 | |
but that's probably not just a little weekend project | 18:26 | ||
brrt | it's not... I forgot what was the holdup for that | 18:28 | |
well, I recall what was my theory at least | |||
timo | probably "how to get the information were it needs to go" | ||
my h key is acting up today | |||
brrt | the theory was to add a method to the repr to allow it to add a template | ||
well, something like that | |||
and then... to have some way to create an includable header file, from a template file, that you could address-and-load by name | 18:29 | ||
and then the repr method would need to get the spesh graph so it could get facts | |||
timo | tis all goes in the main moarvm repo so we can probably make it hook in all the places we need it | 18:30 | |
brrt | yeah | ||
it's doable, it's just a bunch of plumbing | |||
Makefile plumbing, too | 18:31 | ||
timo | the spes method on the repr already gets the spesh graph so it can check facts and such | ||
how do we mark wat operations should go throug te repr's bonus function? | |||
brrt | ehm,... oh, I had a theory of that too; | 18:32 | |
the first input operand should be an object; and we should know the type of that object | 18:33 | ||
timo | don't forget our attribute related ops also take "the type that actually has the attributes" argument | 18:34 | |
but that very often just comes from a wval | |||
18:41
statisfiable6 joined,
unicodable6 joined
|
|||
timo | what has to actually happen so that the expr template written for a given reprop in a given repr ends up in the right spot? | 18:41 | |
18:42
evalable6 joined
|
|||
timo | can we just return something specific from the function and the exprjit engine can easily do the rest? | 18:42 | |
18:42
bloatable6 joined
|
|||
timo | i wonder if we can benefit from knowing values for some registers when they are used in templates for cases where refering to a moarvm register is more expensive than having an immediate value | 18:47 | |
m: say (2500 + 280 + 530 + 80) / 60 | 19:06 | ||
camelia | 56.5 | ||
timo | oof. almost an hour to callgrind my core setting compilation | ||
19:26
squashable6 joined
|
|||
timo | m: say 2500 / 60 | 19:31 | |
camelia | 41.666667 | ||
brrt | timo: that's mostly the idea yes; the method gets the tree, and it should be able to append its subtree for it, using templates that were generated for it | 19:48 | |
20:03
brrt left
22:12
sourceable6 left,
benchable6 left,
reportable6 left,
statisfiable6 left,
committable6 left,
coverable6 left,
nativecallable6 left,
notable6 left,
quotable6 left,
evalable6 left,
linkable6 left,
shareable6 left,
squashable6 left,
releasable6 left,
bisectable6 left,
unicodable6 left,
tellable6 left,
bloatable6 left,
greppable6 left,
squashable6 joined
22:14
bisectable6 joined,
benchable6 joined,
reportable6 joined
22:15
coverable6 joined,
unicodable6 joined,
sourceable6 joined,
releasable6 joined
22:26
TempIRCLogger left,
TempIRCLogger joined
|
|||
timo | i think the callgrind measurement was far too noisy | 22:31 | |
23:12
quotable6 joined
23:13
evalable6 joined,
committable6 joined
23:15
greppable6 joined,
tellable6 joined
|
|||
timo | so the exprjit repr function could return a template for the rest of the loop in MVM_jit_expr_tree_build to consume, or it could be asked to do all the remaining work by itself. I'm thinking we want to allow one of the two for common cases and the other for wen you need more control in your template? | 23:36 | |
so, a status return value and a MVMJitExprTemplate ** parameter for when the/a template should be taken from te repr's exprjit function and treated as normal | 23:37 | ||
aaaanyway i have a first draft of a little bit of the C that we'd need | 23:45 | ||
Geth | MoarVM/exprjit_repr_api: 0d5ab06374 | (Timo Paulssen)++ | 47 files add new function pointer to REPROps: exprjit here a repr could output a specialized tree for a given op, based on whatever is in the reprdata and known facts from the spesh graph. |
23:50 | |
MoarVM/exprjit_repr_api: d3949ccb1a | (Timo Paulssen)++ | src/jit/expr.c call a repr's exprjit function if it exists (none exist at the moment) |
|||
timo | calling all brrt's for review of this ;) |