RFR(L): 8005071: Incremental inlining for JSR 292
roland.westrelin at oracle.com
Fri Dec 21 08:26:29 PST 2012
> 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.
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.
More information about the hotspot-compiler-dev