RFR(S): 8235762: JVM crash in SWPointer during C2 compilation
Yangfei (Felix)
felix.yang at huawei.com
Wed Dec 11 15:11:42 UTC 2019
Hi Christian,
Thanks for the suggestions. Comments inlined.
> -----Original Message-----
> From: Christian Hagedorn [mailto:christian.hagedorn at oracle.com]
> Sent: Wednesday, December 11, 2019 10:54 PM
> To: Yangfei (Felix) <felix.yang at huawei.com>; Tobias Hartmann
> <tobias.hartmann at oracle.com>; hotspot-compiler-dev at openjdk.java.net
> Subject: Re: RFR(S): 8235762: JVM crash in SWPointer during C2 compilation
>
> Hi Felix
>
> Thanks for working on that. Your fix also seems to work for JDK-8235700.
> I closed that one as a duplicate of yours.
>
> >>> + for (int i = 0; i < orig_msize; i++) {
>
> Should be uint since orig_msize is a uint
-- Yes, will modify accordingly when I am preparing webrev.
>
> >>> + best_align_to_mem_ref = find_align_to_ref(memops,
> >> max_idx);
> >>> + assert(best_align_to_mem_ref == NULL, "sanity");
>
> You can merge these two lines together into assert(find_align_to_ref(memops,
> max_idx) == NULL, "sanity"); since the call belongs to the sanity check. Or just
> surround it by a #ifdef ASSERT.
-- The purpose of line 721 here is to calculate the max_idx.
So I don't think it's suitable to treat this line as assertion logic.
> >>> + idx = max_idx;
>
> Is max_idx always guaranteed to be valid and not -1 when accessing it later?
-- Yes, I think so.
When memops is not empty and the memory ops in memops are not comparable, find_align_to_ref will always sets its max_idx.
Thanks,
Felix
More information about the hotspot-compiler-dev
mailing list