RFR(M): 8007294: ReduceFieldZeroing doesn't check for dependent load and can lead to incorrect execution
Roland Westrelin
roland.westrelin at oracle.com
Fri Feb 22 05:30:06 PST 2013
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