Skip to content

Commit f01b1fe

Browse files
committed
Valhalla support to merge latest OpenJDK contents
Updated Access APIs according to Valhalla JavaLangAccess; Added Unsafe.getAndSetReference/getAndSetReferenceAcquire/getAndSetReferenceRelease/notifyStrictStaticAccess stub methods; Removed Unsafe.uninitializedDefaultValue; Removed @ImplicitlyConstructible; Removed JVM_IsImplicitlyConstructibleClass/JVM_NewNullRestrictedArray; Added JVM_CopyOfSpecialArray/JVM_IsAtomicArray/JVM_NewNullRestrictedNonAtomicArray stub methods; Updated VALUE_TYPES_MAJOR_VERSION; Replaced ValueClass.newNullRestrictedArray() with ValueClass.newNullRestrictedAtomicArray(); Added @strict annotations; Removed CheckedType/NormalCheckedType/NullRestrictedCheckedType, ValueClass isImplicitlyConstructible references; Updated test build setup. Signed-off-by: Jason Feng <fengj@ca.ibm.com>
1 parent fea8da4 commit f01b1fe

File tree

25 files changed

+177
-340
lines changed

25 files changed

+177
-340
lines changed

jcl/src/java.base/share/classes/java/lang/Access.java

Lines changed: 49 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ public List<Method> getDeclaredPublicMethods(Class<?> clz, String name, Class<?>
353353
public void addOpensToAllUnnamed(Module fromModule, Iterator<String> packages) {
354354
fromModule.implAddOpensToAllUnnamed(packages);
355355
}
356-
/*[ELSEIF (JAVA_SPEC_VERSION < 25) | INLINE-TYPES]*/
356+
/*[ELSEIF JAVA_SPEC_VERSION < 25]*/
357357
@Override
358358
public void addOpensToAllUnnamed(Module fromModule, Set<String> concealedPackages, Set<String> exportedPackages) {
359359
fromModule.implAddOpensToAllUnnamed(concealedPackages, exportedPackages);
@@ -370,7 +370,7 @@ public boolean isReflectivelyExported(Module fromModule, String pkg, Module toMo
370370
return fromModule.isReflectivelyExported(pkg, toModule);
371371
}
372372

373-
/*[IF ((10 <= JAVA_SPEC_VERSION) & (JAVA_SPEC_VERSION < 26)) | INLINE-TYPES]*/
373+
/*[IF (10 <= JAVA_SPEC_VERSION) & (JAVA_SPEC_VERSION < 26)]*/
374374
@Override
375375
public String newStringUTF8NoRepl(byte[] bytes, int offset, int length) {
376376
/*[IF JAVA_SPEC_VERSION < 17]*/
@@ -381,7 +381,9 @@ public String newStringUTF8NoRepl(byte[] bytes, int offset, int length) {
381381
return String.newStringUTF8NoRepl(bytes, offset, length, true);
382382
/*[ENDIF] JAVA_SPEC_VERSION < 17 */
383383
}
384+
/*[ENDIF] (10 <= JAVA_SPEC_VERSION) & (JAVA_SPEC_VERSION < 26) */
384385

386+
/*[IF ((10 <= JAVA_SPEC_VERSION) & (JAVA_SPEC_VERSION < 26)) | INLINE-TYPES]*/
385387
@Override
386388
public byte[] getBytesUTF8NoRepl(String str) {
387389
/*[IF JAVA_SPEC_VERSION < 17]*/
@@ -402,7 +404,7 @@ public void blockedOn(Interruptible interruptible) {
402404
/*[ENDIF] JAVA_SPEC_VERSION >= 23 */
403405
}
404406

405-
/*[IF (JAVA_SPEC_VERSION < 25) | INLINE-TYPES]*/
407+
/*[IF JAVA_SPEC_VERSION < 25]*/
406408
@Override
407409
public byte[] getBytesNoRepl(String str, Charset charset) throws CharacterCodingException {
408410
/*[IF JAVA_SPEC_VERSION < 17]*/
@@ -420,7 +422,9 @@ public String newStringNoRepl(byte[] bytes, Charset charset) throws CharacterCod
420422
return String.newStringNoRepl(bytes, charset);
421423
/*[ENDIF] JAVA_SPEC_VERSION < 17 */
422424
}
423-
/*[ELSEIF JAVA_SPEC_VERSION == 25]*/
425+
/*[ENDIF] JAVA_SPEC_VERSION < 25] */
426+
427+
/*[IF (JAVA_SPEC_VERSION == 25) | INLINE-TYPES]*/
424428
@Override
425429
public byte[] uncheckedGetBytesNoRepl(String str, Charset charset) throws CharacterCodingException {
426430
return String.getBytesNoRepl(str, charset);
@@ -430,7 +434,7 @@ public byte[] uncheckedGetBytesNoRepl(String str, Charset charset) throws Charac
430434
public String uncheckedNewStringNoRepl(byte[] bytes, Charset charset) throws CharacterCodingException {
431435
return String.newStringNoRepl(bytes, charset);
432436
}
433-
/*[ENDIF] (JAVA_SPEC_VERSION < 25) | INLINE-TYPES] */
437+
/*[ENDIF] (JAVA_SPEC_VERSION == 25) | INLINE-TYPES] */
434438
/*[ENDIF] JAVA_SPEC_VERSION >= 11 */
435439

436440
/*[IF JAVA_SPEC_VERSION >= 12]*/
@@ -496,20 +500,20 @@ public void addExports(Module fromModule, String pkg) {
496500

497501
/*[IF JAVA_SPEC_VERSION >= 17]*/
498502
@Override
499-
/*[IF (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES]*/
503+
/*[IF JAVA_SPEC_VERSION == 25]*/
500504
public int uncheckedDecodeASCII(byte[] srcBytes, int srcPos, char[] dstChars, int dstPos, int length) {
501-
/*[ELSE] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
505+
/*[ELSE] JAVA_SPEC_VERSION == 25 */
502506
public int decodeASCII(byte[] srcBytes, int srcPos, char[] dstChars, int dstPos, int length) {
503-
/*[ENDIF] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
507+
/*[ENDIF] JAVA_SPEC_VERSION == 25 */
504508
return String.decodeASCII(srcBytes, srcPos, dstChars, dstPos, length);
505509
}
506510

507511
@Override
508-
/*[IF (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES]*/
512+
/*[IF JAVA_SPEC_VERSION == 25]*/
509513
public void uncheckedInflateBytesToChars(byte[] srcBytes, int srcOffset, char[] dstChars, int dstOffset, int length) {
510-
/*[ELSE] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
514+
/*[ELSE] JAVA_SPEC_VERSION == 25 */
511515
public void inflateBytesToChars(byte[] srcBytes, int srcOffset, char[] dstChars, int dstOffset, int length) {
512-
/*[ENDIF] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
516+
/*[ENDIF] JAVA_SPEC_VERSION == 25 */
513517
StringLatin1.inflate(srcBytes, srcOffset, dstChars, dstOffset, length);
514518
}
515519

@@ -583,11 +587,11 @@ public int getCharsUTF16(long i, int index, byte[] buf) {
583587
/*[ENDIF] JAVA_SPEC_VERSION < 25 */
584588

585589
@Override
586-
/*[IF (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES]*/
590+
/*[IF JAVA_SPEC_VERSION >= 25]*/
587591
public void uncheckedPutCharUTF16(byte[] val, int index, int c) {
588-
/*[ELSE] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
592+
/*[ELSE] JAVA_SPEC_VERSION >= 25 */
589593
public void putCharUTF16(byte[] val, int index, int c) {
590-
/*[ENDIF] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
594+
/*[ENDIF] JAVA_SPEC_VERSION >= 25 */
591595
StringUTF16.putChar(val, index, c);
592596
}
593597

@@ -623,24 +627,24 @@ public long findNative(ClassLoader loader, String entryName) {
623627
}
624628
/*[ENDIF] JAVA_SPEC_VERSION < 25 */
625629

626-
/*[IF (JAVA_SPEC_VERSION < 25) | INLINE-TYPES]*/
630+
/*[IF JAVA_SPEC_VERSION < 25]*/
627631
@Override
628632
public void exit(int status) {
629633
Shutdown.exit(status);
630634
}
631-
/*[ENDIF] (JAVA_SPEC_VERSION < 25) | INLINE-TYPES */
635+
/*[ENDIF] JAVA_SPEC_VERSION < 25 */
632636

633637
@Override
634-
/*[IF (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES]*/
638+
/*[IF JAVA_SPEC_VERSION == 25]*/
635639
public int uncheckedEncodeASCII(char[] sa, int sp, byte[] da, int dp, int len) {
636-
/*[ELSE] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
640+
/*[ELSE] JAVA_SPEC_VERSION == 25 */
637641
public int encodeASCII(char[] sa, int sp, byte[] da, int dp, int len) {
638-
/*[ENDIF] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
639-
/*[IF (JAVA_SPEC_VERSION >= 26) & !INLINE-TYPES]*/
642+
/*[ENDIF] JAVA_SPEC_VERSION == 25 */
643+
/*[IF JAVA_SPEC_VERSION >= 26]*/
640644
return StringCoding.encodeAsciiArray(sa, sp, da, dp, len);
641-
/*[ELSE] (JAVA_SPEC_VERSION >= 26) & !INLINE-TYPES */
645+
/*[ELSE] JAVA_SPEC_VERSION >= 26 */
642646
return StringCoding.implEncodeAsciiArray(sa, sp, da, dp, len);
643-
/*[ENDIF] (JAVA_SPEC_VERSION >= 26) & !INLINE-TYPES */
647+
/*[ENDIF] JAVA_SPEC_VERSION >= 26 */
644648
}
645649
/*[ENDIF] JAVA_SPEC_VERSION >= 17 */
646650

@@ -703,20 +707,20 @@ public InputStream initialSystemIn() {
703707

704708
/*[IF JAVA_SPEC_VERSION >= 21]*/
705709
@Override
706-
/*[IF (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES]*/
710+
/*[IF JAVA_SPEC_VERSION >= 25]*/
707711
public char uncheckedGetUTF16Char(byte[] val, int index) {
708-
/*[ELSE] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
712+
/*[ELSE] JAVA_SPEC_VERSION >= 25 */
709713
public char getUTF16Char(byte[] val, int index) {
710-
/*[ENDIF] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
714+
/*[ENDIF] JAVA_SPEC_VERSION >= 25 */
711715
return StringUTF16.getChar(val, index);
712716
}
713717

714718
@Override
715-
/*[IF (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES]*/
719+
/*[IF JAVA_SPEC_VERSION == 25]*/
716720
public int uncheckedCountPositives(byte[] ba, int off, int len) {
717-
/*[ELSE] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
721+
/*[ELSE] JAVA_SPEC_VERSION == 25 */
718722
public int countPositives(byte[] ba, int off, int len) {
719-
/*[ENDIF] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
723+
/*[ENDIF] JAVA_SPEC_VERSION == 25 */
720724
return StringCoding.countPositives(ba, off, len);
721725
}
722726

@@ -829,12 +833,12 @@ private static <T> ThreadLocal<T> asThreadLocal(CarrierThreadLocal<T> local) {
829833
return local;
830834
}
831835

832-
/*[IF (JAVA_SPEC_VERSION < 25) | INLINE-TYPES]*/
836+
/*[IF JAVA_SPEC_VERSION < 25]*/
833837
@Override
834838
public boolean isCarrierThreadLocalPresent(CarrierThreadLocal<?> carrierThreadlocal) {
835839
return asThreadLocal(carrierThreadlocal).isCarrierThreadLocalPresent();
836840
}
837-
/*[ENDIF] (JAVA_SPEC_VERSION < 25) | INLINE-TYPES */
841+
/*[ENDIF] JAVA_SPEC_VERSION < 25 */
838842

839843
@Override
840844
public <T> T getCarrierThreadLocal(CarrierThreadLocal<T> carrierThreadlocal) {
@@ -901,11 +905,11 @@ public int classFileFormatVersion(Class<?> c) {
901905

902906
/*[IF JAVA_SPEC_VERSION >= 24]*/
903907
@Override
904-
/*[IF (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES]*/
908+
/*[IF JAVA_SPEC_VERSION >= 25]*/
905909
public Object uncheckedStringConcat1(String[] constants) {
906-
/*[ELSE] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
910+
/*[ELSE] JAVA_SPEC_VERSION >= 25 */
907911
public Object stringConcat1(String[] constants) {
908-
/*[ENDIF] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
912+
/*[ENDIF] JAVA_SPEC_VERSION >= 25 */
909913
return new StringConcatHelper.Concat1(constants);
910914
}
911915

@@ -939,31 +943,32 @@ public Executor virtualThreadDefaultScheduler() {
939943
return VirtualThread.defaultScheduler();
940944
}
941945

942-
/*[IF (JAVA_SPEC_VERSION < 25) | INLINE-TYPES]*/
946+
/*[IF JAVA_SPEC_VERSION < 25]*/
943947
@Override
944948
public Stream<ScheduledExecutorService> virtualThreadDelayedTaskSchedulers() {
945949
return VirtualThread.delayedTaskSchedulers();
946950
}
947-
/*[ENDIF] (JAVA_SPEC_VERSION < 25) | INLINE-TYPES */
951+
/*[ENDIF] JAVA_SPEC_VERSION < 25 */
948952
/*[ENDIF] JAVA_SPEC_VERSION >= 24 */
949953
/*[ENDIF] JAVA_SPEC_VERSION >= 9 */
950954

951-
/*[IF (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES]*/
955+
/*[IF JAVA_SPEC_VERSION >= 25]*/
952956
@Override
953957
public int classFileVersion(Class<?> clazz) {
954958
return clazz.getClassFileVersion();
955959
}
956-
/*[ENDIF] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
960+
/*[ENDIF] JAVA_SPEC_VERSION >= 25 */
957961

958-
/*[IF (JAVA_SPEC_VERSION >= 26) & !INLINE-TYPES]*/
962+
/*[IF JAVA_SPEC_VERSION >= 26]*/
959963
@Override
960-
public byte[] getBytesUTF8OrThrow(String s) throws CharacterCodingException {
961-
return String.getBytesUTF8OrThrow(s);
964+
public int getClassFileAccessFlags(Class<?> clazz) {
965+
return clazz.getClassFileAccessFlags();
962966
}
963967

968+
/*[IF !INLINE-TYPES]*/
964969
@Override
965-
public int getClassFileAccessFlags(Class<?> clazz) {
966-
return clazz.getClassFileAccessFlags();
970+
public byte[] getBytesUTF8OrThrow(String s) throws CharacterCodingException {
971+
return String.getBytesUTF8OrThrow(s);
967972
}
968973

969974
@Override
@@ -975,10 +980,11 @@ public byte[] uncheckedGetBytesOrThrow(String s, Charset cs) throws CharacterCod
975980
public String uncheckedNewStringOrThrow(byte[] bytes, Charset cs) throws CharacterCodingException {
976981
return String.newStringOrThrow(bytes, cs);
977982
}
983+
/*[ENDIF] !INLINE-TYPES */
978984

979985
@Override
980986
public String uncheckedNewStringWithLatin1Bytes(byte[] src) {
981987
return String.newStringWithLatin1Bytes(src);
982988
}
983-
/*[ENDIF] (JAVA_SPEC_VERSION >= 26) & !INLINE-TYPES */
989+
/*[ENDIF] JAVA_SPEC_VERSION >= 26 */
984990
}

jcl/src/java.base/share/classes/jdk/internal/misc/Unsafe.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4430,6 +4430,25 @@ public final Object getAndSetReference(Object obj, long offset, Object value) {
44304430
}
44314431
}
44324432

4433+
/*[IF INLINE-TYPES]*/
4434+
public final Object getAndSetReference(Object obj, long offset, Class<?> valueType, Object value) {
4435+
throw new Error("getAndSetReference() unimplemented"); //$NON-NLS-1$
4436+
}
4437+
4438+
public final Object getAndSetReferenceAcquire(Object obj, long offset, Class<?> valueType, Object value) {
4439+
return getAndSetReference(obj, offset, valueType, value);
4440+
}
4441+
4442+
public final Object getAndSetReferenceRelease(Object obj, long offset, Class<?> valueType, Object value) {
4443+
return getAndSetReference(obj, offset, valueType, value);
4444+
}
4445+
4446+
public void notifyStrictStaticAccess(Class<?> clz, long staticFieldOffset, boolean writing) {
4447+
Objects.requireNonNull(clz);
4448+
throw new Error("notifyStrictStaticAccess() unimplemented"); //$NON-NLS-1$
4449+
}
4450+
/*[ENDIF] INLINE-TYPES */
4451+
44334452
/**
44344453
* Atomically sets value at offset in obj
44354454
* and returns the value of the field prior to the update.
@@ -6629,14 +6648,6 @@ private static char convEndian(boolean isBigEndian, char value) {
66296648
*/
66306649
public native <V> void putValue(Object obj, long offset, Class<?> clz, V value);
66316650

6632-
/**
6633-
* Returns the uninitialized default instance of the specified value class
6634-
*
6635-
* @param clz the specificed value class
6636-
* @return the uninitialized default instance of clz
6637-
*/
6638-
public native <V> V uninitializedDefaultValue(Class<?> clz);
6639-
66406651
/**
66416652
* Determines the size of the header for a specified value class
66426653
*

runtime/bcutil/ClassFileOracle.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,6 @@ ClassFileOracle::KnownAnnotation ClassFileOracle::_knownAnnotations[] = {
9090
#define NULLRESTRICTED_SIGNATURE "Ljdk/internal/vm/annotation/NullRestricted;"
9191
{NULLRESTRICTED_SIGNATURE , sizeof(NULLRESTRICTED_SIGNATURE)},
9292
#undef NULLRESTRICTED_SIGNATURE
93-
#define IMPLICITLYCONSTRUCTIBLE_SIGNATURE "Ljdk/internal/vm/annotation/ImplicitlyConstructible;"
94-
{IMPLICITLYCONSTRUCTIBLE_SIGNATURE , sizeof(IMPLICITLYCONSTRUCTIBLE_SIGNATURE)},
95-
#undef IMPLICITLYCONSTRUCTIBLE_SIGNATURE
9693
#define LOOSELYCONSISTENTVALUE_SIGNATURE "Ljdk/internal/vm/annotation/LooselyConsistentValue;"
9794
{LOOSELYCONSISTENTVALUE_SIGNATURE , sizeof(LOOSELYCONSISTENTVALUE_SIGNATURE)},
9895
#undef LOOSELYCONSISTENTVALUE_SIGNATURE
@@ -564,7 +561,6 @@ ClassFileOracle::walkAttributes()
564561
knownAnnotations = addAnnotationBit(knownAnnotations, UNMODIFIABLE_ANNOTATION);
565562
knownAnnotations = addAnnotationBit(knownAnnotations, VALUEBASED_ANNOTATION);
566563
#if defined(J9VM_OPT_VALHALLA_FLATTENABLE_VALUE_TYPES)
567-
knownAnnotations = addAnnotationBit(knownAnnotations, IMPLICITLYCONSTRUCTIBLE_ANNOTATION);
568564
knownAnnotations = addAnnotationBit(knownAnnotations, LOOSELYCONSISTENTVALUE_ANNOTATION);
569565
#endif /* defined(J9VM_OPT_VALHALLA_FLATTENABLE_VALUE_TYPES) */
570566
_annotationsAttribute = (J9CfrAttributeRuntimeVisibleAnnotations *)attrib;
@@ -580,10 +576,6 @@ ClassFileOracle::walkAttributes()
580576
_isClassValueBased = true;
581577
}
582578
#if defined(J9VM_OPT_VALHALLA_FLATTENABLE_VALUE_TYPES)
583-
if (containsKnownAnnotation(foundAnnotations, IMPLICITLYCONSTRUCTIBLE_ANNOTATION)) {
584-
_hasImplicitCreationAttribute = true;
585-
_implicitCreationFlags |= J9AccImplicitCreateHasDefaultValue;
586-
}
587579
if (containsKnownAnnotation(foundAnnotations, LOOSELYCONSISTENTVALUE_ANNOTATION)) {
588580
_hasImplicitCreationAttribute = true;
589581
_implicitCreationFlags |= J9AccImplicitCreateNonAtomic;

runtime/bcutil/ClassFileOracle.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1089,7 +1089,6 @@ class RecordComponentIterator
10891089
#endif /* JAVA_SPEC_VERSION >= 20 */
10901090
#if defined(J9VM_OPT_VALHALLA_FLATTENABLE_VALUE_TYPES)
10911091
NULLRESTRICTED_ANNOTATION,
1092-
IMPLICITLYCONSTRUCTIBLE_ANNOTATION,
10931092
LOOSELYCONSISTENTVALUE_ANNOTATION,
10941093
#endif /* defined(J9VM_OPT_VALHALLA_FLATTENABLE_VALUE_TYPES) */
10951094
KNOWN_ANNOTATION_COUNT

runtime/compiler/codegen/J9RecognizedMethodsEnum.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -542,8 +542,6 @@
542542

543543
java_lang_reflect_Array_getLength,
544544
jdk_internal_value_ValueClass_newArrayInstance,
545-
jdk_internal_value_ValueClass_newNullRestrictedArray,
546-
jdk_internal_value_NullRestrictedCheckedType_of,
547545
java_lang_reflect_Method_invoke,
548546
java_util_Arrays_fill,
549547
java_util_Arrays_equals,

runtime/compiler/env/j9method.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3933,13 +3933,6 @@ void TR_ResolvedJ9Method::construct()
39333933
static X ValueClassMethods[] =
39343934
{
39353935
{x(TR::jdk_internal_value_ValueClass_newArrayInstance, "newArrayInstance", "(Ljdk/internal/value/CheckedType;I)[Ljava/lang/Object;")},
3936-
{x(TR::jdk_internal_value_ValueClass_newNullRestrictedArray, "newNullRestrictedArray", "(Ljava/lang/Class;I)[Ljava/lang/Object;")},
3937-
{ TR::unknownMethod}
3938-
};
3939-
3940-
static X NullRestrictedCheckedTypeMethods[] =
3941-
{
3942-
{x(TR::jdk_internal_value_NullRestrictedCheckedType_of, "of", "(Ljava/lang/Class;)Ljdk/internal/value/NullRestrictedCheckedType;")},
39433936
{ TR::unknownMethod}
39443937
};
39453938

@@ -4416,7 +4409,6 @@ void TR_ResolvedJ9Method::construct()
44164409
{
44174410
{ "java/lang/invoke/ConvertHandle$FilterHelpers", ConvertHandleFilterHelpersMethods },
44184411
{ "java/lang/invoke/DirectMethodHandle$Accessor", DirectMethodHandleAccessorMethods },
4419-
{ "jdk/internal/value/NullRestrictedCheckedType", NullRestrictedCheckedTypeMethods },
44204412
{ 0 }
44214413
};
44224414

runtime/compiler/optimizer/J9ValuePropagation.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4321,7 +4321,6 @@ J9::ValuePropagation::innerConstrainAcall(TR::Node *node)
43214321
{
43224322
/*
43234323
* n12n acall jdk/internal/value/ValueClass.newArrayInstance(Ljdk/internal/value/CheckedType;I)[Ljava/lang/Object;
4324-
* n9n acall jdk/internal/value/NullRestrictedCheckedType.of(Ljava/lang/Class;)Ljdk/internal/value/NullRestrictedCheckedType;
43254324
* n8n aloadi <javaLangClassFromClass>
43264325
* n7n loadaddr SomeValueClass
43274326
* n11n iload Test.ARRAY_SIZE
@@ -4332,12 +4331,8 @@ J9::ValuePropagation::innerConstrainAcall(TR::Node *node)
43324331

43334332
if (constraint &&
43344333
constraint->isFixedClass() &&
4335-
firstChildAcallNode->getSymbol()->isResolvedMethod() &&
4336-
(firstChildAcallNode->getSymbol()->getResolvedMethodSymbol()->getRecognizedMethod() == TR::jdk_internal_value_NullRestrictedCheckedType_of))
4334+
firstChildAcallNode->getSymbol()->isResolvedMethod())
43374335
{
4338-
if (trace())
4339-
traceMsg(comp(), "%s: node n%dn its first child fixed class %p is an instance of NullRestrictedCheckedType\n", __FUNCTION__, node->getGlobalIndex(), constraint->getClass());
4340-
43414336
constraint = firstChildAcallNode->getFirstChild() ? getConstraint(firstChildAcallNode->getFirstChild(), isGlobal) : NULL;
43424337
TR_OpaqueClassBlock *arrayComponentClass = (constraint && constraint->isFixedClass()) ? constraint->getClass() : NULL;
43434338
TR_OpaqueClassBlock *nullRestrictedArrayClass = arrayComponentClass ? fe()->getNullRestrictedArrayClassFromComponentClass(arrayComponentClass) : NULL;

runtime/j9vm/exports.cmake

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -517,13 +517,14 @@ endif()
517517

518518
if(J9VM_OPT_VALHALLA_VALUE_TYPES)
519519
jvm_add_exports(jvm
520+
JVM_CopyOfSpecialArray
521+
JVM_IsAtomicArray
520522
JVM_IsFlatArray
521-
JVM_IsImplicitlyConstructibleClass
522523
JVM_IsNullRestrictedArray
523524
JVM_IsValhallaEnabled
524525
JVM_NewNullableAtomicArray
525-
JVM_NewNullRestrictedArray
526526
JVM_NewNullRestrictedAtomicArray
527+
JVM_NewNullRestrictedNonAtomicArray
527528
JVM_VirtualThreadHideFrames
528529
)
529530
endif()

0 commit comments

Comments
 (0)