phi/mergemem transformations

Tom Rodriguez Thomas.Rodriguez at Sun.COM
Thu Oct 15 18:23:51 PDT 2009

On Oct 15, 2009, at 5:31 PM, John Rose wrote:

> It's actually this delta:
> D 1.174 00/06/19 00:47:54 jrose 434 431
> Phi nodes of type Memory now record their alias type also.
> Add factory methods PhiNode::make/make_blank/slice_memory.
> Teach PhiNode::Ideal to split phis through memory merges.
> Add manifest constants regarding Phi/Region layout.
> Add PhiNode::region() accessor, degrade_to_copy operation.
> Adjust PhiNode::Ideal logic to split Phis through MergeMems.
> Make CreateExNode::bottom_type be accurate.

I bow to your superior archaeology skills.  ;)

> I don't remember the problem, nor why it was "temporary".
> I suppose I ran into optimizer loops where a degenerate phi nest  
> could cause this split logic to repeat forever.
> Perhaps our eager dead code elimination makes this a thing of the  
> past.

That was my thinking as well.  I don't know how common it is for  
normal code but the late inlining work creates some different patterns  
that I would have expected to get cleaned up.  I'll look into relaxing  
this at a later point.  Thanks!


> -- John

More information about the hotspot-compiler-dev mailing list