Understanding PrintAssembly output

Dmitry Samersoff Dmitry.Samersoff at oracle.com
Wed Dec 7 21:41:01 PST 2011


C2 compiler use various methods of optimization of generated code,
particularity - it unrolls loops when possible.


On 2011-12-08 03:56, Manohar Jonnalagedda wrote:
> Hello all,
> I was just wondering whether you would have some pointers on how to
> understand the x86 assembly code output by the PrintAssembly flag? My
> question is specifically oriented towards understanding of loops and
> branching instructions. In the output that I get, I have many
> instructions as follows:
> B14 : # info about B14
> cmpl R10, R10
> jg,s B24
> I understand that the above will never go to B24, as the test will
> always be equal. However, by doing such an analysis, I find that there
> the CFG for a given method is much smaller than the overall size of the
> compiled method. Also, some of the branches in this "non-reachable"
> portion of the assembler code contains /inner main loops/ whose /pre
> loops/ are in the reachable portion. How do I actually go about
> understanding such output?
> Thanks a lot,
> Manohar

Dmitry Samersoff
Java Hotspot development team, SPB04
* There will come soft rains ...

More information about the hotspot-dev mailing list