Skip to content

Commit 961cc3f

Browse files
committed
[GR-65188] Remove JDK version checks in libgraal build time code.
PullRequest: graal/20955
2 parents 8b5617d + 554cc0f commit 961cc3f

File tree

35 files changed

+321
-644
lines changed

35 files changed

+321
-644
lines changed

common.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"Jsonnet files should not include this file directly but use ci/common.jsonnet instead."
55
],
66

7-
"mx_version": "7.55.2",
7+
"mx_version": "7.55.4",
88

99
"COMMENT.jdks": "When adding or removing JDKs keep in sync with JDKs in ci/common.jsonnet",
1010
"jdks": {

compiler/mx.compiler/suite.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,10 @@
486486
"annotationProcessors" : [
487487
"GRAAL_PROCESSOR",
488488
],
489+
490+
# Direct reference to jdk.vm.ci.hotspot.CompilerThreadCanCallJavaScope
491+
# causing spotbugs analysis to fail with "missing class" error.
492+
"spotbugs": "false",
489493
},
490494

491495
"jdk.graal.compiler.libgraal.loader" : {

compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/LibGraalSupportImpl.java

Lines changed: 2 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,8 @@
2424
*/
2525
package jdk.graal.compiler.libgraal;
2626

27-
import java.io.Closeable;
2827
import java.io.IOException;
2928
import java.io.PrintStream;
30-
import java.lang.invoke.MethodHandle;
31-
import java.lang.invoke.MethodHandles;
32-
import java.lang.invoke.MethodType;
3329
import java.util.Comparator;
3430
import java.util.List;
3531
import java.util.Map;
@@ -57,6 +53,7 @@
5753
import jdk.graal.compiler.libgraal.truffle.HSTruffleCompilerRuntime;
5854
import jdk.graal.compiler.options.OptionValues;
5955
import jdk.graal.compiler.word.Word;
56+
import jdk.vm.ci.hotspot.CompilerThreadCanCallJavaScope;
6057
import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
6158
import jdk.vm.ci.hotspot.HotSpotVMConfigAccess;
6259
import jdk.vm.ci.hotspot.HotSpotVMConfigStore;
@@ -229,7 +226,7 @@ public void initialize() {
229226
@Override
230227
@SuppressWarnings("try")
231228
public void shutdown(String callbackClassName, String callbackMethodName) {
232-
try (CanCallJavaScope ignore = CanCallJavaScope.open()) {
229+
try (CompilerThreadCanCallJavaScope ignore = new CompilerThreadCanCallJavaScope(true)) {
233230
if (callbackClassName != null) {
234231
JNI.JNIEnv env = Word.unsigned(getJNIEnv());
235232
JNI.JClass cbClass = JNIUtil.findClass(env, JNIUtil.getSystemClassLoader(env),
@@ -247,46 +244,6 @@ public void shutdown(String callbackClassName, String callbackMethodName) {
247244

248245
}
249246

250-
private static final class CanCallJavaScope implements Closeable {
251-
252-
private static final MethodHandle CAN_CALL_JAVA_SCOPE = findCompilerThreadCanCallJavaScopeConstructor();
253-
254-
private static MethodHandle findCompilerThreadCanCallJavaScopeConstructor() {
255-
try {
256-
return MethodHandles.lookup().findConstructor(Class.forName("jdk.vm.ci.hotspot.CompilerThreadCanCallJavaScope"), MethodType.methodType(void.class, boolean.class));
257-
} catch (ReflectiveOperationException e) {
258-
throw new InternalError(e);
259-
}
260-
}
261-
262-
private final AutoCloseable impl;
263-
264-
private CanCallJavaScope() {
265-
try {
266-
impl = (AutoCloseable) CAN_CALL_JAVA_SCOPE.invoke(true);
267-
} catch (Error | RuntimeException e) {
268-
throw e;
269-
} catch (Throwable throwable) {
270-
throw new InternalError(throwable);
271-
}
272-
}
273-
274-
@Override
275-
public void close() {
276-
try {
277-
impl.close();
278-
} catch (RuntimeException e) {
279-
throw e;
280-
} catch (Exception e) {
281-
throw new AssertionError(e);
282-
}
283-
}
284-
285-
static CanCallJavaScope open() {
286-
return CAN_CALL_JAVA_SCOPE != null ? new CanCallJavaScope() : null;
287-
}
288-
}
289-
290247
@Override
291248
public void notifyLowMemoryPoint(boolean suggestFullGC) {
292249
LibGraalRuntime.notifyLowMemoryPoint(suggestFullGC);

compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/truffle/BinaryOutput.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
*/
2525
package jdk.graal.compiler.libgraal.truffle;
2626

27+
import jdk.graal.compiler.word.Word;
2728
import org.graalvm.nativeimage.UnmanagedMemory;
2829
import org.graalvm.nativeimage.c.type.CCharPointer;
2930
import org.graalvm.nativeimage.c.type.CTypeConversion;
30-
import org.graalvm.word.WordFactory;
3131

3232
import java.io.Closeable;
3333
import java.nio.ByteBuffer;
@@ -615,7 +615,7 @@ public void close() {
615615
if (unmanaged) {
616616
UnmanagedMemory.free(address);
617617
byteBufferView = null;
618-
address = WordFactory.nullPointer();
618+
address = Word.nullPointer();
619619
length = 0;
620620
unmanaged = false;
621621
pos = Integer.MIN_VALUE;
@@ -639,7 +639,7 @@ private void ensureCapacity(int neededCapacity) {
639639
throw new OutOfMemoryError();
640640
}
641641
if (unmanaged) {
642-
address = UnmanagedMemory.realloc(address, WordFactory.unsigned(newCapacity));
642+
address = UnmanagedMemory.realloc(address, Word.unsigned(newCapacity));
643643
} else {
644644
CCharPointer newAddress = UnmanagedMemory.malloc(newCapacity);
645645
memcpy(newAddress, address, pos);

compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/truffle/HSConsumer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
import com.oracle.truffle.compiler.TruffleCompilable;
2929
import com.oracle.truffle.compiler.TruffleCompilerAssumptionDependency;
3030
import com.oracle.truffle.compiler.hotspot.libgraal.TruffleFromLibGraal;
31+
import jdk.graal.compiler.word.Word;
3132
import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
3233
import org.graalvm.jniutils.HSObject;
3334
import org.graalvm.jniutils.JNI.JObject;
3435
import org.graalvm.jniutils.JNIMethodScope;
35-
import org.graalvm.word.WordFactory;
3636

3737
import java.util.function.Consumer;
3838

@@ -55,7 +55,7 @@ public void accept(OptimizedAssumptionDependency optimizedDependency) {
5555
JObject compilable;
5656
long installedCode;
5757
if (dependency == null) {
58-
compilable = WordFactory.nullPointer();
58+
compilable = Word.nullPointer();
5959
installedCode = 0;
6060
} else {
6161
TruffleCompilable ast = dependency.getCompilable();
@@ -64,7 +64,7 @@ public void accept(OptimizedAssumptionDependency optimizedDependency) {
6464
* Compilable may be null if the compilation was triggered by a libgraal host
6565
* compilation.
6666
*/
67-
compilable = WordFactory.nullPointer();
67+
compilable = Word.nullPointer();
6868
} else {
6969
compilable = ((HSTruffleCompilable) dependency.getCompilable()).getHandle();
7070
}

compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/truffle/HSTruffleCompilable.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@
5757
import org.graalvm.jniutils.JNIMethodScope;
5858
import org.graalvm.jniutils.JNIUtil;
5959
import org.graalvm.nativeimage.StackValue;
60-
import org.graalvm.word.WordFactory;
6160

6261
import com.oracle.truffle.compiler.TruffleCompilable;
6362
import com.oracle.truffle.compiler.hotspot.libgraal.TruffleFromLibGraal;
6463

6564
import jdk.graal.compiler.debug.GraalError;
6665
import jdk.graal.compiler.hotspot.HotSpotGraalServices;
66+
import jdk.graal.compiler.word.Word;
6767
import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
6868
import jdk.vm.ci.meta.JavaConstant;
6969
import jdk.vm.ci.meta.SpeculationLog;
@@ -285,7 +285,7 @@ public boolean cancelCompilation(CharSequence reason) {
285285
@TruffleFromLibGraal(IsSameOrSplit)
286286
@Override
287287
public boolean isSameOrSplit(TruffleCompilable ast) {
288-
JObject astHandle = ast == null ? WordFactory.nullPointer() : ((HSTruffleCompilable) ast).getHandle();
288+
JObject astHandle = ast == null ? Word.nullPointer() : ((HSTruffleCompilable) ast).getHandle();
289289
return HSTruffleCompilableGen.callIsSameOrSplit(calls, env(), getHandle(), astHandle);
290290
}
291291

compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/truffle/HSTruffleCompilerRuntime.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import jdk.graal.compiler.libgraal.LibGraalFeature;
3636
import jdk.graal.compiler.serviceprovider.IsolateUtil;
3737
import jdk.graal.compiler.truffle.hotspot.HotSpotTruffleCompilationSupport;
38+
import jdk.graal.compiler.word.Word;
3839
import jdk.vm.ci.code.InstalledCode;
3940
import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
4041
import jdk.vm.ci.hotspot.HotSpotObjectConstant;
@@ -56,7 +57,6 @@
5657
import org.graalvm.jniutils.JNIUtil;
5758
import org.graalvm.nativeimage.StackValue;
5859
import org.graalvm.nativeimage.c.type.CCharPointer;
59-
import org.graalvm.word.WordFactory;
6060

6161
import java.util.Arrays;
6262
import java.util.function.Consumer;
@@ -123,7 +123,7 @@ public TruffleCompilable asCompilableTruffleAST(JavaConstant constant) {
123123
if (scope == null) {
124124
return null;
125125
}
126-
JObject hsCompilable = WordFactory.pointer(HotSpotJVMCIRuntime.runtime().getJObjectValue((HotSpotObjectConstant) constant));
126+
JObject hsCompilable = Word.pointer(HotSpotJVMCIRuntime.runtime().getJObjectValue((HotSpotObjectConstant) constant));
127127
return new HSTruffleCompilable(scope, hsCompilable, this);
128128
}
129129

compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/truffle/LibGraalTruffleHostEnvironmentLookup.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@
2828
import jdk.graal.compiler.serviceprovider.GlobalAtomicLong;
2929
import jdk.graal.compiler.truffle.host.TruffleHostEnvironment;
3030
import jdk.graal.compiler.truffle.host.TruffleHostEnvironment.TruffleRuntimeScope;
31+
import jdk.graal.compiler.word.Word;
3132
import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
3233
import jdk.vm.ci.meta.ResolvedJavaType;
3334
import org.graalvm.jniutils.JNI.JClass;
3435
import org.graalvm.jniutils.JNI.JNIEnv;
3536
import org.graalvm.jniutils.JNI.JObject;
3637
import org.graalvm.jniutils.JNIMethodScope;
3738
import org.graalvm.jniutils.JNIUtil;
38-
import org.graalvm.word.WordFactory;
3939

4040
/**
4141
* This handles the Truffle host environment lookup on HotSpot with Libgraal.
@@ -66,7 +66,7 @@ public TruffleHostEnvironment lookup(ResolvedJavaType forType) {
6666
return null;
6767
}
6868
JNIEnv env = JNIMethodScope.env();
69-
JObject runtimeLocalRef = JNIUtil.NewLocalRef(env, WordFactory.pointer(globalReference));
69+
JObject runtimeLocalRef = JNIUtil.NewLocalRef(env, Word.pointer(globalReference));
7070
if (runtimeLocalRef.isNull()) {
7171
// The Truffle runtime was collected by the GC
7272
return null;

0 commit comments

Comments
 (0)