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
|