02:40
vendethiel joined
|
|||
dalek | arVM/no-moar-linenoise: 1d37511 | hoelzro++ | / (13 files): Remove linenoise/readline Now that NativeCall is included with Rakudo, instead of having linenoise/readline functionality be bundled in as a VM-level op, let's create a NativeCall-based module for this functionality |
02:59 | |
03:07
xiaomiao joined
05:06
timotimo joined
05:25
vendethiel joined
06:38
brrt joined,
vendethiel joined
|
|||
brrt | \o | 06:51 | |
06:54
FROGGS joined
|
|||
brrt | with regards to the tracing discussion, i see no other plausible way than to add a check in MVM_frame_invoke | 06:56 | |
something like if (tc->is_tracing) { if (!code->tracing_frame) code->tracing_frame = MVM_spesh_add_tracing(tc, frame); invoke(tc, code->tracing_frame) } } else { ... } | 06:57 | ||
jnthn | That's certainly an easy way to do it, yes | ||
brrt | that is not too expensive for the general, non-tracing form, and it catches all mvm level invocations | 06:58 | |
jnthn | The other is to tweak all the invokish ops to some other op that takes the invokish op in question as a parameter, but that's getting a bit awkward. | ||
06:58
rurban joined
|
|||
brrt | it can be done.. but sometimes the invokish bit is hidden rather far (istrue/isfalse come to mind) | 06:59 | |
jnthn | *nod* | 07:01 | |
07:11
zakharyas joined
|
|||
brrt wishes he had more time :-( | 07:36 | ||
jnthn | All being well, you'll have a good amount of time to make a nice difference with the JIT. :) | 07:37 | |
brrt | that is true | 07:39 | |
the last year has been so incredibly hectic :-o | 07:40 | ||
07:44
vendethiel joined
08:37
vendethiel joined
|
|||
brrt lunch & | 10:07 | ||
10:10
vendethiel joined
10:30
Ven joined
10:36
vendethiel joined
10:51
Ven joined
11:25
vendethiel joined
11:35
brrt joined
11:49
Ven joined
11:52
rurban joined
12:08
ggoebel joined
12:42
vendethiel joined
13:03
Ven joined
13:20
vendethiel joined
13:45
vendethiel joined
13:47
ggoebel joined
13:53
Ven joined
13:57
brrt` joined
|
|||
timotimo | i wonder at what point the trace jit will throw in guards against execution that'd differ? | 14:20 | |
14:21
Ven joined
14:25
vendethiel joined
14:26
rurban joined
14:51
vendethiel joined
15:01
Ven joined
15:56
vendethiel joined
16:05
ggoebel joined
16:35
FROGGS[mobile] joined
17:23
vendethiel joined
17:39
lizmat joined
17:50
FROGGS joined
18:29
vendethiel joined
18:42
lizmat_ joined
19:22
synbot6 joined
19:37
brrt joined
|
|||
brrt | timotimo: long story really short | 19:40 | |
in the trace you add only the bbs that are actually visited, and *all* the bbs that are visited below a level | |||
once you'd branch out of any of these bbs you deopt | 19:41 | ||
the assumption is that some paths within and through a routine are really hot, and some paths are not, even if they are in the same routine | 19:42 | ||
so if you'd have something like: sub foo { if $condition { bar(); } else { something-else(); } }; sub bar() { if $unlikely { branch-not-taken(); } 42; } | 19:44 | ||
then a trace starting at foo, given that condition would always yield true, would simply jump all the way to the end of bar | 19:45 | ||
sidenote; trace jit would require a generalised sp_guard_istrue | 19:46 | ||
19:56
zakharyas joined
|
|||
brrt | tracing spesh, i mean | 20:04 | |
jnthn | Something like that, yeah | 20:18 | |
I hope we can mostly re-use the deopt mechanism we already have to power the deopt too | |||
You can also do side-traces for commonly taken other branches | |||
brrt | right, but you'd only do that if they appear in the trace | 20:19 | |
a trace isn't necessarily linear | |||
22:59
flussence joined
23:41
LLamaRider joined
|