RFR: 8278114: New addnode ideal optimization: converting "x + x" into "x << 1" [v9]

Yi Yang yyang at openjdk.java.net
Thu Dec 23 12:55:10 UTC 2021


On Sun, 19 Dec 2021 20:28:07 GMT, Zhiqiang Zang <duke at openjdk.java.net> wrote:

>> A new ideal optimization can be introduced for addnode: converting "x + x" into "x << 1".
>> 
>> 
>> // Convert "x + x" into "x << 1"
>> if (in1 == in2) {
>>   return new LShiftINode(in1, phase->intcon(1));
>> }
>
> Zhiqiang Zang has updated the pull request incrementally with three additional commits since the last revision:
> 
>  - refactor the ir test.
>  - rename tests.
>  - use compiler mode blackhole in microbenchmark to prevent function calling from dominating time.

More thought: To see what GCC-O2 does for the same code, if GCC does such transformation, I think it's also acceptable for C2.

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

PR: https://git.openjdk.java.net/jdk/pull/6675


More information about the hotspot-compiler-dev mailing list