RFR(L): 8005071: Incremental inlining for JSR 292

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Dec 21 08:37:52 PST 2012


On 12/21/12 8:26 AM, Roland Westrelin wrote:
>> But in such case nothing prevents this diamond-shape subgraph collapse into top before you will have a chance to process the Region. Can we detect that one of Cmp's inputs is Top early in StringOpts and replace Bool with 'false' as John suggested? Or in IfNode::Ideal detect and do this to prevent collapsing.
>
> It's true of the current code as well (without incremental inlining) so all RegionNode::try_clean_mem_phi() does is make sure what we have today works similarly. For the diamond-shape subgraph to collapse into top, the whole subgraph would need to be in the igvn worklist ahead of the Region which doesn't seem possible.

It is possible because of how UniqueNodeList works. It is not queue so 
nodes pushed on the list later could be processed early than older nodes.

What save us is it is a rare event since we have several nodes to 
processed for that to happened. So it needs to be fixed but not now, not 
in this changes. File bug explaining possible case so we will not forget 
about it.

>
> FWIW, I used to test for is_diamond_phi() in RegionNode::try_clean_mem_phi() and it worked fine. I didn't keep it to be extra safe.

OK. But add is_If() check as I asked.

Thanks,
Vladimir

>
> Roland.
>


More information about the hotspot-compiler-dev mailing list