This patch exposes a couple of intrinsics used by String to speed up ASCII 
checking and byte[] -> char[] inflation, which can be used by latin1 and 
ASCII-compatible CharsetDecoders to speed up decoding operations.

- Fast-path implemented for all standard charsets, with up to 10x performance 
improvements in microbenchmarks reading Strings from ByteArrayInputStream. 
- Cleanup of StreamDecoder/-Encoder with some minor improvements when 
interpreting
- Reworked creation of JavaLangAccess to be safely published for 
CharsetDecoders/-Encoders used for setting up System.out/in. As JLA and these 
encoders are created during System.initPhase1 the current sequence caused the 
initialization to became unstable and a few tests were consistently getting an 
NPE.

Testing: tier1-3

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

Commit messages:
 - Safer publication of JavaLangAccess
 - Logic error
 - Move creation of JavaLangAccess up before creating System.in/out
 - Fix typo (caught by Test4625418.java)
 - Merge branch 'master' into streamdecoder
 - Let decoders use String intrinsics to inflate ASCII-only bytes
 - Remove trailing spaces
 - Add microbenchmark
 - Simplify and improve StreamDecoder/-Encoder

Changes: https://git.openjdk.java.net/jdk/pull/2574/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2574&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8261744
  Stats: 706 lines in 13 files changed: 300 ins; 107 del; 299 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2574.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2574/head:pull/2574

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

Reply via email to