Branch removal

Patrick Metzler Patrick.Metzler at gmx.net
Fri Sep 28 05:09:46 PDT 2012


Hi Vladimir,

On 09/27/2012 09:04 PM, Vladimir Kozlov wrote:
 > I think the best solution for you is to modify the java code:
 >
 > aSwap = a.getCopy();
 > for (E e : arrayList) {
 >    aSwap.do();
 >    if (e.condition())
 >      a = aSwap;
 >    aSwap = a.getCopy();
 > }

I changed the source code like above and adapted my transformation. It 
seems to work now, but I still need to test whether the result of the 
algorithm is correct.

It would be interesting to know why a loop with only one back edge in 
bytecode gets two back edges in IDEAL directly after parsing and how 
common/uncommon this is. Maybe I'll investigate this further, but for 
now I'll stick with the working (non-general) solution.

Thanks again for your advise.

Best regards,
Patrick


More information about the hotspot-compiler-dev mailing list