8144223: Move j.l.invoke.{ForceInline, DontInline, Stable} to jdk.internal.vm.annotation package

Christian Thalinger christian.thalinger at oracle.com
Mon Nov 30 19:26:57 UTC 2015

> On Nov 30, 2015, at 7:40 AM, Paul Sandoz <Paul.Sandoz at oracle.com> wrote:
> Hi,
> Please review:
>  http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8144223-move-stable-force-dont-inline-jdk/webrev/
>  http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8144223-move-stable-force-dont-inline-hotspot/webrev/
> This moves the package private annotations j.l.invoke.{ForceInline, DontInline, Stable} to public annotations of the same name in the non-exported (at least for unqualified exports) package jdk.internal.vm.annotation where @Contended lives (in hs-rt not currently hs-comp) and where HotSpotIntrinsicCandidate will move to.
> The intent is these annotations can be used sparingly in classes in java.base packages other than java.lang.invoke. From the issue description:
> https://bugs.openjdk.java.net/browse/JDK-8144223
>> The annotations j.l.invoke.{ForceInline, DontInline, Stable} are currently package private but could have use outside that package if used carefully and sparingly. For example:
>> 1) Methods on Atomic*FieldUpdater classes may benefit from @ForceInline, as would array support methods of JDK-8136924 to preserve existing inlining characteristics.
>> 2) Reference.reachabilityFence (JDK-8133348) could be annotated with @DontInline rather than explicitly making the method signature known to the VM.
>> 3) The alias jdk.vm.ci.hotspot.Stable could potentially be removed.
> I am especially interested if 3) is possible, it seems so from my limited knowledge.

Yes, it is possible.  It just needs an import change in:


and then you can remove the additional code in classFileParser.cpp.

> This patch is based off hs-comp because there is a test in hs-comp using @Stable that was added 2 weeks ago and it is not yet in hs-rt (AFAIK hs-rt is a sub-set of hs-comp in this respect):
> $ hg log test/compiler/stable/TestStableMemoryBarrier.java
> changeset:   9489:1a552f9b912e
> tag:         JDK-8144223-move-stable-force-dont-inline-hotspot
> tag:         qtip
> tag:         tip
> user:        psandoz
> date:        Mon Nov 30 18:24:44 2015 +0100
> summary:     8144223: Move j.l.invoke.{ForceInline, DontInline, Stable} to jdk.internal.vm.annotation package
> changeset:   9270:9348fbca9f67
> parent:      9268:ee63c0026315
> user:        hshi
> date:        Mon Nov 16 16:14:15 2015 +0100
> summary:     8139758: [REDO] Elide more final field's write memory barrier with escape analysis result
> Paul.

More information about the hotspot-compiler-dev mailing list