To take optimal advantage of the pre-existing optimization for repeated filters 
we could split the application of different types of stringifiers.

The resulting difference in order of evaluation is not observable by 
conventional means since all reference type share the same object stringifier, 
and the others are filtering primitives (floats and doubles) which have been 
passed by value already. 

This change neutral on many concatenation expression shapes, but for any 
complex expressions with interleaving float/double and reference parameters it 
brings a straightforward reduction in rebinds and underlying LFs generated. For 
example on the 
[MixedStringCombinations.java](https://gist.github.com/cl4es/08fb581dece3a73e89bfa52337bc4248)
 test there's a modest 2% reduction in total classes loaded with this change 
(from 16209 to 15872)

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

Commit messages:
 - StringConcatFactory: Split application of stringifiers

Changes: https://git.openjdk.java.net/jdk/pull/9082/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=9082&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8288011
  Stats: 27 lines in 1 file changed: 16 ins; 3 del; 8 mod
  Patch: https://git.openjdk.java.net/jdk/pull/9082.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/9082/head:pull/9082

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

Reply via email to