Branch removal (original) (raw)

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::buildandoptimize() after invocation of super word. I also tried out to place it in splitifwithblockspre, as an alternative to conditionalmove(), but got also an 'early schedule failed'. I used setctrl() as conditionalmove(), 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 cmovPreg. 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