[10] RFR: 8183299: Improve inlining of CompiledMethod methods into frame::sender
Vladimir Kozlov
vladimir.kozlov at oracle.com
Mon Jul 3 15:56:10 UTC 2017
Claes,
Did you try to swap && conditions?:
36 || (pc == (deopt_handler_begin() +
NativeCall::instruction_size) && is_compiled_by_jvmci())
is_compiled_by_jvmci() could be cache miss and other check is false in
all cases (until Graal is used as JIT).
Thanks,
Vladimir
On 7/3/17 7:41 AM, Claes Redestad wrote:
> <adding hotspot-runtime-dev since this patch now touches
> frame.inline.hpp as well>
>
> Hi,
>
> I've reworked the patch to introduce a compiledMethod.inline.hpp instead
> to break a
> circular dependency on code/nativeInstr.hpp on some platforms.
>
> http://cr.openjdk.java.net/~redestad/8183299/hotspot.01/
>
> An attempt to tease apart the include dependencies was made (Stefan
> Karlsson has
> an almost working patch to clean things up significantly), but there is
> currently a lot of
> code out there that includes frame.inline.hpp transitively which makes
> it cumbersome
> to add this new include in any other place and still keep the linker happy.
>
> Testing: JPRT
>
> Thanks!
>
> /Claes
>
> On 06/30/2017 06:50 PM, Claes Redestad wrote:
>> Hi all,
>>
>> here's a startup optimization that turned out to also help the VM
>> stack walking in general, including java exception throwing performance:
>>
>> Webrev: http://cr.openjdk.java.net/~redestad/8183299/hotspot.00/
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8183299
>>
>> The static footprint cost of the more aggressive inlining is ~20Kb,
>> which seems reasonable for the achieved speed-up (~5% in some
>> microbenchmarks).
>>
>> Testing: JPRT (still in-flight), jtreg locally, microbenchmarks
>>
>> Thanks!
>>
>> /Claes
>
More information about the hotspot-compiler-dev
mailing list