Integrated: 8314452: Explicitly indicate inlining success/failure in PrintInlining

Jorn Vernee jvernee at openjdk.org
Sat Sep 9 10:35:54 UTC 2023


On Wed, 16 Aug 2023 17:42:42 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:

> This patch proposes to add a `+` or `-` to messages produced by `PrintInlining`, to indicate whether inlining succeeded or failed. This makes it easier to find inlining failures in an inlining trace, without having to rely on the message to figure out whether inlining succeeded or failed. Looking at inlining failures is often useful for diagnosing the results of benchmarks, but it can be hard to find inlining failures in lengthy traces.
> 
> A sample of what this looks like:
> 
> 
>                             +@ 0   java.lang.foreign.Arena::ofConfined (10 bytes)   inline (hot)
>                               +@ 0   java.lang.Thread::currentThread (0 bytes)   (intrinsic)
>                               +@ 3   jdk.internal.foreign.MemorySessionImpl::createConfined (9 bytes)   inline (hot)
>                                 +@ 5   jdk.internal.foreign.ConfinedSession::<init> (18 bytes)   inline (hot)
>                                   +@ 6   jdk.internal.foreign.ConfinedSession$ConfinedResourceList::<init> (5 bytes)   inline (hot)
>                                     +@ 1   jdk.internal.foreign.MemorySessionImpl$ResourceList::<init> (5 bytes)   inline (hot)
>                                       +@ 1   java.lang.Object::<init> (1 bytes)   inline (hot)
>                                   +@ 9   jdk.internal.foreign.MemorySessionImpl::<init> (20 bytes)   inline (hot)
>                                     +@ 1   java.lang.Object::<init> (1 bytes)   inline (hot)
>                               +@ 6   jdk.internal.foreign.MemorySessionImpl::asArena (9 bytes)   inline (hot)
>                                 +@ 5   jdk.internal.foreign.MemorySessionImpl$1::<init> (10 bytes)   inline (hot)
>                                   +@ 6   java.lang.Object::<init> (1 bytes)   inline (hot)
>                             -@ 8   java.lang.foreign.SegmentAllocator::allocate (24 bytes)   already compiled into a big method
> 
> 
> Using `grep`/`sls` to find inlining failures:
> 
> 
>> Get-Content inlining_trace.txt | sls '-@'
>                             -@ 8   java.lang.foreign.SegmentAllocator::allocate (24 bytes)   already compiled into a big method
>                             -@ 34   java.lang.foreign.SegmentAllocator::allocate (24 bytes)   already compiled into a big method
>                                         -@ 19   java.lang.invoke.MethodHandle::linkToNative(JJJL)D (0 bytes)   native call
>                                     -@ 95   java.lang.foreign.Arena::close (0 bytes)   virtual call
>                           ...

This pull request has now been integrated.

Changeset: 68f69417
Author:    Jorn Vernee <jvernee at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/68f69417c70d6a9fa9bd7deba10b7820c66a3c34
Stats:     63 lines in 13 files changed: 16 ins; 2 del; 45 mod

8314452: Explicitly indicate inlining success/failure in PrintInlining

Reviewed-by: kvn, shade, thartmann

-------------

PR: https://git.openjdk.org/jdk/pull/15315


More information about the hotspot-compiler-dev mailing list