MasterDuke timotimo: any thoughts why ^^^ is slower after samcv's recent change? 00:02
00:12 lizmat joined
MasterDuke callgrind shows 100m fewer instructions after (for only 100 iterations), but it's definitely slower time-wise 02:08
samcv MasterDuke: you missed where i said it was a 32 bit string 02:24
so it doesn't use memset because it originates from a 32 bit string. though that test case is basically the worst possible case 02:25
and shouldn't be a reason not to keep the changes. since more memcpy calls is slower, and if you do "ax" x 1_000_000 it becomes 1.5x faster than before
MasterDuke fwiw, `my str $a ...` wasn't really any better
i also tried "a", "ab", and "abcd" and all were slower 02:26
are you compiling with clang? 02:27
samcv it takes 4.0 secs with ab as oppsoed to 6.3 before
(before the new changes)
i'm compiling with clang
MasterDuke with gcc, "ab" takes 6.1s before, 6.5s after 02:29
samcv interesting
also i get it being faster with the new code for "a"
3.17s vs 4.2s
MasterDuke for me, 3.5s before, 5.0s after for "a" 02:30
samcv gcc i get 3.17s after 2.17s before 02:31
MasterDuke are you using MVM_SPESH_BLOCKING=1?
samcv no
why would i use that?
MasterDuke make spesh deterministic, so benchmarking is more repeatable 02:32
samcv ah
well anyway i am working on code that will make that null and void anyway since it will memcpy for parts that it is possible and do a for loop for 8 bit strands into 32 bit flat and a for loop for repetitions 02:34
MasterDuke i get roughly the same numbers with clang 02:38
but you're saying i shouldn't bother investigating any more since you're working on a new optimization? 02:39
samcv well i know why it's slower. because calling memcpy 10_000_000 times 1000 times is a lot of calls 02:43
for copying only 32 bits each time 02:54
i guess we could be even better and fill a large piece of memory with it and then memcpy that a smaller number of times
though idk if it matters that much to do that
02:56 ilbot3 joined 07:10 brrt joined
brrt good * #moarvm 07:11
07:13 domidumont joined 07:20 domidumont joined
brrt i'm seeing no significant difference between the bytecode for the broken and the nonbroken case 07:50
08:20 brrt joined 08:55 domidumont joined 09:00 brrt1 joined 09:15 zakharyas joined 09:42 robertle joined 10:00 domidumont1 joined 10:19 zakharyas1 joined 10:27 bisectable6 joined 10:28 zakharyas1 joined 10:41 AlexDaniel joined 11:41 greppable6 joined 11:43 brrt joined 12:26 Ven joined
jnthn brrt: If I had to guess, it'll be something about labels and exception handler regions, given it apparently things the code in question ain't handler-covered 12:49
brrt yeah, i was stepping through it with a debugger but i had to do $dayjob then 12:55
12:55 markmont joined
jnthn is the lucky one with a national holiday today 12:56
13:57 zakharyas joined 14:41 domidumont joined 14:45 Ven joined 15:58 markmont joined 16:03 zakharyas joined 16:04 domidumont joined 16:07 domidumont joined 16:08 brrt joined 16:31 brrt joined, robertle joined 16:42 Ven joined
brrt okay, hmm so the label that is assigned to that, in the expr jit case, is the label after the goto 16:46
also, 16:49
the inline_end co-occurs with the framehandler-start
oh, no, it is a frame-handler end 16:50
hmm, there's two inline-ends on that 16:52
oh, hang on 16:54
hehe
bug found, fix ready
16:56 domidumont joined
Geth MoarVM/inline-lastexpayload: 4c2823f746 | (Bart Wiegmans)++ | src/jit/label.c
Fix labeling off-by-one

The last 'object' label would not be counted as a instruction label (and by implication treated as a basic block label). This would cause the required label not to be setup, which would make try/catch on some frames fail.
16:57
brrt ^ feel free to rebase or cherry-pick that on master instead 16:58
.tell jnth bug is fixed
yoleaux brrt: I'll pass your message to jnth.
brrt .tell jnthn
yoleaux brrt: I don't know what you want me to say to jnthn.
brrt .tell jnthn i think the bug is fixed
yoleaux brrt: I'll pass your message to jnthn.
jnthn brrt++ 17:17
yoleaux 16:58Z <brrt> jnthn: i think the bug is fixed
18:21 zakharyas joined
timotimo way cool 18:38
18:54 committable6 joined 18:55 committable6 joined 18:56 committable6 joined 18:58 committable6 joined 19:13 AlexDaniel joined
AlexDaniel samcv: hello :) Are you up for the release this weekend? 19:16
releasable6: status 19:17
releasable6 AlexDaniel, Next release in ≈23 hours. No blockers. 109 out of 209 commits logged
AlexDaniel, Details: gist.github.com/1143ad1b0eeb67443b...bbc29aae02
19:54 releasable6 joined 22:18 markmont joined 22:52 AlexDaniel joined