Details
Description
In StringConcatFactory, we optimized the number of possible shapes by a large factor by consolidating prependers to a single shape which takes possibly null prefix and suffix constants. The bootstrap overheads of this could be optimized further by caching variants where the null values are pre-inserted, which reduce work in a common setup step:
http://cr.openjdk.java.net/~redestad/scratch/scf_cache_null_prependers.00/
This indicated a speed-up on certain stress tests, without affecting the total number of shapes / classes generated. The PoC patch adds a few anonymous classes which marginally regress first-off bootstrap, but creation of these could probably be made lazy with a little work.
http://cr.openjdk.java.net/~redestad/scratch/scf_cache_null_prependers.00/
This indicated a speed-up on certain stress tests, without affecting the total number of shapes / classes generated. The PoC patch adds a few anonymous classes which marginally regress first-off bootstrap, but creation of these could probably be made lazy with a little work.