Request for reviews (S): 6711117: Assertion in 64bit server vm (flat != TypePtr::BOTTOM,"cannot alias-analyze an untyped ptr")
Vladimir Kozlov
Vladimir.Kozlov at Sun.COM
Tue Apr 7 15:50:41 PDT 2009
Thank you, Tom
I forgot to add the test case into my webrev.
It is unmodified java test from the bug report so
you don't need to review it.
The only trick with it I have to add -XX:+IgnoreUnrecognizedVMOptions
option since it uses -XX:+UseCompressedOops option.
I updated the same webrev.02
http://cr.openjdk.java.net/~kvn/6711117/webrev.02
Thanks,
Vladimir
Tom Rodriguez wrote:
> Looks good.
>
> tom
>
> On Apr 7, 2009, at 3:04 PM, Vladimir Kozlov wrote:
>
>> I replaced type(base)->higher_equal(TypePtr::NOTNULL)
>> condition in LoadNode::Ideal() for EliminateAutoBox cases
>> with the assert::
>>
>> assert(!phase->type(base)->higher_equal(TypePtr::NULL_PTR),
>>
>> and added the check in LoadNode::Value()
>>
>> http://cr.openjdk.java.net/~kvn/6711117/webrev.02
>>
>> Vladimir
>>
>> Vladimir Kozlov wrote:
>>> http://cr.openjdk.java.net/~kvn/6711117/webrev.00
>>> Fixed 6711117: Assertion in 64bit server vm (flat !=
>>> TypePtr::BOTTOM,"cannot alias-analyze an untyped ptr")
>>> Problem:
>>> The assert is triggered by the eliminate AutoBox code which asks
>>> an alias type of "NULL+off" address type.
>>> It is caused by the memory node processing during IGVN before
>>> its control edge which checks the address's nullness is processed.
>>> Solution:
>>> Delay a memory node transformation if its control on IGVN worklist.
>>> Delay a memory node transformation if its address on IGVN worklist.
>>> Execute the eliminate AutoBox code only when the address is not NULL.
>>> Use replace_node() instead of subsume_node() during macro nodes
>>> expansion to put users of the old node on IGVN worklist.
>>> Reviewed by:
>>> Fix verified (y/n): y, bug test
>>> Other testing:
>>> JPRT
>
More information about the hotspot-compiler-dev
mailing list