[vector-unstable] Miscellaneous cleanups in hotspot
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Thu Jul 23 22:13:59 UTC 2020
Thanks, pushed both patches.
Some more minor cleanups in vector-unstable:
http://cr.openjdk.java.net/~vlivanov/panama/vector-unstable/cleanup.02/webrev.00/
Will push them separately.
Best regards,
Vladimir Ivanov
On 23.07.2020 20:21, Viswanathan, Sandhya wrote:
> Hi Vladimir,
>
> Please go ahead and push the cleanup patch on vector-unstable.
>
> Yes, I did see the failure on vectorIntrinsics branch and it started coming up intermittently after the late inline of virtual call support was added. Taking it up separately sounds good. Your proposed patch below for it does fix the issue.
>
> Best Regards,
> Sandhya
>
>
> -----Original Message-----
> From: Vladimir Ivanov <vladimir.x.ivanov at oracle.com>
> Sent: Thursday, July 23, 2020 6:15 AM
> To: Viswanathan, Sandhya <sandhya.viswanathan at intel.com>; panama-dev <panama-dev at openjdk.java.net>
> Subject: Re: [vector-unstable] Miscellaneous cleanups in hotspot
>
> Thanks, Sandhya.
>
> I can't reproduce it with vector-unstable. I believe you applied the patch to vectorIntrinsics branch.
>
> I propose this patch to go into vector-unstable instead and then merge with vectorIntrinsics once it reaches jdk/jdk.
>
> Regarding the crash, my analysis is it's a bug in late inlining of virtual calls triggered by restoring lazy cleanup logic:
>
> diff --git a/src/hotspot/share/opto/compile.cpp
> b/src/hotspot/share/opto/compile.cpp
> --- a/src/hotspot/share/opto/compile.cpp
> +++ b/src/hotspot/share/opto/compile.cpp
> @@ -1887,7 +1887,7 @@
>
> print_method(PHASE_INCREMENTAL_INLINE_STEP, 3);
>
> - bool needs_cleanup = true;
> + bool needs_cleanup = do_cleanup() || over_inlining_cutoff();
>
> set_inlining_progress(false);
> set_do_cleanup(false);
>
> The following patch fixes the crash in vectorIntrinsics for me:
>
> diff --git a/src/hotspot/share/opto/compile.cpp
> b/src/hotspot/share/opto/compile.cpp
> --- a/src/hotspot/share/opto/compile.cpp
> +++ b/src/hotspot/share/opto/compile.cpp
> @@ -1918,6 +1918,8 @@
> for_igvn()->clear();
> initial_gvn()->replace_with(&igvn);
>
> + _late_inlines_pos = _late_inlines.length();
> +
> while (inline_incrementally_virtual_one()) {
> assert(!failing(), "inconsistent");
> }
>
> I'll integrate it separately.
>
> Best regards,
> Vladimir Ivanov
>
> On 23.07.2020 03:12, Viswanathan, Sandhya wrote:
>> Hi Vladimir,
>>
>> Your changes look good.
>>
>> One more fix is needed in compile.cpp:
>> --- a/src/hotspot/share/opto/compile.cpp Thu Jul 16 11:19:07 2020 -0700
>> +++ b/src/hotspot/share/opto/compile.cpp Wed Jul 22 17:03:02 2020 -0700
>> @@ -1883,6 +1883,7 @@
>> _late_inlines.at_put(j, _late_inlines.at(i));
>> }
>> _late_inlines.trunc_to(j);
>> + _late_inlines_pos = j;
>> assert(inlining_progress() || _late_inlines.length() == 0, "");
>>
>> print_method(PHASE_INCREMENTAL_INLINE_STEP, 3);
>>
>> I am seeing occasion crashes at:
>> # Internal Error (src/hotspot/share/utilities/growableArray.hpp:384),
>> pid=32243, tid=32257 # assert(0 <= idx && idx <= this->_len) failed:
>> illegal index
>>
>> The call stack at crash:
>> V [libjvm.so+0x7a2654]
>> LateInlineCallGenerator::generate(JVMState*)+0x104
>> V [libjvm.so+0xa6aca0] Parse::do_call()+0x4d0 V
>> [libjvm.so+0x13b62bc] Parse::do_one_bytecode()+0x1ccc
>>
>> Best Regards,
>> Sandhya
>>
>> -----Original Message-----
>> From: panama-dev <panama-dev-retn at openjdk.java.net> On Behalf Of
>> Vladimir Ivanov
>> Sent: Wednesday, July 22, 2020 2:18 PM
>> To: panama-dev <panama-dev at openjdk.java.net>
>> Subject: [vector-unstable] Miscellaneous cleanups in hotspot
>>
>> http://cr.openjdk.java.net/~vlivanov/panama/vector-unstable/cleanup.01
>> /webrev.00/
>>
>> One more round of miscellaneous cleanups in shared code to minimize noise in the diff against mainline.
>>
>> Testing: test/jdk/jdk/incubator/vector/
>>
>> The patch is against vector-unstable branch.
>>
>> Best regards,
>> Vladimir Ivanov
>>
More information about the panama-dev
mailing list