Branch removal

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Sep 27 08:45:45 PDT 2012


Patrick Metzler wrote:
> Hi,
> 
> Again, I have a question about replacing Phi nodes with CMove nodes.  I 
> managed to do this for cases where I delete the corresponding Region; 
> but when I just replace a Phi with a CMove (without deleting the 
> Region), early schedule fails.

By delete you mean replace it with control edge of If node. Right? Also you 
can't delete it if there are other Phis attached to it.

Vladimir

> 
> I placed the replacement in PhaseIdealLoop::build_and_optimize() after 
> invocation of super word.  I also tried out to place it in 
> split_if_with_blocks_pre, as an alternative to conditional_move(), but 
> got also an 'early schedule failed'.  I used set_ctrl() as 
> conditional_move(), but have to admit that I didn't get the concept of 
> that.
> 
> I know early schedule fails because of a missing block selection at node 
> cmovP_reg.  How can I correct it?
> 
> I would appreciate your help, also a reference if there is no simple 
> answer.
> 
> Best regards,
> Patrick


More information about the hotspot-compiler-dev mailing list