RFR: 8286972: Support the new loop induction variable related PopulateIndex IR node on x86

Vladimir Kozlov kvn at openjdk.java.net
Wed May 18 23:40:34 UTC 2022


On Wed, 18 May 2022 17:25:38 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:

> This PR adds x86 backend support for the new loop induction variable related PopulateIndex IR node. 
> This IR node was added as part of [JDK-8280510](https://bugs.openjdk.java.net/browse/JDK-8280510).
> 
> The performance numbers are as follows:
> Before:
> Benchmark                   (count)   Mode  Cnt       Score       Error  Units
> IndexVector.exprWithIndex1    65536  thrpt    3   64556.552 ±  1126.396  ops/s
> IndexVector.exprWithIndex2    65536  thrpt    3   22117.050 ± 11452.098  ops/s
> IndexVector.indexArrayFill    65536  thrpt    3  117776.383 ±  1120.957  ops/s
> 
> After:
> Benchmark                   (count)   Mode  Cnt       Score       Error  Units
> IndexVector.exprWithIndex1    65536  thrpt    3  203180.290 ±  2147.807  ops/s
> IndexVector.exprWithIndex2    65536  thrpt    3  274132.756 ±  6853.393  ops/s
> IndexVector.indexArrayFill    65536  thrpt    3  374165.202 ± 46930.779  ops/s
> 
> Please review.
> 
> Best Regards,
> Sandhya

src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 2285:

> 2283:     assert((dst->encoding() < 16) && (src1->encoding() < 16) && (src2->encoding() < 16),
> 2284:            "XMM register should be 0-15");
> 2285:   }

This whole block could be under `#ifdef ASSERT`.

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

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


More information about the hotspot-compiler-dev mailing list