<i18n dev> RFR: 8335252: Use ImmutableBitSetPredicate optimize j.u.Formatter.Conversion#isValid

Shaojin Wen duke at openjdk.org
Thu Jun 27 12:04:35 UTC 2024


Currently, the java.util.Formatter$Conversion::isValid method is implemented based on switch, which cannot be inlined because codeSize > 325. This problem can be avoided by implementing it with ImmutableBitSetPredicate.

use `-XX:+UnlockDiagnosticVMOptions -XX:+PrintInlining` to see the master branch:

@ 109   java.util.Formatter$Conversion::isValid (358 bytes)   failed to inline: hot method too big


current version

@ 109   java.util.Formatter$Conversion::isValid (10 bytes)   inline (hot)
  @ 4   jdk.internal.util.ImmutableBitSetPredicate$SmallImmutableBitSetPredicate::test (50 bytes)   inline (hot)

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

Commit messages:
 - use ImmutableBitSetPredicate optimize Formatter.Conversion#isValid

Changes: https://git.openjdk.org/jdk/pull/19926/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19926&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8335252
  Stats: 36 lines in 1 file changed: 12 ins; 0 del; 24 mod
  Patch: https://git.openjdk.org/jdk/pull/19926.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19926/head:pull/19926

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


More information about the i18n-dev mailing list