RFR: 8314452: Explicitly indicate inlining success/failure in PrintInlining [v3]
Jorn Vernee
jvernee at openjdk.org
Thu Sep 7 09:20:28 UTC 2023
> 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
> ...
Jorn Vernee has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:
- fix failing inlining tests
- Merge branch 'master' into Explicit_inlining_msg
- switch to 'failed to inline' message
- polish
- kind -> kind_of
- Explicitly track inlining success/failure
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/15315/files
- new: https://git.openjdk.org/jdk/pull/15315/files/391ca8fd..27c24257
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=15315&range=02
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=15315&range=01-02
Stats: 29479 lines in 919 files changed: 21399 ins; 4094 del; 3986 mod
Patch: https://git.openjdk.org/jdk/pull/15315.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/15315/head:pull/15315
PR: https://git.openjdk.org/jdk/pull/15315
More information about the hotspot-compiler-dev
mailing list