RFR: 8174961: [JVMCI] incorrect implementation of isCompilable
doug.simon at oracle.com
Tue Feb 14 20:59:07 UTC 2017
> On 14 Feb 2017, at 21:47, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
> Should you also remove flag check in previous lines in the test?:
> boolean isCompilable = CompilerToVMHelper.isCompilable(method);
> boolean expected = UseJVMCICompiler || WB.isMethodCompilable(aMethod);
Yes, you’re right - webrev is updated with this change. Thanks for catching this oversight!
> On 2/14/17 12:40 PM, Doug Simon wrote:
>>> On 14 Feb 2017, at 21:28, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>>> I did not get the condition. Why a method is *compilable* if JVMCICompiler is not used? Should it be
>>> UseJVMCICompiler && !method->is_not_compilable(
>>> Then comment is wrong. Please, explain.
>> If UseJVMCICompiler is false, then JVMCI is not being used by the VM as a jit but is only being used in hosted mode (e.g. by Truffle). The thinking was that hosted clients do not typically care about VM policies effecting the compilability of a method (e.g. whether it has a breakpoint etc). However, now that I reflect on this further, such clients should ignore this call altogether as they may be in a VM environment where both hosted and non-hosted compilations are being requested of JVMCI. With that in mind, I’ve updated the webrev to remove all mention and use of UseJVMCICompiler.
>>> On 2/14/17 12:11 PM, Doug Simon wrote:
>>>> Please review this fix for a rather embarrassing bug I committed as part of JDK-8172733.
More information about the hotspot-compiler-dev