Skip to content

Commit e66de2f

Browse files
committed
[GR-64967] Remove "forceJavac" where it was added due to insufficient support from ECJ.
PullRequest: graal/20803
2 parents 776dd1f + fd7b495 commit e66de2f

24 files changed

+83
-71
lines changed

substratevm/mx.substratevm/suite.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -817,8 +817,6 @@
817817
],
818818
},
819819
"javaCompliance" : "22+",
820-
# GR-51699
821-
"forceJavac": True,
822820
"annotationProcessors": [
823821
"compiler:GRAAL_PROCESSOR",
824822
"SVM_PROCESSOR",
@@ -863,8 +861,6 @@
863861
],
864862
},
865863
"javaCompliance" : "22+",
866-
# GR-51699
867-
"forceJavac": True,
868864
"annotationProcessors": [
869865
"compiler:GRAAL_PROCESSOR",
870866
"SVM_PROCESSOR",

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

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,10 @@ public record TypeAdaptation(List<AssignedLocation> parametersAssignment, Method
136136
}
137137

138138
public static Result.FullNativeAdaptation adaptToNative(AbiUtils self, List<Adaptation> adaptations, List<ValueNode> originalArguments, NativeEntryPointInfo nep) {
139-
originalArguments = Collections.unmodifiableList(originalArguments);
139+
List<ValueNode> originalUnmodifiableArguments = Collections.unmodifiableList(originalArguments);
140140

141141
AssignedLocation[] originalAssignment = self.toMemoryAssignment(nep.parametersAssignment(), false);
142-
VMError.guarantee(allEqual(adaptations.size(), originalArguments.size(), nep.methodType().parameterCount(), originalAssignment.length));
142+
VMError.guarantee(allEqual(adaptations.size(), originalUnmodifiableArguments.size(), nep.methodType().parameterCount(), originalAssignment.length));
143143

144144
Map<Extracted, ValueNode> extractedArguments = new EnumMap<>(Extracted.class);
145145
List<ValueNode> arguments = new ArrayList<>();
@@ -154,7 +154,7 @@ public static Result.FullNativeAdaptation adaptToNative(AbiUtils self, List<Adap
154154
adaptation = NOOP;
155155
}
156156

157-
arguments.addAll(adaptation.apply(originalArguments.get(i), extractedArguments, originalArguments, i, nodesToAppendToGraph::add));
157+
arguments.addAll(adaptation.apply(originalUnmodifiableArguments.get(i), extractedArguments, originalUnmodifiableArguments, i, nodesToAppendToGraph::add));
158158
assignment.addAll(adaptation.apply(originalAssignment[i]));
159159
argumentTypes.addAll(adaptation.apply(nep.methodType().parameterType(i)));
160160

@@ -246,7 +246,7 @@ public static Adaptation extract(Extracted as, Class<?> type) {
246246
return new ExtractSingle(as, type);
247247
}
248248

249-
public static Adaptation extractSegmentPair(Extracted as, Class<?> type) {
249+
public static Adaptation extractSegmentPair(Extracted as) {
250250
return new ExtractSegmentPair(as);
251251
}
252252

@@ -324,9 +324,9 @@ public List<ValueNode> apply(ValueNode parameter, Map<Extracted, ValueNode> extr
324324
* (segments allocated using an Arena), and these have a method `unsafeGetOffset` which
325325
* straightforwardly returns the raw pointer. <br>
326326
* However, when `allowHeapAccess` is true (the argument to Linker.Option.critical), one may
327-
* pass a {@link HeapMemorySegmentImpl} as well. For reasons detailed in its documentation,
328-
* heap segments are represented as an Object + offset pair, where the raw pointer should be
329-
* derived from their sum. <br>
327+
* pass a {@link jdk.internal.foreign.HeapMemorySegmentImpl} as well. For reasons detailed
328+
* in its documentation, heap segments are represented as an Object + offset pair, where the
329+
* raw pointer should be derived from their sum. <br>
330330
* Hence, when `allowHeapAccess` is true,
331331
* {@link CallArranger.UnboxBindingCalculator#getBindings(Class, MemoryLayout)} passes two
332332
* arguments for every AddressLayout, the result of `unsafeGetBase` (of type Object) and
@@ -340,6 +340,7 @@ public List<ValueNode> apply(ValueNode parameter, Map<Extracted, ValueNode> extr
340340
* {@code null} is when Linker.Option.critical(true) is passed. See
341341
* {@link CallArranger.UnboxBindingCalculator#getBindings(Class, MemoryLayout)}.
342342
*/
343+
@SuppressWarnings("javadoc")
343344
private static final class ComputeAddressFromSegmentPair extends Adaptation {
344345
private static final ComputeAddressFromSegmentPair SINGLETON = new ComputeAddressFromSegmentPair();
345346

@@ -602,7 +603,7 @@ protected List<Adapter.Adaptation> generateAdaptations(NativeEntryPointInfo nep)
602603
if (nep.allowHeapAccess()) {
603604
VMError.guarantee(storages[current] != null && storages[current + 1] == null);
604605
// consumes two parameters (i.e. object + offset pair)
605-
handleCriticalWithHeapAccess(nep, current + 1, adaptations, Adapter.extractSegmentPair(Adapter.Extracted.CaptureBufferAddress, long.class));
606+
handleCriticalWithHeapAccess(nep, current + 1, adaptations, Adapter.extractSegmentPair(Adapter.Extracted.CaptureBufferAddress));
606607
current += 2;
607608
} else {
608609
adaptations.set(current, Adapter.extract(Adapter.Extracted.CaptureBufferAddress, long.class));
@@ -898,6 +899,7 @@ public void checkLibrarySupport() {
898899
@BasedOnJDKClass(jdk.internal.foreign.abi.UpcallLinker.class)
899900
abstract static class X86_64 extends AbiUtils {
900901

902+
@Override
901903
protected abstract CallingSequence makeCallingSequence(MethodType type, FunctionDescriptor desc, boolean forUpcall, LinkerOptions options);
902904

903905
@Override

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
* case of the FFM API support is disabled entirely, substitutions in
3535
* {@link com.oracle.svm.core.jdk.ForeignDisabledSubstitutions} will be used.
3636
*/
37+
@SuppressWarnings("javadoc")
3738
public final class ForeignAPIPredicates {
3839
public static final class Enabled implements BooleanSupplier {
3940
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ static JavaEntryPointInfo make(MethodType mt, Target_jdk_internal_foreign_abi_Up
5353
return new JavaEntryPointInfo(mt, conv.argRegs(), conv.retRegs(), returnBufferSize);
5454
}
5555

56-
static JavaEntryPointInfo make(MethodHandle mh, ABIDescriptor abi, Target_jdk_internal_foreign_abi_UpcallLinker_CallRegs conv,
56+
static JavaEntryPointInfo make(MethodHandle mh, @SuppressWarnings("unused") ABIDescriptor abi, Target_jdk_internal_foreign_abi_UpcallLinker_CallRegs conv,
5757
boolean needsReturnBuffer, long returnBufferSize) {
5858
return make(mh.type(), conv, needsReturnBuffer, returnBufferSize);
5959
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,13 @@ public static NativeEntryPointInfo make(
7878
boolean needsReturnBuffer,
7979
int capturedStateMask,
8080
boolean needsTransition,
81-
boolean allowHeapAccess) {
81+
boolean allowHeapAccessParam) {
8282
if ((returnMoves.length > 1) != needsReturnBuffer) {
8383
throw new AssertionError("Multiple register return, but needsReturnBuffer was false");
8484
}
8585
var hasNull = Arrays.stream(argMoves).anyMatch(Objects::isNull);
86-
VMError.guarantee(!hasNull || allowHeapAccess, "null VMStorages should only appear with Linker.Option.critical(true).");
86+
VMError.guarantee(!hasNull || allowHeapAccessParam, "null VMStorages should only appear with Linker.Option.critical(true).");
87+
boolean allowHeapAccess = allowHeapAccessParam;
8788
if (!hasNull) {
8889
/*
8990
* hasNull is only true if this entry point's FunctionDescriptor contains an

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
* succeed. See
6767
* {@link com.oracle.svm.core.jdk.Target_java_lang_ClassLoader#loadLibrary(java.lang.Class, java.lang.String)}
6868
*/
69+
@SuppressWarnings("javadoc")
6970
@TargetClass(className = "java.lang.foreign.SymbolLookup", onlyWith = ForeignAPIPredicates.Enabled.class)
7071
public final class Target_java_lang_foreign_SymbolLookup {
7172

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
*/
3838
@TargetClass(className = "jdk.internal.foreign.SystemLookup", onlyWith = ForeignAPIPredicates.Enabled.class)
3939
public final class Target_jdk_internal_foreign_SystemLookup {
40+
@SuppressWarnings("static-method")
4041
@Substitute
4142
public Optional<MemorySegment> find(String name) {
4243
return RuntimeSystemLookup.INSTANCE.find(name);

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ public MemorySegment makeStub(MethodHandle target, Arena arena) {
9595
@TargetClass(value = SysVx64Linker.class, onlyWith = ForeignAPIPredicates.FunctionCallsSupported.class)
9696
final class Target_jdk_internal_foreign_abi_x64_sysv_SysVx64Linker {
9797

98+
@SuppressWarnings("static-method")
9899
@Substitute
99100
UpcallStubFactory arrangeUpcall(MethodType targetType, FunctionDescriptor function, LinkerOptions options) {
100101
return new UpcallStubFactoryDecorator(jdk.internal.foreign.abi.x64.sysv.CallArranger.arrangeUpcall(targetType, function, options), function, options);
@@ -104,6 +105,7 @@ UpcallStubFactory arrangeUpcall(MethodType targetType, FunctionDescriptor functi
104105
@TargetClass(value = Windowsx64Linker.class, onlyWith = ForeignAPIPredicates.FunctionCallsSupported.class)
105106
final class Target_jdk_internal_foreign_abi_x64_windows_Windowsx64Linker {
106107

108+
@SuppressWarnings("static-method")
107109
@Substitute
108110
UpcallStubFactory arrangeUpcall(MethodType targetType, FunctionDescriptor function, LinkerOptions options) {
109111
return new UpcallStubFactoryDecorator(jdk.internal.foreign.abi.x64.windows.CallArranger.arrangeUpcall(targetType, function, options), function, options);
@@ -113,6 +115,7 @@ UpcallStubFactory arrangeUpcall(MethodType targetType, FunctionDescriptor functi
113115
@TargetClass(value = MacOsAArch64Linker.class, onlyWith = ForeignAPIPredicates.FunctionCallsSupported.class)
114116
final class Target_jdk_internal_foreign_abi_aarch64_macos_MacOsAArch64Linker {
115117

118+
@SuppressWarnings("static-method")
116119
@Substitute
117120
UpcallStubFactory arrangeUpcall(MethodType targetType, FunctionDescriptor function, LinkerOptions options) {
118121
return new UpcallStubFactoryDecorator(jdk.internal.foreign.abi.aarch64.CallArranger.MACOS.arrangeUpcall(targetType, function, options), function, options);
@@ -122,6 +125,7 @@ UpcallStubFactory arrangeUpcall(MethodType targetType, FunctionDescriptor functi
122125
@TargetClass(value = LinuxAArch64Linker.class, onlyWith = ForeignAPIPredicates.FunctionCallsSupported.class)
123126
final class Target_jdk_internal_foreign_abi_aarch64_linux_LinuxAArch64Linker {
124127

128+
@SuppressWarnings("static-method")
125129
@Substitute
126130
UpcallStubFactory arrangeUpcall(MethodType targetType, FunctionDescriptor function, LinkerOptions options) {
127131
return new UpcallStubFactoryDecorator(jdk.internal.foreign.abi.aarch64.CallArranger.LINUX.arrangeUpcall(targetType, function, options), function, options);

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
* Packs the address of a {@link com.oracle.svm.hosted.foreign.DowncallStub} with some extra
3939
* information.
4040
*/
41+
@SuppressWarnings("javadoc")
4142
@TargetClass(className = "jdk.internal.foreign.abi.NativeEntryPoint", onlyWith = ForeignAPIPredicates.FunctionCallsSupported.class)
4243
@Substitute
4344
public final class Target_jdk_internal_foreign_abi_NativeEntryPoint {
@@ -59,7 +60,7 @@ public static Target_jdk_internal_foreign_abi_NativeEntryPoint make(ABIDescripto
5960
boolean needsReturnBuffer,
6061
int capturedStateMask,
6162
boolean needsTransition,
62-
boolean usingAddressPairs) {
63+
@SuppressWarnings("unused") boolean usingAddressPairs) {
6364
/*
6465
* A VMStorage may be null only when the Linker.Option.critical(allowHeapAccess=true) option
6566
* is passed. (see

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
*
8484
* @noinspection CaughtExceptionImmediatelyRethrown
8585
*/
86+
@SuppressWarnings("javadoc")
8687
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-24+15/src/java.base/share/classes/jdk/internal/misc/X-ScopedMemoryAccess-bin.java.template")
8788
@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+13/src/java.base/share/classes/jdk/internal/misc/X-ScopedMemoryAccess.java.template")
8889
@TargetClass(className = "jdk.internal.misc.ScopedMemoryAccess", onlyWith = ForeignAPIPredicates.Enabled.class)

0 commit comments

Comments
 (0)