RFR 8038418 New tests development for type profiling and speculation
Pavel Punegov
pavel.punegov at oracle.com
Mon Apr 7 23:27:50 UTC 2014
Hi,
please review the change with new tests for type profiling and speculation.
Bug: https://bugs.openjdk.java.net/browse/JDK-8038418
webrev: http://cr.openjdk.java.net/~iignatyev/ppunegov/8038418/webrev.00/
Description:
New tests developed to cover new type profiling points and type speculation.
They try to exercise new type profiling points usage for type speculation used for:
1. checkcast, instanceof, aastore
2. receiver at invokes
3. System.arraycopy()
4. Class.isInstance()
5. patterns of the form: if (a.getClass() == D.class)
The new type profiling points are:
1. reference parameters on method entries
2. reference arguments at an invoke
3. return values of reference types from an invoke
To do that tests use 3 forms of execution:
* profiling executes tests with one type to make compiler be able to gather profiling data and compile/inline test methods,
* conflicting executes tests with different types that cause profile conflict
* MethodHandles invocation of test methods using two previous scenarios as executors.
There are certain class(type) hierarchies used to test compiler ability to correctly resolve guards for types in a compiled code.
Scenarios are a subject of compiler optimizations done with a type speculation usage. They contain test code and checks executed by Execution scenario.
Test cases is a multiplication of Execution * Scenario * TypeHierarchy.
--
Thanks,
Pavel Punegov
More information about the hotspot-compiler-dev
mailing list