RFR: 8249893: AARCH64: optimize the construction of the value from the bits of the other two [v2]

Boris Ulasevich bulasevich at openjdk.java.net
Mon Oct 12 11:30:35 UTC 2020


> Let me revive the change request [3] to C2 and AArch64 that applies Bitfield Insert instruction in the expression "(v1
> & 0xFF) | ((v2 & 0xFF) << 8)".
>  
> Compared to the last round of review [2] I updated the transformation to apply BFI in more cases and added a jtreg test.
> 
> As before, compared to the original patch [1], the transformation logic is now in the common C2 code: a new
> BitfieldInsert node has been introduced to replace Or+Shift+And sequence when possible, on AARCH a single BFI
> instruction is emitted for the new node.
>  
> [1] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-July/039161.html
> [2] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-August/039653.html
> [3] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-August/039792.html

Boris Ulasevich has updated the pull request incrementally with one additional commit since the last revision:

  BitfieldInsert microbenchmark added to show the preformance improvement

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/511/files
  - new: https://git.openjdk.java.net/jdk/pull/511/files/8a4c6a90..42b81afc

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=511&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=511&range=00-01

  Stats: 94 lines in 1 file changed: 94 ins; 0 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/511.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/511/head:pull/511

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


More information about the hotspot-compiler-dev mailing list