01:20 kjs_ joined
kjs_ /msg NickServ VERIFY REGISTER kjs_ ihxldkibeqps 01:21
oops!
01:23 kjs_ joined
vendethiel oops :p 01:58
JimmyZ timotimo: A lot of exmaple :P www.compileroptimizations.com/ 02:26
04:39 vendethiel joined 05:22 vendethiel joined 06:17 vendethiel joined 07:24 vendethiel joined 07:30 lue joined 08:28 vendethiel joined 08:42 rurban joined 09:01 vendethiel joined 09:11 kjs_ joined 09:42 kjs_ joined 10:08 vendethiel joined 10:14 kjs_ joined 10:39 vendethiel- joined 11:10 vendethiel joined 11:40 rurban joined 11:50 zakharyas joined 12:00 kjs_ joined 12:27 dalek joined 12:54 LLamaRider joined 12:56 kjs_ joined 13:33 vendethiel- joined 14:17 kjs_ joined
dalek arVM/optimize_refactor: beeca9d | (Jimmy Zhuo)++ | src/spesh/optimize.c:
refactor optimize_bb to call func_array[op] instead of a big slow switch
14:42
15:21 rurban joined
JimmyZ files.catwell.info/misc/mirror/trac...illing.pdf # if anyone like it, basically it uses luajit's architecture(include the various optimization code, about 30%) 15:23
page started at 46
The VM code shares about 35% with LuaJIT, said the paper 15:24
timotimo JimmyZ: did you profile how much time we spend in bb optimizations? 15:44
JimmyZ timotimo: I din't, but we will add more case
timotimo right 15:45
JimmyZ and I find a lot of case is in this paper
like LHF
timotimo ?
15:46 kjs_ joined
JimmyZ ?? 15:46
jnthn It's not particularly obvious that beeca9dd will be an improvement. 16:38
A C compiler can turn a switch into a lookup table, which is almost certainly kinder to the branch predictor than a function pointer table.
Worse, it frustrates the C compiler in inlining the things we do at each switch point. 16:39
So it's more liekly to be a pessimization than an optimization. 16:40
Unless it's been done by looking at the assembly different compilers produce and being sure that they're doing something bad. But it's the kind of thing they tend to do well., 16:41
Also, it's relatively unlikely that it is a hot path. 16:42
In the overall scheme of the VM.
In spesh itself, maybe. 16:43
dalek arVM/cse: bfb1d67 | (Jimmy Zhuo)++ | / (5 files):
Add a very basic common sub-expression elimination.
jnthn Anyway, I'm -1 to the patch.
JimmyZ jnthn: the haskell paper you maybe like it :P 16:44
jnthn It's a slow download on this train wifi... :) 16:45
JimmyZ jnthn: but the switch doesn't have continue op value to get a lookup table. maybe we need add it ?
the cse branch code is ported from luajit, no sure we like it 16:46
since luajit don't have BB :( 16:47
jnthn Well, given we have SSA form, may be worth looking at Global Value Numbering rather than doing CSE 16:48
I'd be very wary of porting stuff from luajit. It's a great source of ideas. 16:49
But don't think we're architecturally close enough to it to do very direct ports of much. 16:50
And optimizers are always rather sensitive to knowing the semantics of different instructions, and things that can happen, cna never happen, etcc. 16:51
JimmyZ: I think modern C compilers can cope with sparse switch statements too 16:53
JimmyZ jnthn: yeah, I found it. about luajit :( 17:01
what is cna? 17:02
jnthn cna? Dunno that acronym...where'd you see it? 17:05
JimmyZ oh , you sai can never happen 17:09
*said
jnthn yeah, this wifi has horrible lag... 17:10
TimToady my wifi loses track of reality every time someone in the family uses the microwave, which, right now, given how packed our hose is, is rather frequently... 17:11
*house
TimToady doesn't want to think about hoses, having had to ream out the drains with one on Christmas Eve 17:12
jnthn I won't pimp the hose then...
JimmyZ hmm, look like ACM Transactions on Programmmg Languages and Systems has a lot paper about compiler and VM 17:13
TimToady then I won't call your stockings stuffy
jnthn :) 17:16
JimmyZ just found Global Common Subexpression Elimination, which does something like Global Value Numbering 17:32
it computes the set of expressions available on each block... 17:34
1:34am here ,good night 17:35
dalek arVM: e62cfab | jnthn++ | src/core/interp.c:
Add missing concreteness checks.

Fix a bunch of possible SEGVs.
jnthn JimmyZ: goodnight!
17:39 colomon joined 19:23 woolfy joined 19:30 rurban joined 19:48 FROGGS__ joined
timotimo o/ 20:36
21:19 FROGGS[tab] joined 21:51 kjs_ joined 22:57 Ven joined