Skip to content

Commit dcd4224

Browse files
OracleLabsAutomationzapster
authored andcommitted
[GR-49718] Update JVMCI to 22+20-jvmci-b02.
PullRequest: graal/15889
2 parents b94968d + f4b3958 commit dcd4224

File tree

20 files changed

+105
-50
lines changed

20 files changed

+105
-50
lines changed

common.json

Lines changed: 8 additions & 8 deletions
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": "6.52.0",
7+
"mx_version": "6.53.2",
88

99
"COMMENT.jdks": "When adding or removing JDKs keep in sync with JDKs in ci/common.jsonnet",
1010
"jdks": {
@@ -42,13 +42,13 @@
4242
"labsjdk-ee-21Debug": {"name": "labsjdk", "version": "ee-21.0.1+11-jvmci-23.1-b22-debug", "platformspecific": true },
4343
"labsjdk-ee-21-llvm": {"name": "labsjdk", "version": "ee-21.0.1+11-jvmci-23.1-b22-sulong", "platformspecific": true },
4444

45-
"oraclejdk-latest": {"name": "jpg-jdk", "version": "22", "build_id": "18", "release": true, "platformspecific": true, "extrabundles": ["static-libs"]},
46-
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-22+18-jvmci-b03", "platformspecific": true },
47-
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-22+18-jvmci-b03-debug", "platformspecific": true },
48-
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-22+18-jvmci-b03-sulong", "platformspecific": true },
49-
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-22+18-jvmci-b03", "platformspecific": true },
50-
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-22+18-jvmci-b03-debug", "platformspecific": true },
51-
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-22+18-jvmci-b03-sulong", "platformspecific": true }
45+
"oraclejdk-latest": {"name": "jpg-jdk", "version": "22", "build_id": "20", "release": true, "platformspecific": true, "extrabundles": ["static-libs"]},
46+
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-22+20-jvmci-b02", "platformspecific": true },
47+
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-22+20-jvmci-b02-debug", "platformspecific": true },
48+
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-22+20-jvmci-b02-sulong", "platformspecific": true },
49+
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-22+20-jvmci-b02", "platformspecific": true },
50+
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-22+20-jvmci-b02-debug", "platformspecific": true },
51+
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-22+20-jvmci-b02-sulong", "platformspecific": true }
5252
},
5353

5454
"eclipse": {

compiler/ci/ci_common/gate.jsonnet

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,12 +204,14 @@
204204
local gates = {
205205
"gate-compiler-test-labsjdk-latest-linux-amd64": t("1:00:00") + c.mach5_target,
206206
"gate-compiler-test-labsjdk-latest-linux-aarch64": t("1:50:00") + s.avoid_xgene3,
207-
"gate-compiler-test-labsjdk-latest-darwin-amd64": t("1:00:00") + c.mach5_target + s.ram16gb,
207+
# JDK latest only works on MacOS Ventura (GR-49652)
208+
# "gate-compiler-test-labsjdk-latest-darwin-amd64": t("1:00:00") + c.mach5_target + s.ram16gb,
208209
"gate-compiler-test-labsjdk-latest-darwin-aarch64": t("1:00:00"),
209210
"gate-compiler-test-labsjdk-latest-windows-amd64": t("1:30:00"),
210211
"gate-compiler-test_zgc-labsjdk-latest-linux-amd64": t("1:00:00") + c.mach5_target,
211212
"gate-compiler-test_zgc-labsjdk-latest-linux-aarch64": t("1:50:00") + s.avoid_xgene3,
212-
"gate-compiler-test_zgc-labsjdk-latest-darwin-amd64": t("1:00:00") + c.mach5_target + s.ram16gb,
213+
# JDK latest only works on MacOS Ventura (GR-49652)
214+
# "gate-compiler-test_zgc-labsjdk-latest-darwin-amd64": t("1:00:00") + c.mach5_target + s.ram16gb,
213215
"gate-compiler-test_zgc-labsjdk-latest-darwin-aarch64": t("1:00:00"),
214216

215217
# Style jobs need to stay on a JDK compatible with all the style
@@ -230,7 +232,8 @@
230232
"gate-compiler-truffle_xcomp-labsjdk-latest-linux-amd64": t("1:30:00"),
231233
"gate-compiler-truffle_xcomp_zgc-labsjdk-latest-linux-amd64": t("1:30:00"),
232234

233-
"gate-compiler-bootstrap_lite-labsjdk-latest-darwin-amd64": t("1:00:00") + c.mach5_target,
235+
# JDK latest only works on MacOS Ventura (GR-49652)
236+
# "gate-compiler-bootstrap_lite-labsjdk-latest-darwin-amd64": t("1:00:00") + c.mach5_target,
234237

235238
"gate-compiler-bootstrap_full-labsjdk-latest-linux-amd64": s.many_cores + c.mach5_target,
236239
"gate-compiler-bootstrap_full_zgc-labsjdk-latest-linux-amd64": s.many_cores + c.mach5_target

compiler/src/jdk.graal.compiler.test/src/jdk/graal/compiler/hotspot/test/CheckGraalIntrinsics.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import static jdk.graal.compiler.hotspot.HotSpotGraalServices.isIntrinsicSupportedByC2;
2929

3030
import java.lang.reflect.Constructor;
31+
import java.lang.reflect.Field;
3132
import java.lang.reflect.Method;
3233
import java.util.ArrayList;
3334
import java.util.Collections;
@@ -62,7 +63,7 @@
6263
* Checks the intrinsics implemented by Graal against the set of intrinsics declared by HotSpot. The
6364
* purpose of this test is to detect when new intrinsics are added to HotSpot and process them
6465
* appropriately in Graal. This will be achieved by working through
65-
* {@link UnimplementedGraalIntrinsics#toBeInvestigated} and * either implementing the intrinsic or
66+
* {@link UnimplementedGraalIntrinsics#toBeInvestigated} and either implementing the intrinsic or
6667
* moving it to {@link UnimplementedGraalIntrinsics#ignore}.
6768
*/
6869
public class CheckGraalIntrinsics extends GraalTest {
@@ -145,7 +146,7 @@ public interface Refiner {
145146

146147
@Test
147148
@SuppressWarnings("try")
148-
public void test() throws ClassNotFoundException {
149+
public void test() throws ClassNotFoundException, NoSuchFieldException {
149150
HotSpotProviders providers = rt.getHostBackend().getProviders();
150151
Plugins graphBuilderPlugins = providers.getGraphBuilderPlugins();
151152
InvocationPlugins invocationPlugins = graphBuilderPlugins.getInvocationPlugins();
@@ -162,6 +163,7 @@ public void test() throws ClassNotFoundException {
162163
List<String> mischaracterizedAsIgnored = new ArrayList<>();
163164
List<String> notAvailableYetIntrinsified = new ArrayList<>();
164165

166+
Field toBeInvestigated = UnimplementedGraalIntrinsics.class.getDeclaredField("toBeInvestigated");
165167
for (VMIntrinsicMethod intrinsic : intrinsics) {
166168
ResolvedJavaMethod method = resolveIntrinsic(providers.getMetaAccess(), intrinsic);
167169
if (method == null) {
@@ -196,6 +198,8 @@ public void test() throws ClassNotFoundException {
196198
Collections.sort(missing);
197199
String missingString = missing.stream().map(s -> '"' + s + '"').collect(Collectors.joining(String.format(",%n ")));
198200
errorMsgBuf.format("missing Graal intrinsics for:%n %s%n", missingString);
201+
errorMsgBuf.format("To fix, modify the %s constructor to add them to %s.%n",
202+
UnimplementedGraalIntrinsics.class.getSimpleName(), toBeInvestigated);
199203
}
200204
if (!mischaracterizedAsToBeInvestigated.isEmpty()) {
201205
Collections.sort(mischaracterizedAsToBeInvestigated);

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public final class JVMCIVersionCheck {
4848
*/
4949
private static final Map<String, Version> JVMCI_MIN_VERSIONS = Map.of(
5050
"21", new Version(23, 1, 22),
51-
"22", new Version("22+18", 3));
51+
"22", new Version("22+20", 2));
5252

5353
private static final int NA = 0;
5454
/**

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/meta/UnimplementedGraalIntrinsics.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,11 @@ public UnimplementedGraalIntrinsics() {
116116
"jdk/jfr/internal/JVM.counterTime()J",
117117
"jdk/jfr/internal/JVM.getEventWriter()Ljdk/jfr/internal/event/EventWriter;");
118118

119-
// JDK-8223347: Integration of Vector API (Incubator)
120119
add(toBeInvestigated, // @formatter:off
120+
// JDK-8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (GR-48679)
121+
"java/util/DualPivotQuicksort.partition(Ljava/lang/Class;Ljava/lang/Object;JIIIILjava/util/DualPivotQuicksort$PartitionOperation;)[I",
122+
"java/util/DualPivotQuicksort.sort(Ljava/lang/Class;Ljava/lang/Object;JIILjava/util/DualPivotQuicksort$SortOperation;)V",
123+
// JDK-8223347: Integration of Vector API
121124
"jdk/internal/vm/vector/VectorSupport.compressExpandOp(ILjava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;ILjdk/internal/vm/vector/VectorSupport$Vector;Ljdk/internal/vm/vector/VectorSupport$VectorMask;Ljdk/internal/vm/vector/VectorSupport$CompressExpandOperation;)Ljdk/internal/vm/vector/VectorSupport$VectorPayload;",
122125
jdk == 21 ? "jdk/internal/vm/vector/VectorSupport.extract(Ljava/lang/Class;Ljava/lang/Class;ILjdk/internal/vm/vector/VectorSupport$Vector;ILjdk/internal/vm/vector/VectorSupport$VecExtractOp;)J":
123126
"jdk/internal/vm/vector/VectorSupport.extract(Ljava/lang/Class;Ljava/lang/Class;ILjdk/internal/vm/vector/VectorSupport$VectorPayload;ILjdk/internal/vm/vector/VectorSupport$VecExtractOp;)J",

sdk/ci/ci.jsonnet

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
builds: [
2121
common.linux_amd64 + common.oraclejdkLatest + sdk_gate + common.deps.eclipse + common.deps.jdt,
2222
common.linux_amd64 + common.oraclejdk21 + sdk_gate + common.deps.eclipse + common.deps.jdt + common.mach5_target,
23-
common.darwin_amd64 + common.oraclejdkLatest + sdk_gate,
23+
# JDK latest only works on MacOS Ventura (GR-49652)
24+
# common.darwin_amd64 + common.oraclejdkLatest + sdk_gate,
25+
common.darwin_aarch64 + common.oraclejdkLatest + sdk_gate,
2426
common.darwin_amd64 + common.oraclejdk21 + sdk_gate + common.mach5_target,
2527
]
2628
}

sdk/mx.sdk/suite.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
# SOFTWARE.
4040
#
4141
suite = {
42-
"mxversion": "6.52.0",
42+
"mxversion": "6.53.2",
4343
"name" : "sdk",
4444
"version" : "24.0.0",
4545
"release" : False,

substratevm/mx.substratevm/suite.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,8 @@
691691
"checkstyle": "com.oracle.svm.hosted",
692692
"workingSets": "SVM",
693693
"jacoco" : "include",
694+
# disable SpotBugs as long JDK 22 is unsupported [GR-49566]
695+
"spotbugs" : "false",
694696
},
695697

696698
"com.oracle.svm.hosted.foreign": {
@@ -719,6 +721,8 @@
719721
"checkstyle": "com.oracle.svm.hosted",
720722
"workingSets": "SVM",
721723
"jacoco" : "include",
724+
# disable SpotBugs as long JDK 22 is unsupported [GR-49566]
725+
"spotbugs" : "false",
722726
},
723727

724728
# Native libraries below explicitly set _FORTIFY_SOURCE to 0. This constant controls how glibc handles some

substratevm/src/com.oracle.svm.core.foreign/src/com/oracle/svm/core/foreign/Target_java_lang_foreign_SymbolLookup.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import com.oracle.svm.core.jdk.Target_java_lang_Module;
5050
import com.oracle.svm.core.snippets.KnownIntrinsics;
5151

52+
import jdk.graal.compiler.serviceprovider.JavaVersionUtil;
5253
import jdk.internal.foreign.MemorySessionImpl;
5354
import jdk.internal.foreign.Utils;
5455
import jdk.internal.loader.NativeLibrary;
@@ -134,7 +135,12 @@ static void ensureNativeAccess(Class<?> currentClass, Class<?> owner, String met
134135
*/
135136
Target_java_lang_Module module = SubstrateUtil.cast(currentClass != null ? currentClass.getModule() : ClassLoader.getSystemClassLoader().getUnnamedModule(),
136137
Target_java_lang_Module.class);
137-
module.ensureNativeAccess(owner, methodName);
138+
if (JavaVersionUtil.JAVA_SPEC <= 21) {
139+
module.ensureNativeAccess(owner, methodName);
140+
} else {
141+
module.ensureNativeAccess(owner, methodName, currentClass);
142+
}
143+
138144
}
139145

140146
static <Z> LookupNativeLibraries createNativeLibraries(BiConsumer<LookupNativeLibraries, Z> loadLibraryFunc, List<Z> libDescs) {

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/Target_java_lang_Module.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,20 @@
3535
import com.oracle.svm.core.annotate.Alias;
3636
import com.oracle.svm.core.annotate.Substitute;
3737
import com.oracle.svm.core.annotate.TargetClass;
38+
import com.oracle.svm.core.annotate.TargetElement;
3839
import com.oracle.svm.core.jdk.resources.ResourceStorageEntry;
3940

4041
@SuppressWarnings("unused")
4142
@TargetClass(value = java.lang.Module.class)
4243
public final class Target_java_lang_Module {
4344
@Alias
45+
@TargetElement(onlyWith = JDK21OrEarlier.class)
4446
public native void ensureNativeAccess(Class<?> owner, String methodName);
4547

48+
@Alias
49+
@TargetElement(onlyWith = JDK22OrLater.class)
50+
public native void ensureNativeAccess(Class<?> owner, String methodName, Class<?> currentClass);
51+
4652
@SuppressWarnings("static-method")
4753
@Substitute
4854
private InputStream getResourceAsStream(String resourceName) {

0 commit comments

Comments
 (0)