RFR(L): 8024070: C2 needs some form of type speculation
roland.westrelin at oracle.com
Fri Sep 6 00:55:15 PDT 2013
> Can you try an other experiment (may be you did it already)? Always (under flag) generate klass check (type_check_receiver()) when unique type from profiling is more precise than type from static analysis. Yes, we may get performance regression in cases where more precise type is not needed. We need to test it and see how bad it is.
This change in itself doesn't bring any performance improvement. It's here so that if we add more profiling points (8023657) we know what to do with the data from profiling. Type speculation + extra profiling show a perf improvement on nashorn (10-20% on some benchmarks with the nashorn.jar from jdk b105). To me the experiment that makes sense it to enable profiling from 8023657, do the type checks at the profiling points systematically and see what impact we see on perf. I did that with type checks on entry to the root method of the compilation for incoming arguments and at returns from calls that were not inlined and I had a clear regression on specjvm98. I don't remember the exact numbers. I can run the experiment again.
More information about the hotspot-compiler-dev