RFR(S): 8243670: Unexpected test result caused by C2 MergeMemNode::Ideal

Yangfei (Felix) felix.yang at huawei.com
Thu May 7 13:42:20 UTC 2020


Hi Tobias,

> -----Original Message-----
> From: Tobias Hartmann [mailto:tobias.hartmann at oracle.com]
> Sent: Thursday, May 7, 2020 5:10 PM
> To: Yangfei (Felix) <felix.yang at huawei.com>; hotspot-compiler-
> dev at openjdk.java.net
> Subject: Re: RFR(S): 8243670: Unexpected test result caused by C2
> MergeMemNode::Ideal
> 
> Hi Felix,
> 
> were you able to figure out how we ended up with two Phis with same input
> but different _adr_type?

As I remembered, there are two major transformations which leads to this:

1. During Iter GVN1, a new phi is created with narrowed memory type through PhiNode::slice_memory.
    The new phi and the old phi have different _adr_type and different input.

2. Then C2 peel the first iteration of the given loop through PhaseIdealLoop::do_peeling.
    After that, the new phi and the old phi have same input but different _adr_type.

Hope this helps.

Thanks,
Felix


More information about the hotspot-compiler-dev mailing list