00:24:02  * AtumTquit (Quit: AtumT)
11:01:42  * plutoniixquit (Quit: Leaving)
15:52:24  * cloudshujoined
16:09:24  * RT|Chatzillaquit (Quit: ChatZilla [Firefox])
19:55:12  * yanjoined
19:55:56  <yan>I'm trying to better understand the JIT; is it possible to force v8 to emit native code of a specific function for a specific set of arguments, bypassing normal instrumentation?
20:18:27  * AtumTjoined
20:46:25  <yan>I wrote a helper to pull out the code from a JSFunction, but the code doesn't change as i call the function with varied arg types
20:56:11  <aklein>yan: v8 only generates one chunk of optimized code for a given function, so it wouldn't change in such cases. only when it's inlined do we do such specialization
20:57:04  <yan>aklein: is it possible to force inlining?
20:58:30  <aklein>yan: the usual way we do this in tests is to warm up the type feedback by running the (outer) function a couple times, and then using %OptimizeFunctionOnNextCall to trigger optimization
20:58:47  <aklein>(needs --allow-natives-syntax as well)
20:59:46  <yan>that's already how i'm dumping it. is there anything special about the shape of the outer function, or can it be as simple as forwarding args to inner function?
21:00:23  <yan>something like: function outer(f, argArray) { return f.apply(f, argArray); }, and then call outer() ~40 times
21:05:42  <yan>aklein: can it be that the compiler thread isn't emitting code between the function being primed and me dumping code?
21:49:52  * zvquit (Ping timeout: 264 seconds)
22:17:23  <yan>aklein: i suspect it has to do with how i invoke the function. i have: "driver() { outer() { inner(); } } }", so i think driver() is being inlined, which is just a call to outer(), which inner() from being inlined into outer()
22:27:44  * RT|Chatzillajoined
23:08:28  * zvjoined
23:30:33  * plutoniixjoined
23:51:53  * AtumTquit (Quit: AtumT)