RFR(L): 8005071: Incremental inlining for JSR 292
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
> 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.
More information about the hotspot-compiler-dev