Request reviews (S): 6896370: CTW fails share/vm/opto/matcher.cpp:1475 "duplicating node that's already been matched"
Tom Rodriguez
Thomas.Rodriguez at Sun.COM
Wed Nov 4 12:04:14 PST 2009
On Nov 4, 2009, at 10:43 AM, Vladimir Kozlov wrote:
>
> http://cr.openjdk.java.net/~kvn/6896370/webrev.00
>
> Fixed 6896370: CTW fails share/vm/opto/matcher.cpp:1475 "duplicating
> node that's already been matched"
>
> Problem:
> It is compressed oops related.
> LoadN node is not marked as shared since the method
> Matcher::find_shared() misses the case of address phi
> which has AddP nodes as input (after split through phi).
> As result the special code for DecodeN in address
> expressions is not executed.
>
> Solution:
> Move DecodeN code outside the memory nodes only code.
> I also noticed that several new memory nodes are missing
> from the switch's cases in find_shared(). Instead of
> adding them I replaced cases with common code for
> stores and loads at the end of the switch.
I like this. Which ones were missing? There's also an oddity that !
is_Store() && is_Mem() != is_Load() so you're now treating LoadStore
nodes as loads and mem_ops and they weren't previously. Was that
intentional? Calling set_shared on LoadStoreNodes is probably benign
but triggering the clone_shift_expressions logic for them probably
isn't. Most cas style instructions don't support full address modes
so any cloning would be useless.
tom
>
> Reviewed by:
>
> Fix verified (y/n): y, test
>
> Other testing:
> JPRT, CTW
>
More information about the hotspot-compiler-dev
mailing list