RFR: 8342393: Promote commutative vector IR node sharing [v19]

Jatin Bhateja jbhateja at openjdk.org
Tue Jan 28 08:19:31 UTC 2025


> Patch promotes the sharing of commutative vector IR with the same inputs but different input ordering.
> Similar to scalar IR where we perform edge swapping by [sorting inputs](https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/addnode.cpp#L122) based on node indices during IR idealization.
> 
> Following are the performance stats for JMH micro included with the patch.
> 
> 
> Granite Rapids (P-core Xeon Server)
> Baseline : 
> Benchmark                                                                (size)   Mode  Cnt      Score   Error   Units
> VectorCommutativeOperSharingBenchmark.commutativeByteOperationShairing     1024  thrpt    2   8982.549          ops/ms
> VectorCommutativeOperSharingBenchmark.commutativeIntOperationShairing      1024  thrpt    2   6072.773          ops/ms
> VectorCommutativeOperSharingBenchmark.commutativeLongOperationShairing     1024  thrpt    2   2368.856          ops/ms
> VectorCommutativeOperSharingBenchmark.commutativeShortOperationShairing    1024  thrpt    2  15215.087          ops/ms
> 
> Withopt:
> Benchmark                                                                (size)   Mode  Cnt      Score   Error   Units
> VectorCommutativeOperSharingBenchmark.commutativeByteOperationShairing     1024  thrpt    2  11963.554          ops/ms
> VectorCommutativeOperSharingBenchmark.commutativeIntOperationShairing      1024  thrpt    2   7036.088          ops/ms
> VectorCommutativeOperSharingBenchmark.commutativeLongOperationShairing     1024  thrpt    2   2906.731          ops/ms
> VectorCommutativeOperSharingBenchmark.commutativeShortOperationShairing    1024  thrpt    2  17148.131          ops/ms
> 
> Sierra Forest (E-core Xeon Server)
> Baseline:
> Benchmark                                                                (size)   Mode  Cnt     Score   Error   Units
> VectorCommutativeOperSharingBenchmark.commutativeByteOperationShairing     1024  thrpt    2  2444.359          ops/ms
> VectorCommutativeOperSharingBenchmark.commutativeIntOperationShairing      1024  thrpt    2  1710.256          ops/ms
> VectorCommutativeOperSharingBenchmark.commutativeLongOperationShairing     1024  thrpt    2   308.766          ops/ms
> VectorCommutativeOperSharingBenchmark.commutativeShortOperationShairing    1024  thrpt    2  3902.179          ops/ms
> 
> Withopt:
> Benchmark                                                                (size)   Mode  Cnt     Score   Error   Units
> VectorCommutativeOperSharingBenchmark.commutativeByteOperationShairing     1024  thrpt    2  3352.839    ...

Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:

  Adding missed feature check

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/22863/files
  - new: https://git.openjdk.org/jdk/pull/22863/files/4a88fd68..8f457ba4

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=22863&range=18
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=22863&range=17-18

  Stats: 2 lines in 1 file changed: 1 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/22863.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/22863/head:pull/22863

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


More information about the hotspot-compiler-dev mailing list