The bespoke caching scheme in `jl.invoke.LambdaFormEditor.TransformKey` allows keys to be compacted when all byte values of the key fit in 4 bits, otherwise a byte array is allocated and used. This means that all transforms with a kind value above 15 will be forced to allocate and use array comparisons.
Removing unused and folding some transforms to ensure all existing kinds can fit snugly within the 0-15 value range realize a minor improvement to footprint, speed and allocation pressure of affected transforms, e.g. ~300bytes/op reduction in the `StringConcatFactoryBootstraps` microbenchmark: Baseline: Benchmark Mode Cnt Score Error Units SCFB.makeConcatWithConstants avgt 15 2048.475 ? 69.887 ns/op SCFB.makeConcatWithConstants:?gc.alloc.rate.norm avgt 15 3487.311 ? 80.385 B/op Patched: Benchmark Mode Cnt Score Error Units SCFB.makeConcatWithConstants avgt 15 1961.985 ? 101.519 ns/op SCFB.makeConcatWithConstants:?gc.alloc.rate.norm avgt 15 3156.478 ? 183.600 B/op ------------- Commit messages: - Revert unrelated and unverified hashCode change - Improve TransformKey to pack more kinds of transforms efficiently Changes: https://git.openjdk.java.net/jdk/pull/8881/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=8881&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8287292 Stats: 44 lines in 1 file changed: 21 ins; 10 del; 13 mod Patch: https://git.openjdk.java.net/jdk/pull/8881.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/8881/head:pull/8881 PR: https://git.openjdk.java.net/jdk/pull/8881