RFR[16]: 8247681: Improve bootstrapping of unary concatenations
Claes Redestad
claes.redestad at oracle.com
Tue Jun 16 13:20:47 UTC 2020
On 2020-06-16 15:09, Jim Laskey wrote:
> Would it be helpful to have benchmarks for the other types, just in case?
I'm not sure.. We need to be selective or we end up increasing expected
run time by a large factor. We should also do a pass over most of these
micros to provide saner defaults (number of forks, warmup times, run
time etc are generally tuned a bit too high and we can get reasonable
results on a smaller time budget)
>
> Don't see any tests to ensure all cases are covered. May be relying on existing tests, but... minimally tag those tests.
test/jdk/java/lang/String/concat/ImplicitStringConcatShapes.java tests
these unary shapes exhaustively. I'll add the bug number to that (and
the .template for it)
/Claes
>
> Cheers,
>
> -- Jim
>
>
>> On Jun 16, 2020, at 10:00 AM, Claes Redestad <claes.redestad at oracle.com> wrote:
>>
>> Hi,
>>
>> this patch specializes bootstrapping of unary concatenation expressions.
>>
>> Such expressions can be reduced to the canonical String.valueOf
>> "stringifier" for any primitive argument, but needs a special
>> stringifier for reference arguments since we need to produce a new
>> String to be compliant with JLS.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8247681
>> Webrev: http://cr.openjdk.java.net/~redestad/8247681/open.00/
>>
>> This ensures we get a similar speed-up as JDK-8247605 for
>> "" + fooString (and fooString + "").
>>
>> Also speeds up bootstrapping for all such simple unary concatenation
>> expressions.
>>
>> Testing: tier1+2
>>
>> Before:
>>
>> Benchmark (intValue) Mode Cnt Score Error Units
>> StringConcat.concatEmptyConstInt 4711 avgt 5 15.539 ± 0.831 ns/op
>> StringConcat.concatEmptyConstString 4711 avgt 5 17.046 ± 1.047 ns/op
>> StringConcat.concatEmptyLeft 4711 avgt 5 7.506 ± 0.588 ns/op
>> StringConcat.concatEmptyRight 4711 avgt 5 7.890 ± 0.314 ns/op
>>
>> After:
>> Benchmark (intValue) Mode Cnt Score Error Units
>> StringConcat.concatEmptyConstInt 4711 avgt 5 15.410 ± 0.944 ns/op
>> StringConcat.concatEmptyConstString 4711 avgt 5 7.397 ± 0.384 ns/op
>> StringConcat.concatEmptyLeft 4711 avgt 5 7.465 ± 0.328 ns/op
>> StringConcat.concatEmptyRight 4711 avgt 5 7.857 ± 0.355 ns/op
>>
>> Thanks!
>>
>> /Claes
>
More information about the core-libs-dev
mailing list