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

Vladimir Kozlov vladimir.kozlov at
Fri Oct 21 16:23:50 PDT 2011

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.

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


More information about the hotspot-compiler-dev mailing list