Branch removal
Vladimir Kozlov
vladimir.kozlov at oracle.com
Fri Sep 28 11:01:25 PDT 2012
Add flags -XX:+PrintCompilation -XX:+PrintInlining (and may be
-XX:-TieredCompilation to look only on C2 compilations). Could be one of inlined
method has loop. The graph could be also complicated if it is OSR compilation
(there is % next to compilation number in PrintCompilation output).
Vladimir
Patrick Metzler wrote:
> 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