Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-05-17

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:50 ilbot3 joined #moarvm
01:50 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
04:56 jepeway joined #moarvm
05:35 quester joined #moarvm
07:16 FROGGS joined #moarvm
09:04 FROGGS joined #moarvm
09:46 FROGGS joined #moarvm
10:56 vendethiel joined #moarvm
13:20 camelia joined #moarvm
14:00 dalek MoarVM: 2be52fd | brrt++ | src/spesh/ (7 files):
14:00 dalek MoarVM: Change throw_adhoc to oops in spesh
14:00 dalek MoarVM:
14:00 dalek MoarVM: Spesh routines should probably not throw catchable
14:00 dalek MoarVM: exceptions.
14:00 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/2be52fd931
14:59 AndChat|228864 joined #moarvm
15:00 AndChat|228864 brrt: they forgot to publish the news about your grant?
15:20 zakharyas joined #moarvm
18:25 FROGGS joined #moarvm
19:40 dalek joined #moarvm
19:59 brrt joined #moarvm
20:01 brrt` joined #moarvm
20:02 brrt` left #moarvm
20:07 brrt joined #moarvm
20:08 brrt AndChat|228864: I suspect they either expected me to publish it, or haven't gotten around to it yet
20:08 brrt also, would it maybe be a nice idea if I could do a talk at YAPC::EU
20:11 timotimo +1
20:11 timotimo brrt: do you have a clue what might be wrong about my BBs and preds and succs in my branch?
20:11 timotimo in "union_goto_chains"
20:11 brrt uhm.....
20:12 brrt no, and not at a computer that can quickly compile and run tests
20:12 brrt if you have a gist i could check it out?
20:12 timotimo ah, ok
20:12 timotimo sure, i can run it and it'll readily explode
20:12 brrt but it's a good example of more complex than it might look :-)
20:12 timotimo it explodes very early in nqp compilation
20:12 brrt hmm
20:13 timotimo https://gist.github.com/timo/90ea1cd5a34f80b76764
20:14 timotimo do you see the lack of "yes" outputs?
20:14 brrt opening :-)
20:17 brrt yes, i see it
20:18 brrt that is really weird...
20:18 timotimo http://t.h8.lv/nqp_early_explosion_with_spesh.txt
20:18 timotimo here's some more spesh so that you can compare BB addresses with the spesh log
20:20 timotimo the ordering in the code is weird
20:20 timotimo in the output, that is
20:26 brrt joined #moarvm
20:26 brrt \o
20:26 brrt emacs just died
20:27 TimToady joined #moarvm
20:29 brrt timotimo: evidently these predecessor arrays are empty for some reason
20:30 brrt that could (potentially) be due to a bug in generating the spesh graph
20:30 brrt but that seems somewhat unlikely though
20:31 brrt in fact, the spesh graph output knows all about them
20:32 timotimo that's what confuses the F out of me
20:32 timotimo and the "number of preds" should be correct, too
20:33 timotimo and i've triple-checked that i always use the pidx in a predaray and have num_preds as its bound
20:33 brrt yes, and it is
20:35 timotimo and the pred arrays don't alias amongst themselves
20:36 timotimo maybe something else is already removing those for some reason
20:36 timotimo i shall put some logging into the manipulate function that removes succs and stuff
20:36 brrt hmm
20:36 brrt it seems unlikely to me tbh
20:36 brrt maybe step through it with gdb
20:37 brrt to be completely honest, i'm not sure i understand your purpose there
20:37 brrt in this branch
20:37 brrt you want to optimize jumplist, how?
20:40 timotimo http://t.h8.lv/nqp_early_explosion_with_spesh.txt - has a bit more info now
20:40 timotimo jumplist currently creates a whole bunch of BBs that consist of only a single goto instruction
20:40 brrt hmm, and?
20:40 timotimo that increases code size
20:40 timotimo i don't actually know how big a goto is
20:41 timotimo if you think it's not worth much, i'll just drop it for the time being
20:41 timotimo but then i have no good idea what to do next j)
20:41 timotimo ;)
20:42 brrt ok. wait a minute :-)
20:42 brrt you want to replace our goto's with what, exactly?
20:43 brrt i'm not trying to be mean, i just don't understand it
20:54 brrt anyway, you can say succ[sidx]->pred[succ[sidx]->num_pred] = NULL as succ[sidcx]->pred[k] = NULL; succ[sidx]->num_pred = k-1;
20:55 brrt and i would say just take a pointer to the successor you're looking at :-)
20:56 brrt ok, so your basic way of doing is this
20:56 brrt take a jumplist
20:56 brrt all those bbs that simply go to their direct predecessors can be removed
20:57 brrt right? but that... will not necessarily ever work, because jumplist depends on a numeric argument, and you're not changing that number, are you?
20:57 brrt integer
20:59 brrt` joined #moarvm
21:00 brrt` uhm, how much of my last rambling actually came through :-)
21:01 brrt` also note that the JIT compilation of the jumplist depends on all the basic blocks containing goto's
21:01 brrt` and that they have to be aligned, even
21:02 brrt` jumplist is very much a space for time tradeoff :-)
21:04 brrt oh wow
21:08 brrt timotimo: if you're unsure what to do, i can tell you that deopt bridges would be really beneficial to a): JIT in case of a better code generator (my grant project) and b): spesh trace compilation
21:09 brrt neither necessarily essential for any (no pressure), but both would benefit tremendously
21:12 brrt i'm not entirely sure any of my irc messages are coming through.. :-)
21:12 timotimo sorry
21:12 timotimo i got a bunch of your messages
21:12 timotimo want me to gist you what i got?
21:13 timotimo oooooooooooh; could it be succ[sidx]->pred[succ[sidx]->num_pred] = NULL was out of bounds anyway?
21:14 timotimo oh, if the jit compilation of jumplist requires a list of BBs that are all gotos, i'd break it with my "optimization"
21:14 timotimo that's not good
21:14 timotimo thanks for the hint
22:22 nwc10 .tell jnthn is there a bug at line 377 of src/6model/containers.c -- should that HASH_ADD_KEYPTR() call be inside the if (!entry) block?
22:54 quester left #moarvm

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary