This is preparation work for JDK-8293336 - Store LambdaForms in CDS archive heap
Some JVM_CONSTANT_Class entries are guaranteed to resolve to the same value at both CDS dump time and run time:
[1] Classes that are resolved during vmClasses::resolve_all(). These classes cannot be replaced by JVMTI agents at run time.
[2] Supertypes -- at run time, a class C can be loaded from the CDS archive only if all of C's super types are also loaded from the CDS archive. Therefore, we know that a JVM_CONSTANT_Class reference to a supertype of C must resolved to the same value at both CDS dump time and run time.
By doing the resolution at dump time, we can speed up run time start-up by a little bit.
Some JVM_CONSTANT_Class entries are guaranteed to resolve to the same value at both CDS dump time and run time:
[1] Classes that are resolved during vmClasses::resolve_all(). These classes cannot be replaced by JVMTI agents at run time.
[2] Supertypes -- at run time, a class C can be loaded from the CDS archive only if all of C's super types are also loaded from the CDS archive. Therefore, we know that a JVM_CONSTANT_Class reference to a supertype of C must resolved to the same value at both CDS dump time and run time.
By doing the resolution at dump time, we can speed up run time start-up by a little bit.
- relates to
-
JDK-8295936 x86_32 fails with -XX:+VerifyGraphEdges after JDK-8293979
- Closed
-
JDK-8293980 Resolve CONSTANT_FieldRef at CDS dump time
- Resolved
-
JDK-8295867 TestVerifyGraphEdges.java fails with exit code -1073741571 when using AlwaysIncrementalInline
- Resolved
-
JDK-8293336 AOT-linking of invokedynamic for lambda expression and string concat
- Closed
(1 links to)