From f1c6e66cbc612478be67f17d3eebee55ab1ea5be Mon Sep 17 00:00:00 2001 From: Doug Simon Date: Tue, 1 Oct 2024 22:23:19 +0200 Subject: [PATCH] make use of Platforms annotation to mark hosted-only code --- .../jdk/graal/compiler/hotspot/HotSpotReplacementsImpl.java | 3 +++ .../src/jdk/graal/compiler/hotspot/libgraal/BuildTime.java | 3 +++ .../jdk/graal/compiler/hotspot/libgraal/truffle/BuildTime.java | 3 +++ .../src/jdk/graal/compiler/serviceprovider/GraalServices.java | 3 +++ 4 files changed, 12 insertions(+) diff --git a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/HotSpotReplacementsImpl.java b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/HotSpotReplacementsImpl.java index 762bd0cb647e..9ec41fa15672 100644 --- a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/HotSpotReplacementsImpl.java +++ b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/HotSpotReplacementsImpl.java @@ -64,6 +64,8 @@ import jdk.vm.ci.meta.MetaAccessProvider; import jdk.vm.ci.meta.ResolvedJavaMethod; import jdk.vm.ci.meta.ResolvedJavaType; +import org.graalvm.nativeimage.Platform; +import org.graalvm.nativeimage.Platforms; /** * Filters certain method substitutions based on whether there is underlying hardware support for @@ -274,6 +276,7 @@ public T getInjectedArgument(Class capability) { return super.getInjectedArgument(capability); } + @Platforms(Platform.HOSTED_ONLY.class) public ResolvedJavaMethod findSnippetMethod(ResolvedJavaMethod thisMethod) { if (snippetEncoder == null) { throw new GraalError("findSnippetMethod called before initialization of Replacements"); diff --git a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/libgraal/BuildTime.java b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/libgraal/BuildTime.java index 125e6f54bbfa..d8f92a9956c4 100644 --- a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/libgraal/BuildTime.java +++ b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/libgraal/BuildTime.java @@ -59,6 +59,8 @@ import jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory; import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime; import jdk.vm.ci.services.JVMCIServiceLocator; +import org.graalvm.nativeimage.Platform; +import org.graalvm.nativeimage.Platforms; /** * This class is used at image build-time when a libgraal image gets built. Its static methods are @@ -66,6 +68,7 @@ * These methods ensure the static field state of Graal and JVMCI classes loaded by the * LibGraalClassLoader is set up correctly for getting built into libgraal. */ +@Platforms(Platform.HOSTED_ONLY.class) public class BuildTime { private static final String VALID_LOADER_NAME = "LibGraalClassLoader"; diff --git a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/libgraal/truffle/BuildTime.java b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/libgraal/truffle/BuildTime.java index 4fa0b7e9f684..2e82e70c908a 100644 --- a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/libgraal/truffle/BuildTime.java +++ b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/libgraal/truffle/BuildTime.java @@ -27,6 +27,8 @@ import com.oracle.truffle.compiler.hotspot.libgraal.TruffleFromLibGraal.Id; import jdk.graal.compiler.truffle.host.TruffleHostEnvironment; import org.graalvm.nativeimage.ImageInfo; +import org.graalvm.nativeimage.Platform; +import org.graalvm.nativeimage.Platforms; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; @@ -45,6 +47,7 @@ /** * Class used to initialize the Truffle extensions to the Graal compiler in the image build time. */ +@Platforms(Platform.HOSTED_ONLY.class) public class BuildTime { private static Lookup hostLookup; diff --git a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/serviceprovider/GraalServices.java b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/serviceprovider/GraalServices.java index 00b652410550..225e78fadce2 100644 --- a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/serviceprovider/GraalServices.java +++ b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/serviceprovider/GraalServices.java @@ -44,6 +44,8 @@ import jdk.vm.ci.runtime.JVMCI; import jdk.vm.ci.services.Services; import org.graalvm.nativeimage.ImageInfo; +import org.graalvm.nativeimage.Platform; +import org.graalvm.nativeimage.Platforms; /** * Interface to functionality that abstracts over which JDK version Graal is running on. @@ -75,6 +77,7 @@ public static boolean isInLibgraal() { */ private static Map, List> libgraalServices; + @Platforms(Platform.HOSTED_ONLY.class) @ExcludeFromJacocoGeneratedReport("only called when building libgraal") public static void setLibgraalServices(Map, List> services) { GraalError.guarantee(libgraalServices == null, "Libgraal services must be set exactly once");