brrt tratt.net/laurie/blog/entries/fast_...nough_time interesting 08:44
about vm's and pypy and stuff
FROGGS ohh, will read that as soon as I have time 08:46
brrt i'm not totally agreeing about rpython being awesome 08:50
i saw it and it was limited, but unlike nqp, it didn't make that entirely obvious 08:51
that sucks imho
FROGGS yeah
nwc10 brrt: irclog.perlgeek.de/moarvm/2014-10-24#i_9559181 08:58
brrt thanks :-) 09:04
brrt wrt to the difficulties he expressed in writing JIT's... I can concur with some, and not with others 09:21
but that may be because moarvm is on the whole pretty well-designed 09:22
i.e. it was easier than he makes it out to be
JimmyZ I saw the luajit asm code, it's well designed, and so looks like it's not that hard, i.e: call exten func 10:11
precall and postcall etc 10:12
*extern 10:13
brrt luajit is well designed indeed :-) 10:14
i should study that a bit more
JimmyZ yeah, And I really like its allocation sink optimization and I hope moarvm will also have it . 10:15
which will really helps perl6's performance 10:16
JimmyZ will discuss it a bit with jnthn later ... 10:16
*jnthn++ :P 10:17
nwc10 timotimo: unfortunately 15d3b75921577f342ffaa128de141199343e3a37/824b28497ceab5a162a50ab6bcaa17bd1bf6a89d/0809f665c272dcdd28fc6d0eaacd7354b7a38135 add ASAN barfage 10:21
can jit multicacheadd and multicachefind 10:23
er
paste.scsys.co.uk/435332
brrt allocation sink pot?
opt
JimmyZ yeah 10:26
*sinking 10:28
an addition optimization to escape analysis 10:29
for the escaped variable
nwc10 timotimo: strangely, valgrind can't spot anything 10:44
brrt hmmm 10:45
dalek arVM: 63f3285 | (Timo Paulssen)++ | src/jit/graph.c:
fix wrong number of arguments passed to multicache*
11:35
timotimo ^- should be better
brrt: allocation sinking means you move the allocation that *does* escape as far towards the end as possible, which often causes the allocation to be moved past some branching point that is only taken rarely 11:37
brrt: implementing brshift_i and blshift_i should be very easy, but i've had massive amounts of trouble 11:39
especially regarding register sizes and such
as the shift instructions want an 8bit register for the shift amount 11:40
nwc10 timotimo: works on "my" machine 11:54
(2 spectests fail. I think that's a #perl6 problem)
JimmyZ timotimo: the example is past to some branch, but the it actually is to past to anoter frame(and the benchmark code too)
timotimo might be
JimmyZ an frame always return a new object and past to another frame sometimes is not need, which can be optimized 11:56
timotimo ah, hmm 11:57
we do have an "is in sink context" thing inside our optimizer
i think the GLR will also cause a nice improvement to how sinking works 11:58
JimmyZ and that's why it said it needs tracing
timotimo it'd be moved out of the code-gen and into return handlers possibly?
i don't 100% remember
JimmyZ well, it's different thing, methinks?
sink context vs allocation sinking
timotimo i meant the "blocks have to return something" thing 12:01
JimmyZ I know nothing about perl6's sinking context :P
and I didn't see any context sinkin in the Rat type 12:04
*sinking
timotimo right, fair enough 12:08
it's a "big thing" in rakudo though 12:09
JimmyZ the luajit benchmark code is very much like the Rat type in rakudo
and I think the Rat type doesn't have context sinking
timotimo yes 12:10
i was talking about "the rest of rakudo" :)
JimmyZ I know :P 12:11
brrt aha timotimo 12:12
brrt can look at b(lr)shift
timotimo thanks :)
brrt np :-)
timotimo and when i implemented reprname, i stumbled upon a segfault, but that's probably due to the multicache* stuff i botched rather than reprname itself 12:13
also, invokewithcapture? :)
brrt haven't had time for it
if you just finish my distributed system course project for me, i'll fix the JIT, how about that
;-)
timotimo :D
brrt (which i'm doing on my own by now... o.O) 12:14
timotimo - how to make a shift in nqp 12:21
timotimo nqp::shift? 12:22
brrt aha
no 12:23
timotimo what are you looking for, exactly?
brrt a binary shift 12:24
$x << 1 or so, that doesn't work
timotimo oh
+< in perl6
the op is called bitshiftl_i
brrt aha 12:25
brrt have i cmplained about clang sufficiently yet 12:45
FROGGS brrt: yes :o)
brrt ok
then i can skip it today
FROGGS *g*
brrt pff 13:10
dalek arVM: 6724ed6 | (Bart Wiegmans)++ | src/jit/ (2 files):
JIT blshift_i and brshift_i

Also small fix to make clang a bit happier
13:37
brrt timotimo ^
timotimo <3 13:45
pretty much every single run of perl6 uses blshift_i because it's used when setting up moar op mappers
oh, shl and shr are correct? 13:46
i was convinced i'd have to use shld and shrd
brrt as far as i know they are ok
shld is probably shift-left-doubleword
timotimo i believe so
brrt as in, 32 bit shift-left
timotimo well, "double precision"
should be 64bit
brrt but dynasm doesn't use op modifiers but argument modifiers 13:47
so if you want to do that, you want to write shl eax, cl;
timotimo oh
brrt (cl is rcx lower byte)
timotimo well, that's good to know! :)
brrt and you only need to use 'm when accessing memory, because it is 'embedded' in the size of the register 13:48
timotimo 'k
[Coke] Octover? 13:53
brrt octover? 13:54
timotimo quadrover?
brrt octoword :-)]
and quadword
[Coke] whoops, wrong window. 13:58
brrt :-) 14:02
[Coke] moarvm jit died today. 14:12
brrt wow 14:14
i see
hmmm
can we bisect that
[Coke] brrt: sure, I can do that. 14:25
brrt thanks :-) 14:26
timotimo [Coke]: it would be enough to see if my fix commit for multicache* fixes it: github.com/MoarVM/MoarVM/commit/63f3285b53 14:28
[Coke] HEAD seems fine. 14:37
(still running, but passing stuff)
TimToady I would be very surprised to see any sinking in a value type like Rat, since the only purpose of sink is to trigger side effects. 15:55
m: 42; 43 15:56
camelia rakudo-moar 315ec6: OUTPUT«WARNINGS:␤Useless use of constant integer 42 in sink context (line 1)␤»
TimToady m: 1/42; 1/43
camelia ( no output )
TimToady there's a missing diagnostic there
m: 42.1; 43.1; 16:00
camelia ( no output )
TimToady well, probably a #perl6 issue now
FROGGS m: v42; v1 16:01
camelia ( no output )
JimmyZ TimToady: yeah, we didn't expect to see any sinking in a value like Rat 16:04
Good night 16:06
FROGGS gnight JimmyZ
TimToady o/
timotimo damn it, building rakudos core setting gives me segfaults quite reliably now >_< 19:50
[Coke] timotimo: does it work with moarvm-recommended? 20:01
timotimo will try 20:02
it doesn't :\ 20:03
i don't have local changes either 20:05