RFR: 8299847: RISC-V: Improve PrintOptoAssembly output of CMoveI/L nodes [v3]

Aleksey Shipilev shade at openjdk.org
Mon Jan 16 11:50:10 UTC 2023


On Fri, 13 Jan 2023 05:03:35 GMT, Fei Yang <fyang at openjdk.org> wrote:

>> Witnessed some incorrect/strange branch condition code in PrintOptoAssembly output on RISC-V which is quite misleading. While this won't affect release build, we should fix this for debug build. This also fixes the pipeline for those nodes and bumps the BRANCH_COST a little bit as I think control transfer instructions should have higher cost than regular integer computational instructions.
>> 
>> With this fix, we have some new PrintOptoAssembly output like following snippet:
>> 
>>    460 202     B41: #  out( B42 ) <- in( B40 )  Freq: 55.6844
>>    461 202 +   li R7, #0       # int, #@loadConI
>>    462 204 +   addiw  R28, R9, #1      #@addI_reg_imm
>>    463 208 +   li R29, #0      # int, #@loadConI
>>    464 20a +   CMove R28, (R28 lt R29), R28, R7        #@cmovI_cmpI      <=============
>> 
>> 
>> Testing: Tier1 tested on HiFive Unmatched board.
>
> Fei Yang has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix

Looks okay, but shouldn't CMove instructions be `pipe_class_compare`?

-------------

Marked as reviewed by shade (Reviewer).

PR: https://git.openjdk.org/jdk/pull/11919


More information about the hotspot-compiler-dev mailing list