RFR (12) JDK-8218025: disable pop_frame and force_early_return caps for Graal

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Thu Jan 31 05:31:39 UTC 2019


On 1/30/19 21:24, David Holmes wrote:
> On 31/01/2019 3:18 pm, dean.long at oracle.com wrote:
>> On 1/30/19 8:59 PM, serguei.spitsyn at oracle.com wrote:
>>> So, the fix needs to be more like this:
>>> + // Workaround for 8195635:
>>> + // disable pop_frame and force_early_return capabilities with Graal
>>> + #if INCLUDE_JVMCI
>>> + if (!(EnableJVMCI && UseJVMCICompiler)) {
>>>     jc.can_pop_frame = 1;
>>>     jc.can_force_early_return = 1;
>>> + } + #endif Not sure, if the check for EnableJVMCI can be removed 
>>> above.
>>
>> We still need it to work when INCLUDE_JVMCI is not defined.
>> How about
>>
>> JVMCI_ONLY(if (UseJVMCICompiler)) {
>> ...
>> }
>>
>> or
>>
>> if (JVMCI_ONLY(UseJVMCICompiler) NOT_JVMCI(true)) {
>> ...
>> }
>
> Or just turn them on unconditionally first and turn off explicitly for 
> JVMCI:
>
>  jc.can_pop_frame = 1;
>  jc.can_force_early_return = 1;
> + #if INCLUDE_JVMCI
> +  // Workaround for 8195635:
> +  // disable pop_frame and force_early_return capabilities with Graal
> + if (EnableJVMCI && UseJVMCICompiler) {
> +     jc.can_pop_frame = 0;
> +     jc.can_force_early_return = 0;
> + }
> + #endif
>
Oh, Dean is right.
We need these caps initialized even if the macro INCLUDE_JVMCI is undefined.
Then I like variant from David above.

Thanks,
Serguei


> David
>
>> dl
>>



More information about the serviceability-dev mailing list