# HG changeset patch # User dlong # Date 1559089036 25200 # Tue May 28 17:17:16 2019 -0700 # Node ID 3ad1729e00b0e3898c2d0e40a371163fbe9258cc # Parent 812212323fb174709d4ae8dd149e0b0efc53b253 8224931: disable JAOTC invokedynamic support until 8223533 is fixed diff --git a/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Main.java b/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Main.java --- a/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Main.java +++ b/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Main.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -55,6 +55,7 @@ import org.graalvm.compiler.hotspot.meta.HotSpotInvokeDynamicPlugin; import org.graalvm.compiler.java.GraphBuilderPhase; import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration; +import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext; import org.graalvm.compiler.options.OptionValues; import org.graalvm.compiler.phases.BasePhase; import org.graalvm.compiler.phases.PhaseSuite; @@ -194,7 +195,16 @@ AOTDynamicTypeStore dynoStore = new AOTDynamicTypeStore(); AOTCompiledClass.setDynamicTypeStore(dynoStore); - AOTBackend aotBackend = new AOTBackend(this, graalOptions, backend, new HotSpotInvokeDynamicPlugin(dynoStore)); + // AOTBackend aotBackend = new AOTBackend(this, graalOptions, backend, new HotSpotInvokeDynamicPlugin(dynoStore)); + // Temporary workaround until JDK-8223533 is fixed. + // Disable invokedynamic support. + var indyPlugin = new HotSpotInvokeDynamicPlugin(dynoStore) { + @Override + public boolean supportsDynamicInvoke(GraphBuilderContext builder, int index, int opcode) { + return false; + } + }; + AOTBackend aotBackend = new AOTBackend(this, graalOptions, backend, indyPlugin); SnippetReflectionProvider snippetReflection = aotBackend.getProviders().getSnippetReflection(); AOTCompiler compiler = new AOTCompiler(this, graalOptions, aotBackend, options.threads); classes = compiler.compileClasses(classes);