01:55 ilbot3 joined 02:46 greppable6 joined, evalable6 joined, quotable6 joined, nativecallable6 joined, benchable6 joined, releasable6 joined, unicodable6 joined, coverable6 joined, bloatable6 joined, committable6 joined, bisectable6 joined, squashable6 joined, statisfiable6 joined 03:14 evalable6 joined 03:44 ggoebel joined 04:07 bloatable6 joined 04:20 committable6 joined 07:18 evalable6 joined 07:21 domidumont joined 07:29 domidumont joined 08:46 evalable6 joined 09:03 nwc10 joined 11:09 greppable6 joined 11:15 committable6 joined 12:41 MasterDuke joined 16:03 buggable joined
timotimo whoops, gotta put a little fix in for my debug name changes 17:09
Geth MoarVM: 19a2001bac | (Timo Paulssen)++ | src/spesh/dump.c
fix wrong access to debug_name in spesh dump
17:11
timotimo AlexDaniel`: this should make it into the release
17:28 zakharyas joined 18:24 brrt joined
brrt good * #moarvm 18:28
timotimo good * brrt 18:30
brrt hmm interesting...
timotimo whatcha got?
brrt waitaminute
oh, i need to set MVM_SPESH_BLOCKING i think 18:31
timotimo that often helps
brrt i'm debugging an issue in the optimizer
timotimo mhm 18:32
the spesh optimizer or the jit optimizer? :)
brrt jit optimizer
i'm pondering generalizing the jit bisect logic
well, we can do that partially with MVM_SPESH_LIMIT, can't we? 18:33
timotimo ?
brrt i'm pondering generalizing the debug log as well 18:34
and optimizing it away for the common case
so rather than MVM_jit_log(tc, ''ā€¦")
i'd have
timotimo if it takes that long to type, maybe it's not a good idea 18:41
brrt hehehe 18:53
no 18:54
i mean
i want MVM_JIT_DEBUG(msg, args)
but, i want that to do two things
- compile-time switchable
- sensitive to env var
- speciifc to frame / block 18:55
- specific to compilation phase
so you could have MVM_JIT_DEBUG=ALL and it would dump everything
or you could have MVM_JIT_DEBUG=REGISTER and dump only register allocation 18:56
or you could have MVM_JIT_DEBUG=REGISTER/21/17:ALL/102/3:OPTIMIZER/29/3
something like that
tuneable 18:57
18:57 zakharyas joined
timotimo oh 18:57
brrt and if it'd need compile-time support, who cares if it was 'expensive' to do
19:08 brrt joined 19:12 greppable6 joined, committable6 joined
brrt i found the optimizer bug, yay 19:18
actually 19:19
timotimo cool!
brrt it is kind of scary
it is a sp_p6obind_o 19:20
issue
and it comes to front by the introduction of a few copy nodes
timotimo interaction with object registers and GC? 19:22
brrt no, more innocent than that 19:25
but also a bit more scary 19:26
the tl;dr
timotimo listens intently
brrt sp_p6obind_o uses a macro write_barrier 19:27
this macro conditonally loads the value to be assigned
anyway, it uses a direct reference to the $2 (load) sequence, and evaluates that conditonally
the insertion of the COPY forces the evaluation and makes it the same 19:29
but
the condition is not always kept
timotimo oooh
brrt so the two worries i have
- this bug is always there in this case
because the expr jit is allowed to tile them as one and the same value 19:30
- i'm not sure whether to fix this in this specific template (and all other instances) by declaring a let:, or whether to somehow make the optimizer aware of inadvertent conditionally-evaluated references to values that are used in a block that isn't consequent to it 19:31
timotimo oof, good question
brrt obviously the first is much simpler than the second 19:32
timotimo yeah, but much less thorough
brrt true
and strictly speaking, this *is* a template bug 19:33
timotimo i.e. the problem could reappear again and again
brrt because the value being referenced - $2 - well, it's being loaded conditionally first
in the code, and that's not legal, since the expr JIT has no obligation to 'reload' the value
the other way to fix it is to have the analyzer decouple them 19:34
19:34 Ven joined
brrt but that's even less than ideal 19:34
19:41 AlexDaniel joined
brrt the other fix is not to do this kind of optimization just yet 19:42
but that's not where i want to go with this
timotimo BBIAB 19:46
19:56 bartolin joined 19:57 zakharyas joined 20:07 ilmari[m] joined 20:28 brrt joined 21:19 btyler joined 21:52 lizmat joined
Geth MoarVM: 833803b6a5 | (Samantha McVey)++ | docs/ChangeLog
Add changelog entries for the next release
23:26
samcv .tell brrt can you add what you would like to the changelog for the expression engine? You'd be the best one to know what should be added to the changelog 23:27
yoleaux samcv: I'll pass your message to brrt.
timotimo samcv: i think the "check caller chain before promotion" is only active when GC_DEBUG (or something) is on? maybe that detail wants to be pointed out? 23:38
samcv: "seakable" wants to be "seekable" 23:42
samcv here's a seaking cdn.bulbagarden.net/upload/thumb/6...eaking.png 23:47
will change :p
timotimo i like seadra more