Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use HewlettPackard/kraal to prevent "Non-reducible loop"
Use Kraal to prevent GraalVM native-image from failing with "Non-reducible loop". oracle/graal#366 https://github.com/HewlettPackard/kraal Without Kraal, here is the native-image's stacktrace: Error: Non-reducible loop Call path from entry point to pullpitok.AppKt$main$1.invokeSuspend(Object): at pullpitok.AppKt$main$1.invokeSuspend(App.kt) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:32) at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:285) at java.lang.Shutdown.runHooks(Shutdown.java:123) at java.lang.Shutdown.sequence(Shutdown.java:167) at java.lang.Shutdown.shutdown(Shutdown.java:234) at com.oracle.svm.core.jdk.RuntimeSupport.shutdown(RuntimeSupport.java:181) at com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:177) at com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(generated:0) Original exception that caused the problem: org.graalvm.compiler.core.common.PermanentBailoutException: Non-reducible loop at org.graalvm.compiler.java.BciBlockMapping.computeBlockOrder(BciBlockMapping.java:882) at org.graalvm.compiler.java.BciBlockMapping.build(BciBlockMapping.java:527) at org.graalvm.compiler.java.BciBlockMapping.create(BciBlockMapping.java:1109) at org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:806) at org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:784) at org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:95) at org.graalvm.compiler.phases.Phase.run(Phase.java:49) at org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:197) at org.graalvm.compiler.phases.Phase.apply(Phase.java:42) at org.graalvm.compiler.phases.Phase.apply(Phase.java:38) at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:205) at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:324) at com.oracle.graal.pointsto.flow.MethodTypeFlow.doParse(MethodTypeFlow.java:310) at com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureParsed(MethodTypeFlow.java:300) at com.oracle.graal.pointsto.flow.MethodTypeFlow.addContext(MethodTypeFlow.java:107) at com.oracle.graal.pointsto.flow.SpecialInvokeTypeFlow.onObservedUpdate(InvokeTypeFlow.java:421) at com.oracle.graal.pointsto.flow.TypeFlow.notifyObservers(TypeFlow.java:347) at com.oracle.graal.pointsto.flow.TypeFlow.update(TypeFlow.java:389) at com.oracle.graal.pointsto.BigBang$2.run(BigBang.java:508) at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:174) at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
- Loading branch information