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