Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions common.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,12 @@
"graalvm-ee-25-ea": {"name": "graalvm-jdk", "version": "25.0.0", "ea": "36", "platformspecific": true },

"oraclejdk-latest": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25.0.1+8", "platformspecific": true, "extrabundles": ["static-libs"]},
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-25.0.1+8-jvmci-25.1-b13", "platformspecific": true },
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-25.0.1+8-jvmci-25.1-b13-debug", "platformspecific": true },
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-25.0.1+8-jvmci-25.1-b13-sulong", "platformspecific": true },
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-25.0.1+8-jvmci-25.1-b13", "platformspecific": true },
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-25.0.1+8-jvmci-25.1-b13-debug", "platformspecific": true },
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-25.0.1+8-jvmci-25.1-b13-sulong", "platformspecific": true }
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-25.0.1+8-jvmci-25.1-b14", "platformspecific": true },
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-25.0.1+8-jvmci-25.1-b14-debug", "platformspecific": true },
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-25.0.1+8-jvmci-25.1-b14-sulong", "platformspecific": true },
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-25.0.1+8-jvmci-25.1-b14", "platformspecific": true },
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-25.0.1+8-jvmci-25.1-b14-debug", "platformspecific": true },
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-25.0.1+8-jvmci-25.1-b14-sulong", "platformspecific": true }
},

"eclipse": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ public final class JVMCIVersionCheck {
// Checkstyle: stop stable iteration order check
private static final Map<String, Map<String, Version>> JVMCI_MIN_VERSIONS = Map.of(
"25", Map.of(
"Oracle Corporation", createLabsJDKVersion("25.0.1+8", "25.1", 13),
DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("25.0.1+8", "25.1", 13)));
"Oracle Corporation", createLabsJDKVersion("25.0.1+8", "25.1", 14),
DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("25.0.1+8", "25.1", 14)));
// Checkstyle: resume stable iteration order check

private static final int NA = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,8 @@
import java.util.stream.Collectors;

import com.oracle.graal.pointsto.constraints.UnresolvedElementException;
import com.oracle.svm.util.GraalAccess;
import com.oracle.svm.util.OriginalClassProvider;
import com.oracle.svm.util.OriginalMethodProvider;

import jdk.graal.compiler.api.replacements.SnippetReflectionProvider;
import jdk.graal.compiler.debug.GraalError;
import jdk.vm.ci.meta.ConstantPool;
import jdk.vm.ci.meta.JavaConstant;
Expand Down Expand Up @@ -62,27 +59,7 @@ public int length() {
}

private JavaConstant lookupConstant(JavaConstant constant) {
return universe.lookup(extractResolvedType(constant));
}

public JavaConstant extractResolvedType(JavaConstant constant) {
if (constant != null && constant.getJavaKind().isObject() && !constant.isNull()) {
SnippetReflectionProvider snippetReflection = GraalAccess.getOriginalSnippetReflection();
if (snippetReflection.asObject(Object.class, constant) instanceof ResolvedJavaType resolvedJavaType) {
/*
* BootstrapMethodInvocation.getStaticArguments can output a constant containing a
* HotspotJavaType when a static argument of type Class if loaded lazily in pull
* mode. In this case, the type has to be converted back to a Class, as it would
* cause a hotspot value to be reachable otherwise.
*
* If the constant contains an UnresolvedJavaType, it cannot be converted as a
* Class. It is not a problem for this type to be reachable, so those constants can
* be handled later.
*/
return snippetReflection.forObject(OriginalClassProvider.getJavaClass(resolvedJavaType));
}
}
return constant;
return universe.lookup(constant);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1470,7 +1470,7 @@ private Object loadConstantDynamic(int cpi, int opcode) {
}

Object resolvedObject = resolveLinkedObject(bci(), cpi, opcode, bootstrap, parameterLength, staticArguments, isVarargs, isPrimitive);
if (resolvedObject instanceof Throwable) {
if (resolvedObject instanceof Throwable || resolvedObject instanceof UnresolvedJavaType) {
return resolvedObject;
}
ValueNode resolvedObjectNode = (ValueNode) resolvedObject;
Expand Down