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

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Nov 4 08:51:02 PDT 2011


I poked around for flags and the only reasonable candidate is PrintCompilation2. I will see what I can do with it.

Vladimir

On 11/4/11 8:33 AM, Vladimir Kozlov wrote:
> I want this info in product VM also but Verbose and WizardMode are debug flags. You can use 1 compiler thread to get
> more linear output.
>
> Vladimir
>
> On 11/4/11 3:35 AM, Christian Thalinger wrote:
>>
>> 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