RFR(L): 8005071: Incremental inlining for JSR 292
Vladimir Kozlov
vladimir.kozlov at oracle.com
Fri Dec 21 07:39:23 PST 2012
On 12/21/12 5:46 AM, Roland Westrelin wrote:
>
> Hi Vladimir,
>
> Thanks for taking another look at this.
>
> I've applied all your suggestions but this one:
>
>> Also use phi->as_Phi()->is_diamond_phi() instead of region's inputs checks.
>
> I don't think that would work in every cases. Because one of the input is top, the CmpP, if it's ahead of the Region in the igvn's worklist, will go away and be replaced by top and then when the Region is processed, phi->as_Phi()->is_diamond_phi() won't return true.
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.
Also you are missing in(1)->in(0)->is_If() check if you can't use
is_diamond_phi().
Vladimir
>
> Roland.
>
More information about the hotspot-compiler-dev
mailing list