diakopter | well, caching the object's idx (where I think it would be cached) shaves 8% off core setting compilation time, but I get a 'Probable version skew' error when building restricted setting | 00:14 | |
00:14
zakharyas joined
|
|||
diakopter | so it either needs rebootstrapped or there's a make dependency problem or I'm stoopid | 00:14 | |
00:25
tokuhiro_ joined
00:29
colomon joined
00:42
colomon joined
00:55
colomon joined
|
|||
diakopter | .tell jnthn shaved 8% off CORE compilation by writing the idx after looking it up in interp.c i.imgur.com/WX35mFe.png | 01:00 | |
timotimo | diakopter: did you get the build problem fixed in the time since then? | 01:50 | |
diakopter | yes, the build problem was for an earlier attempt (not in interp.c) | 01:51 | |
here's the addl line for OP(scgetobjidx): | 01:53 | ||
MVM_set_idx_in_sc(&GET_REG(cur_op, 4).o->header, GET_REG(cur_op, 0).i64); | |||
timotimo: (I tried to cache it in various places, interp.c was the only safe one) | 01:55 | ||
02:27
tokuhiro_ joined
02:47
ilbot3 joined
03:36
pyrimidine joined
03:39
psch_ joined
03:46
Hotkeys joined
03:53
JimmyZ joined
03:55
btyler_ joined,
moritz joined
03:56
japhb_ joined
03:57
Hotkeys joined
04:29
tokuhiro_ joined
06:30
tokuhiro_ joined
07:41
nwc10 joined
08:08
domidumont joined
08:13
domidumont joined
08:19
flaviusb joined
08:59
FROGGS joined
09:26
Peter_R joined
09:49
camelia joined
11:00
kjs_ joined
11:01
domidumont joined
11:12
lizmat joined
11:28
tokuhiro_ joined
11:58
vendethiel joined
12:01
leont joined
12:03
vendethiel joined
13:29
tokuhiro_ joined
13:31
brrt joined
|
|||
brrt | goood * #moarvm | 13:32 | |
i think i finally know a solution to a problem that's been bugging me | |||
well, a few solutions to some problems | |||
nwc10 | good *, brrt | 13:33 | |
13:35
kjs_ joined
|
|||
brrt | good *, nwc10 | 13:38 | |
problem one is, how to deal with the fact that register flow is broken during the compilation of an epxression tree as a result of the expression tree containing calls and conditionals | 13:40 | ||
well, i'm not 100% finished with it, but i think the best thing is to divide the (linearised) tile list into ... basic blocks | 13:41 | ||
(such innovation, many wow) | |||
the second problem was how to ensure that some operations have their operands in speciifc registers | 13:46 | ||
for instance, imul and idiv operands | |||
need rax/rcx pair | |||
so the solution, as far as i can see, is to give the tile a register flags field and implement a platform-specific flag decoder which can assign registers | 13:49 | ||
these | 13:50 | ||
'flagged' tiles can then be scanned first to assign registers first | |||
whereas unflagged tiles can use any old register | 13:51 | ||
dunno if any of that makes any sense.. :-) | 13:54 | ||
nwc10 | I'm not the right person to ask that question to | 13:57 | |
brrt | hmm... well, ok | ||
:-) | |||
brrt brb | 13:59 | ||
14:00
brrt joined
|
|||
brrt | anyway, i'm happy because i have a clear and reachable goal again | 14:08 | |
anyway, off again | 14:10 | ||
see you | |||
have a nice sunday :-) | |||
14:30
tokuhiro_ joined
14:41
kjs_ joined
16:05
vendethiel joined
16:11
FROGGS joined
16:32
tokuhiro_ joined
16:35
FROGGS joined
17:00
FROGGS joined
17:13
Ven joined
17:21
Ven joined
|
|||
diakopter | best core setting compilation time in a bunch of runs (without the one-line patch above): 72.0 seconds | 17:25 | |
timotimo | on my machine i usually get a bit under 50 | 17:26 | |
diakopter | try it with the patch? | ||
50 for stage parse or the whole thing | 17:27 | ||
timotimo | parse stage | 17:28 | |
right, you're measuring everything | |||
diakopter | most of the improvement is actually in optimize/mast | ||
timotimo | where does that line go? | ||
beginning? end? | |||
diakopter | best core setting compilation time in a bunch of runs (with the patch): 67.6 seconds | ||
timotimo | ah, at the end | ||
my computer is too busy for a good benchmark at the moment | 17:29 | ||
diakopter | ok, moving onto the next hotspot that seems possible aberrant | 17:30 | |
*possibly | |||
17:35
Ven joined
17:49
Ven joined
17:57
zakharyas joined
18:12
zakharyas joined
19:24
mj41 joined
20:21
FROGGS joined
20:50
sivoais joined
20:54
kjs_ joined
22:25
tokuhiro_ joined
|
|||
hoelzro | o/ #moarvm | 22:46 | |
I'm looking at a memory leak in cleaning up comp units; it seems that body->callsites[i]->arg_flags is malloc'd, but never freed | |||
problem is, callsites[i] may sometimes refer to a common callsite, so we can't just free its arg_flags | 22:47 | ||
should I add a way to check if a callsite is a common callsite? or maybe there's a better way to go about this? | |||
23:20
ggoebel2 joined,
ggoebel3 joined
23:22
ggoebel4 joined
23:31
tokuhiro_ joined
23:34
ggoebel5 joined
23:35
ggoebel6 joined
|