RFR(M): 8007294: ReduceFieldZeroing doesn't check for dependent load and can lead to incorrect execution
Vladimir Kozlov
vladimir.kozlov at oracle.com
Fri Feb 22 08:50:13 PST 2013
Yes, you are right that uncast will point to the result projection of
allocation.
Vladimir
On 2/22/13 5:30 AM, Roland Westrelin wrote:
> Thanks for the comments, Vladimir.
>
>> I thought you will change code for string instrinsics. Either verify both inputs or conservatively always 'fail'.
>
> Yes, you're right. I'll change the code to always fail.
>
>> Use err_msg_res() to print base->Name():
>> assert(base->is_AddP(), "should be addp");
>
> Ok.
>
>> Also you can do additional simple check:
>>
>> if (other_adr == adr) {
>> failed = true;
>> break;
>> }
>
> Ok.
>
>>
>> Also there could be several checkcastsPP nodes, so may be use
>>
>> if (base != NULL && base->uncast()->in(0) == ctl) {
>
> Ok but then the test becomes:
>
> base = base->in(AddPNode::Base);
> if (base != NULL) {
> base = base->uncast();
> if (base->is_Proj() && base->in(0) == alloc) {
> failed = true;
> break;
> }
> }
> right?
>
> Roland.
>
More information about the hotspot-compiler-dev
mailing list