--- old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/StandardGraphBuilderPlugins.java 2017-12-13 08:52:41.000000000 -0800 +++ new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/StandardGraphBuilderPlugins.java 2017-12-13 08:52:41.000000000 -0800 @@ -141,6 +141,7 @@ registerJMHBlackholePlugins(plugins, bytecodeProvider); registerJFRThrowablePlugins(plugins, bytecodeProvider); registerMethodHandleImplPlugins(plugins, snippetReflection, bytecodeProvider); + registerJcovCollectPlugins(plugins, bytecodeProvider); } private static final Field STRING_VALUE_FIELD; @@ -910,4 +911,21 @@ } }); } + + /** + * Registers a plugin to ignore {@code com.sun.tdk.jcov.runtime.Collect.hit} within an + * intrinsic. + */ + private static void registerJcovCollectPlugins(InvocationPlugins plugins, BytecodeProvider bytecodeProvider) { + Registration r = new Registration(plugins, "com.sun.tdk.jcov.runtime.Collect", bytecodeProvider); + r.register1("hit", int.class, new InvocationPlugin() { + @Override + public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode object) { + if (b.parsingIntrinsic()) { + return true; + } + return false; + } + }); + } }