[10] RFR(S): 8188785: CCP sets invalid type for java mirror load

Tobias Hartmann tobias.hartmann at oracle.com
Tue Oct 24 16:51:56 UTC 2017


Hi Vladimir,

On 24.10.2017 18:43, Vladimir Kozlov wrote:
> Okay, you are right, lets use this version for the fix. We can do additional changes for 8189856.

Okay, thanks for reviewing! I'll push webrev.02.

Best regards,
Tobias
>>> Also can you remove ut->isa_instptr() check in *both* cases. And use u->is_Mem() instead of u->Opcode() == Op_LoadP 
>>> to cover stores too.
>>> The motivation is that original LoadP is raw as result memory operations which use it may look for more precise type 
>>> of the field somewhere so they should be on worklist.
>>
>> Why is that necessary? If the raw LoadP changes its type, all direct users will be added to the worklist anyway.
>>
>> The problem in the failing case is that the type of the AddP changed but the type of the raw LoadP didn't (it stays 
>> raw). However, the InstPtr load depends on the type of the AddP:
>>
>>    InstPtrLoadP(RawLoadP(AddP(..)))
>>
>> Do you expect other memory users of the raw LoadP to depend on the type of the AddP? I think we should only add 
>> handling for known special cases but here's the corresponding webrev:
>> http://cr.openjdk.java.net/~thartmann/8188785/webrev.03/
>>
>> Thanks,
>> Tobias


More information about the hotspot-compiler-dev mailing list