Request reviews (S): 6896370: CTW fails share/vm/opto/matcher.cpp:1475 "duplicating node that's already been matched"
Vladimir Kozlov
Vladimir.Kozlov at Sun.COM
Wed Nov 4 12:45:40 PST 2009
Tom Rodriguez wrote:
>
> 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"
>>
> I like this. Which ones were missing? There's also an oddity that
LoadUB, LoadUI2L, LoadPLocked, LoadLLocked and all LoadStore nodes.
> !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
Yes, I did it intentionally since all Store[P|I|L]Conditional and
CompareAndSwap nodes have general memory with all address modes.
> 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.
I disagree, according to x86 documents cas uses general memory:
CMPXCHG r/m32,r32 - Compare EAX with r/m32. If equal, ZF is set and r32 is
loaded into r/m32. Else, clear ZF and load r/m32 into AL
Vladimir
>
> tom
>
>>
>> Reviewed by:
>>
>> Fix verified (y/n): y, test
>>
>> Other testing:
>> JPRT, CTW
>>
>
More information about the hotspot-compiler-dev
mailing list