Closed koutheir closed 3 years ago
Curiously, adding the flag -H:IncludeLLVMDebugInfo=3
to native-image
parameters produces the following errors:
...
>> <...>/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f25o.bc f25.bc
...
<...>/opt: f25.bc: error: input module is broken!
...
org.graalvm.compiler.debug.GraalError: LLVM optimization failed for com.oracle.svm.core.SubstrateUtil.dumpStacktrace(com.oracle.svm.core.log.Log, org.graalvm.word.Pointer, org.graalvm.nativeimage.c.function.CodePointer) (<...>/SVM-1613069241298/llvm/f25.bc): 1
Command: opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f25o.bc f25.bc
at com.oracle.svm.core.graal.llvm.LLVMNativeImageCodeCache.llvmOptimize(LLVMNativeImageCodeCache.java:242)
at com.oracle.svm.core.graal.llvm.LLVMNativeImageCodeCache.lambda$compileBitcodeBatches$5(LLVMNativeImageCodeCache.java:180)
at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:173)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
I'm not sure if this error is related, though. The file f25.ll.txt is attached.
@koutheir This is an issue with IncludeLLVMDebugInfo
and not linked to the original issue, which I have found and for which have a fix on the way.
Environment
21.0.0
EE
.11.0.10+8
.11
(bullseye) with Linux kernel version5.10.0
.amd64
.10.0.0
(tagllvmorg-10.0.0
) with allnative-image
patches applied. LLVM/Clang is built in release mode with debugging symbols, and with assertions enabled.java -Xinternalversion
:Issue
LLVM
opt
reports the following assertion failure when invoked bynative-image
:This issue is consistently reproducible.
Full invocation
The full invocation of
native-image
is below:Simple Java application
The Java application being built is the following:
LLVM-IR causing the assertion failure
Disassembling
f41.bc
usingllvm-dis
produces the following contents:Preliminary investigation
Preliminary investigation of the issue shows that the assertion fails while processing the following instruction in the basic block
B27
:And in particular, the type of the instruction operand
{ i8 addrspace(2)*, i1 } %96
causes the assertion to fail: