Skip to content

Commit ee7ff68

Browse files
OracleLabsAutomationzapster
authored andcommitted
[GR-70132] [GR-70158] [GR-70208] Update labsjdk to 25+37-jvmci-b06
PullRequest: graal/22297
2 parents 414fc86 + 52e6628 commit ee7ff68

File tree

22 files changed

+204
-42
lines changed

22 files changed

+204
-42
lines changed

common.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,12 @@
5555
"graalvm-ee-25-ea": {"name": "graalvm-jdk", "version": "25.0.0", "ea": "36", "platformspecific": true },
5656

5757
"oraclejdk-latest": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-25+37", "platformspecific": true, "extrabundles": ["static-libs"]},
58-
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-25+37-jvmci-b05", "platformspecific": true },
59-
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-25+37-jvmci-b05-debug", "platformspecific": true },
60-
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-25+37-jvmci-b05-sulong", "platformspecific": true },
61-
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-25+37-jvmci-b05", "platformspecific": true },
62-
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-25+37-jvmci-b05-debug", "platformspecific": true },
63-
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-25+37-jvmci-b05-sulong", "platformspecific": true }
58+
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-25+37-jvmci-b06", "platformspecific": true },
59+
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-25+37-jvmci-b06-debug", "platformspecific": true },
60+
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-25+37-jvmci-b06-sulong", "platformspecific": true },
61+
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-25+37-jvmci-b06", "platformspecific": true },
62+
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-25+37-jvmci-b06-debug", "platformspecific": true },
63+
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-25+37-jvmci-b06-sulong", "platformspecific": true }
6464
},
6565

6666
"eclipse": {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ public final class JVMCIVersionCheck {
5757
// Checkstyle: stop stable iteration order check
5858
private static final Map<String, Map<String, Version>> JVMCI_MIN_VERSIONS = Map.of(
5959
"25", Map.of(
60-
"Oracle Corporation", createLabsJDKVersion("25+37", 5),
61-
DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("25+37", 5)));
60+
"Oracle Corporation", createLabsJDKVersion("25+37", 6),
61+
DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("25+37", 6)));
6262
// Checkstyle: resume stable iteration order check
6363

6464
private static final int NA = 0;

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,11 @@ public ResolvedJavaType getArrayClass() {
242242
return arrayOfType;
243243
}
244244

245+
@Override
246+
public boolean isHidden() {
247+
throw new UnsupportedOperationException();
248+
}
249+
245250
@Override
246251
public List<JavaType> getPermittedSubclasses() {
247252
throw new UnsupportedOperationException();
@@ -312,6 +317,11 @@ public ResolvedJavaType getEnclosingType() {
312317
throw new UnsupportedOperationException();
313318
}
314319

320+
@Override
321+
public ResolvedJavaMethod getEnclosingMethod() {
322+
throw new UnsupportedOperationException();
323+
}
324+
315325
@Override
316326
public ResolvedJavaMethod[] getDeclaredConstructors() {
317327
return getDeclaredConstructors(true);

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/replaycomp/proxy/HotSpotResolvedJavaTypeProxy.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import java.lang.annotation.Annotation;
4343
import java.util.List;
4444

45+
import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod;
4546
import jdk.vm.ci.hotspot.HotSpotResolvedJavaType;
4647
import jdk.vm.ci.hotspot.HotSpotResolvedObjectType;
4748
import jdk.vm.ci.meta.Assumptions;
@@ -86,6 +87,22 @@ public final HotSpotResolvedObjectType getArrayClass() {
8687
return (HotSpotResolvedObjectType) handle(getArrayClassMethod, getArrayClassInvokable);
8788
}
8889

90+
private static final SymbolicMethod getEnclosingMethodMethod = method("getEnclosingMethod");
91+
private static final InvokableMethod getEnclosingMethodInvokable = (receiver, args) -> ((HotSpotResolvedJavaType) receiver).getEnclosingMethod();
92+
93+
@Override
94+
public HotSpotResolvedJavaMethod getEnclosingMethod() {
95+
return (HotSpotResolvedJavaMethod) handle(getEnclosingMethodMethod, getEnclosingMethodInvokable);
96+
}
97+
98+
private static final SymbolicMethod isHiddenMethod = method("isHidden");
99+
private static final InvokableMethod isHiddenInvokable = (receiver, args) -> ((HotSpotResolvedObjectType) receiver).isHidden();
100+
101+
@Override
102+
public boolean isHidden() {
103+
return (boolean) handle(isHiddenMethod, isHiddenInvokable);
104+
}
105+
89106
private static final SymbolicMethod getPermittedSubclassesMethod = method("getPermittedSubclasses");
90107
private static final InvokableMethod getPermittedSubclassesInvokable = (receiver, args) -> ((HotSpotResolvedJavaType) receiver).getPermittedSubclasses();
91108

espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedArrayType.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,11 @@ public EspressoResolvedArrayType getArrayClass() {
218218
return arrayType;
219219
}
220220

221+
@Override
222+
public boolean isHidden() {
223+
return false;
224+
}
225+
221226
@Override
222227
public List<JavaType> getPermittedSubclasses() {
223228
return null;
@@ -289,6 +294,11 @@ public ResolvedJavaType getEnclosingType() {
289294
return null;
290295
}
291296

297+
@Override
298+
public ResolvedJavaMethod getEnclosingMethod() {
299+
return null;
300+
}
301+
292302
@Override
293303
public ResolvedJavaMethod[] getDeclaredConstructors(boolean forceLink) {
294304
return NO_METHODS;

espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedInstanceType.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import static java.util.Objects.requireNonNull;
3535

3636
import java.lang.annotation.Annotation;
37+
import java.lang.reflect.Executable;
38+
import java.lang.reflect.Method;
3739
import java.lang.reflect.Modifier;
3840
import java.util.Arrays;
3941
import java.util.Collections;
@@ -273,6 +275,9 @@ public ResolvedJavaType getComponentType() {
273275
return null;
274276
}
275277

278+
@Override
279+
public native boolean isHidden();
280+
276281
@Override
277282
public List<JavaType> getPermittedSubclasses() {
278283
Class<?>[] permittedSubclass = getPermittedSubclasses0(getMirror());
@@ -492,6 +497,16 @@ public ResolvedJavaType getEnclosingType() {
492497
return runtime().getHostJVMCIBackend().getMetaAccess().lookupJavaType(enclosingClass);
493498
}
494499

500+
@Override
501+
public ResolvedJavaMethod getEnclosingMethod() {
502+
Method enclosingMethod = getMirror().getEnclosingMethod();
503+
Executable enclosingExecutable = enclosingMethod != null ? enclosingMethod : getMirror().getEnclosingConstructor();
504+
if (enclosingExecutable != null) {
505+
return runtime().getHostJVMCIBackend().getMetaAccess().lookupJavaMethod(enclosingExecutable);
506+
}
507+
return null;
508+
}
509+
495510
@Override
496511
public native void link();
497512

espresso/src/com.oracle.truffle.espresso.jvmci/src/com/oracle/truffle/espresso/jvmci/meta/EspressoResolvedPrimitiveType.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,11 @@ public ResolvedJavaType getComponentType() {
187187
return null;
188188
}
189189

190+
@Override
191+
public boolean isHidden() {
192+
return false;
193+
}
194+
190195
@Override
191196
public List<JavaType> getPermittedSubclasses() {
192197
return null;
@@ -259,6 +264,11 @@ public ResolvedJavaType getEnclosingType() {
259264
return null;
260265
}
261266

267+
@Override
268+
public ResolvedJavaMethod getEnclosingMethod() {
269+
return null;
270+
}
271+
262272
@Override
263273
public ResolvedJavaMethod[] getDeclaredMethods(boolean forceLink) {
264274
return NO_METHODS;

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/substitutions/jvmci/Target_com_oracle_truffle_espresso_jvmci_meta_EspressoResolvedInstanceType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ static StaticObject doDefault(StaticObject self,
8888
}
8989
}
9090

91+
@Substitution
92+
public static boolean isHidden(@JavaType(Class.class) StaticObject self, @Inject EspressoContext context) {
93+
return context.getVM().JVM_IsHiddenClass(self);
94+
}
95+
9196
@Substitution
9297
public static @JavaType(Class[].class) StaticObject getPermittedSubclasses0(@JavaType(Class.class) StaticObject self, @Inject EspressoContext context) {
9398
return context.getVM().JVM_GetPermittedSubclasses(self);

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/AnalysisType.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,14 @@ public abstract class AnalysisType extends AnalysisElement implements WrappedJav
225225

226226
private volatile AnalysisType arrayClass = null;
227227

228-
private static final List<JavaType> PERMITTED_SUBCLASSES_INIT = new ArrayList<>();
229-
private volatile List<JavaType> permittedSubclasses = PERMITTED_SUBCLASSES_INIT;
228+
/**
229+
* Sentinel marker for the uninitialized state of {@link #permittedSubclasses}. Indicates that
230+
* the permitted subclasses (for sealed types) has not yet been computed. Distinguishes this
231+
* state from both a computed {@code null} (not sealed) and a computed list (which may be
232+
* empty).
233+
*/
234+
private static final List<AnalysisType> PERMITTED_SUBCLASSES_UNINITIALIZED = new ArrayList<>();
235+
private volatile List<AnalysisType> permittedSubclasses = PERMITTED_SUBCLASSES_UNINITIALIZED;
230236

231237
@SuppressWarnings("this-escape")
232238
public AnalysisType(AnalysisUniverse universe, ResolvedJavaType javaType, JavaKind storageKind, AnalysisType objectType, AnalysisType cloneableType) {
@@ -967,9 +973,14 @@ public final AnalysisType getArrayClass() {
967973
}
968974

969975
@Override
970-
public List<JavaType> getPermittedSubclasses() {
971-
if (permittedSubclasses == PERMITTED_SUBCLASSES_INIT) {
972-
List<JavaType> wrappedPermittedSubclasses = wrapped.getPermittedSubclasses();
976+
public boolean isHidden() {
977+
return wrapped.isHidden();
978+
}
979+
980+
@Override
981+
public List<? extends AnalysisType> getPermittedSubclasses() {
982+
if (permittedSubclasses == PERMITTED_SUBCLASSES_UNINITIALIZED) {
983+
List<? extends JavaType> wrappedPermittedSubclasses = wrapped.getPermittedSubclasses();
973984
permittedSubclasses = wrappedPermittedSubclasses == null ? null : wrappedPermittedSubclasses.stream().map(universe::lookup).collect(Collectors.toUnmodifiableList());
974985
}
975986
return permittedSubclasses;
@@ -1327,6 +1338,11 @@ public AnalysisType getEnclosingType() {
13271338
return universe.lookup(wrapped.getEnclosingType());
13281339
}
13291340

1341+
@Override
1342+
public AnalysisMethod getEnclosingMethod() {
1343+
return universe.lookup(wrapped.getEnclosingMethod());
1344+
}
1345+
13301346
@Override
13311347
public ResolvedJavaType[] getDeclaredTypes() {
13321348
ResolvedJavaType[] declaredTypes = wrapped.getDeclaredTypes();

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/meta/BaseLayerType.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,11 @@ public ResolvedJavaType getArrayClass() {
226226
throw AnalysisError.shouldNotReachHere("This type is incomplete and should not be used.");
227227
}
228228

229+
@Override
230+
public boolean isHidden() {
231+
throw AnalysisError.shouldNotReachHere("This type is incomplete and should not be used.");
232+
}
233+
229234
@Override
230235
public List<JavaType> getPermittedSubclasses() {
231236
throw AnalysisError.shouldNotReachHere("This type is incomplete and should not be used.");
@@ -321,6 +326,11 @@ public ResolvedJavaType getEnclosingType() {
321326
return enclosingType;
322327
}
323328

329+
@Override
330+
public ResolvedJavaMethod getEnclosingMethod() {
331+
throw AnalysisError.shouldNotReachHere("This type is incomplete and should not be used.");
332+
}
333+
324334
@Override
325335
public ResolvedJavaMethod[] getDeclaredConstructors() {
326336
throw AnalysisError.shouldNotReachHere("This type is incomplete and should not be used.");

0 commit comments

Comments
 (0)