[vector-unstable] Miscellaneous cleanups in hotspot
Viswanathan, Sandhya
sandhya.viswanathan at intel.com
Thu Jul 23 17:21:53 UTC 2020
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