Skip to content

Commit b6099d5

Browse files
author
Felix Berlakovich
committed
properly report errors in libgraal entrypoint
1 parent 8f09668 commit b6099d5

File tree

1 file changed

+22
-17
lines changed

1 file changed

+22
-17
lines changed

compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/LibGraalEntryPoints.java

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -24,12 +24,27 @@
2424
*/
2525
package jdk.graal.compiler.libgraal;
2626

27+
import static jdk.graal.compiler.serviceprovider.GraalServices.getCurrentThreadAllocatedBytes;
28+
import static jdk.graal.compiler.serviceprovider.GraalServices.isThreadAllocatedMemorySupported;
29+
2730
import java.io.ByteArrayOutputStream;
2831
import java.io.PrintStream;
2932
import java.util.Arrays;
3033
import java.util.Map;
3134

35+
import org.graalvm.collections.EconomicMap;
36+
import org.graalvm.jniutils.JNI.JNIEnv;
37+
import org.graalvm.jniutils.JNIExceptionWrapper;
38+
import org.graalvm.jniutils.JNIMethodScope;
39+
import org.graalvm.nativeimage.Platform;
40+
import org.graalvm.nativeimage.Platforms;
41+
import org.graalvm.nativeimage.c.function.CEntryPoint;
42+
import org.graalvm.nativeimage.c.function.CEntryPoint.IsolateThreadContext;
43+
import org.graalvm.nativeimage.c.type.CTypeConversion;
44+
import org.graalvm.word.PointerBase;
45+
3246
import jdk.graal.compiler.debug.GlobalMetrics;
47+
import jdk.graal.compiler.debug.GraalError;
3348
import jdk.graal.compiler.hotspot.CompilationContext;
3449
import jdk.graal.compiler.hotspot.CompilationTask;
3550
import jdk.graal.compiler.hotspot.HotSpotGraalCompiler;
@@ -42,7 +57,9 @@
4257
import jdk.graal.compiler.options.OptionsParser;
4358
import jdk.graal.compiler.util.OptionsEncoder;
4459
import jdk.graal.compiler.word.Word;
60+
import jdk.internal.misc.Unsafe;
4561
import jdk.vm.ci.hotspot.HotSpotCompilationRequest;
62+
import jdk.vm.ci.hotspot.HotSpotCompilationRequestResult;
4663
import jdk.vm.ci.hotspot.HotSpotInstalledCode;
4764
import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
4865
import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod;
@@ -53,21 +70,6 @@
5370
import jdk.vm.ci.meta.ResolvedJavaField;
5471
import jdk.vm.ci.runtime.JVMCIBackend;
5572
import jdk.vm.ci.runtime.JVMCICompiler;
56-
import org.graalvm.collections.EconomicMap;
57-
import org.graalvm.jniutils.JNI.JNIEnv;
58-
import org.graalvm.jniutils.JNIExceptionWrapper;
59-
import org.graalvm.jniutils.JNIMethodScope;
60-
import org.graalvm.nativeimage.Platform;
61-
import org.graalvm.nativeimage.Platforms;
62-
import org.graalvm.nativeimage.c.function.CEntryPoint;
63-
import org.graalvm.nativeimage.c.function.CEntryPoint.IsolateThreadContext;
64-
import org.graalvm.nativeimage.c.type.CTypeConversion;
65-
import org.graalvm.word.PointerBase;
66-
67-
import jdk.internal.misc.Unsafe;
68-
69-
import static jdk.graal.compiler.serviceprovider.GraalServices.getCurrentThreadAllocatedBytes;
70-
import static jdk.graal.compiler.serviceprovider.GraalServices.isThreadAllocatedMemorySupported;
7173

7274
/**
7375
* Encapsulates {@link CEntryPoint} implementations.
@@ -185,7 +187,10 @@ private static long compileMethod(JNIEnv jniEnv,
185187
String profileLoadPath = CTypeConversion.toJavaString(Word.pointer(profilePathBufferAddress));
186188
options = new OptionValues(options, ProfileReplaySupport.Options.LoadProfiles, profileLoadPath);
187189
}
188-
task.runCompilation(options);
190+
HotSpotCompilationRequestResult compilationRequestResult = task.runCompilation(options);
191+
if (compilationRequestResult.getFailure() != null) {
192+
throw new GraalError(compilationRequestResult.getFailureMessage());
193+
}
189194
if (timeAndMemBufferAddress != 0) {
190195
long allocatedBytesAfter = allocatedBytesBefore == -1 ? -1 : getCurrentThreadAllocatedBytes();
191196
long bytesAllocated = allocatedBytesAfter - allocatedBytesBefore;

0 commit comments

Comments
 (0)