RFR: 8051725: Improve expansion of Conv2B nodes in the middle-end [v3]
Jasmine Karthikeyan
jkarthikeyan at openjdk.org
Tue Apr 25 02:51:29 UTC 2023
On Fri, 21 Apr 2023 00:38:32 GMT, Fei Yang <fyang at openjdk.org> wrote:
>> Jasmine Karthikeyan has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Remove Conv2B from backend as it's macro expanded now
>
> Hello, I wonder if we could make this transformation of Conv2B conditional? Architectures like RISC-V doesn't have support of conditional moves at the ISA level for now. So we set ConditionalMoveLimit parameter to 0 for this platform and conditionals moves are emulated with normal compare and branch instructions instead [1]. I don't think we would achieve better performance numbers on this platform with this change.
>
> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/riscv/riscv.ad#L9583
Hey @RealFYang, thanks for this info! I wasn't aware that RISC-V didn't have conditional moves, and I agree that it doesn't sound like this transform would be so profitable there. To make the transformation conditional I've moved it to post loop opts IGVN, and only run it if the match rule for `Conv2B` isn't found. In an effort to not accidentally cause performance regressions, I've limited the transform to x86_64, aarch64, and arm32.
@merykitty I've also implemented your change with idealization and would like your thoughts on it, thanks!
I'll attach aarch64 perf results soon.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/13345#issuecomment-1521085079
More information about the hotspot-compiler-dev
mailing list