Request for reviews (S): 7097546: Optimize use of CMOVE instructions

Christian Thalinger christian.thalinger at oracle.com
Fri Nov 4 03:35:15 PDT 2011


On Oct 22, 2011, at 1:23 AM, Vladimir Kozlov wrote:

> http://cr.openjdk.java.net/~kvn/7097546/webrev
> 
> 7097546: Optimize use of CMOVE instructions
> 
> Avoid CMove in a loop if possible. May generate CMove if it could be moved outside a loop. Don't generated CMoveD/CmoveF: it is expensive to compute both float/double values + cmove. Note, on x86 when SSE>=2 (all modern cpus) CMoveD/CMoveF mach instructions are implemented as jmp+move. Don't generated CMove when BlockLayoutByFrequency optimization moves infrequent branch from hot path. Added Cmove mach instructions with jmp+move to x86 when there is no HW cmove instruction.
> 
> Main part of changes in loopopts.cpp is coding style correction.
> 
> Print size of compiled method and compilation time when PrintCompilation and PrintInlining are specified on command line. I thought first to print it with just PrintCompilation but it will double output.

I kind of missed this but could we print this only with Verbose or WizardMode?  It makes the output more difficult to read.

-- Chris

> 
> No effect on refworkload but it will help later for 6890673 fix. Verified with microbenchmark I wrote (attached to the bug report).
> 
> Thanks,
> Vladimir



More information about the hotspot-compiler-dev mailing list