63 Commits

Author SHA1 Message Date
Coleen Phillimore
f8ab03fa04 8243503: InstanceKlass::_array_name is not needed and leaks
Decrement the refcount for all Klass in class unloading.

Reviewed-by: lfoltan, hseigel
2020-04-24 16:54:28 -04:00
Coleen Phillimore
90ada6a314 8238048: Close alignment gaps in InstanceKlass
Moved fields around and some constant fields into ConstantPool

Reviewed-by: cjplummer, dlong, iklam
2020-04-23 16:29:22 -04:00
Mandy Chung
7cc1371059 8238358: Implementation of JEP 371: Hidden Classes
Co-authored-by: Lois Foltan <lois.foltan@oracle.com>
Co-authored-by: David Holmes <david.holmes@oracle.com>
Co-authored-by: Harold Seigel <harold.seigel@oracle.com>
Co-authored-by: Serguei Spitsyn <serguei.spitsyn@oracle.com>
Co-authored-by: Alex Buckley <alex.buckley@oracle.com>
Co-authored-by: Jamsheed Mohammed C M <jamsheed.c.m@oracle.com>
Co-authored-by: Jan Lahoda <jan.lahoda@oracle.com>
Co-authored-by: Amy Lu <amy.lu@oracle.com>
Reviewed-by: alanb, cjplummer, coleenp, dholmes, dlong, forax, jlahoda, psandoz, plevart, sspitsyn, vromero
2020-04-21 06:55:38 -07:00
Yumin Qi
7b8c373494 8240204: Optimize package handling for archived classes
ClassLoader::add_package just sets classpath_index to PackageEntry, moved the code to InstanceKlass. Also avoid calling check_prohibited_package since CDS does not archive prohibited classe in set_package.

Reviewed-by: hseigel, lfoltan, redestad, iklam
2020-04-20 16:36:15 -07:00
Vladimir Ivanov
2ea157fee1 8227467: Better class method invocations
Reviewed-by: thartmann, dholmes, ahgross
2019-12-03 19:31:20 +03:00
Calvin Cheung
512644de06 8240205: Avoid PackageEntry lookup when loading shared classes
Do the PackageEntry lookup at one place and then pass it along to the subsequently called functions which need it.

Reviewed-by: redestad, lfoltan
2020-04-03 14:26:42 -07:00
Claes Redestad
23d6a788b4 8241371: Refactor and consolidate package_from_name
Reviewed-by: iklam, lfoltan
2020-03-23 23:18:42 +01:00
Calvin Cheung
9e2ab1e363 8232081: Try to link all classes during dynamic CDS dump
During CDS dynamic dump, link all classes loaded by the builtin class loaders in JVM_BeforeHalt() and JavaThread::invoke_shutdown_hooks().

Reviewed-by: iklam, dholmes
2020-03-06 15:33:13 -08:00
Ioi Lam
7ba18fc015 8240244: Avoid calling resolve_super_or_fail in SystemDictionary::load_shared_class
Reviewed-by: redestad, lfoltan, minqi
2020-03-04 22:26:48 -08:00
Calvin Cheung
5229896f4f 8240481: Remove CDS usage of InstanceKlass::is_in_error_state
Track the classes which fail verification during CDS dumping in DumpTimeSharedClassInfo.

Reviewed-by: iklam, minqi
2020-03-04 15:34:53 -08:00
Frederic Parain
9886cb401c 8237767: Field layout computation overhaul
Reviewed-by: dholmes, coleenp, lfoltan, shade
2020-02-10 09:49:12 -05:00
Coleen Phillimore
016b0f0caa 8232759: Remove GC.class_stats
Make the GC.class_stats option obsolete

Reviewed-by: dholmes, iklam
2020-01-09 17:38:41 -05:00
Claes Redestad
3cccc62e56 8234735: InstanceKlass:find_method_index regression after JDK-8231610
Reviewed-by: iklam, coleenp
2019-12-09 16:46:29 +01:00
Vicente Romero
827e5e3226 8225054: Compiler implementation for records
8225052: javax.lang.model support for records
8225053: Preview APIs support for records
8225055: Javadoc for records
8226314: com.sun.source support for records
8227113: Specification for java.lang.Record
8233526: JVM support for records

Implement records in the compiler and the JVM, including serialization, reflection and APIs support

Co-authored-by: Brian Goetz <brian.goetz@oracle.com>
Co-authored-by: Maurizio Cimadamore <maurizio.cimadamore@oracle.com>
Co-authored-by: Harold Seigel <harold.seigel@oracle.com>
Co-authored-by: Joe Darcy <joe.darcy@oracle.com>
Co-authored-by: Jonathan Gibbons <jonathan.gibbons@oracle.com>
Co-authored-by: Chris Hegarty <chris.hegarty@oracle.com>
Co-authored-by: Jan Lahoda <jan.lahoda@oracle.com>
Reviewed-by: mcimadamore, briangoetz, alanb, darcy, chegar, jrose, jlahoda, coleenp, dholmes, lfoltan, mchung, sadayapalam, hannesw, sspitsyn
2019-12-04 15:57:39 -05:00
Ioi Lam
5678f98a9e 8231610: Relocate the CDS archive if it cannot be mapped to the requested address
Reviewed-by: jiangli, coleenp, ccheung
2019-11-13 16:36:54 -08:00
Claes Redestad
88d28a2bf9 8232050: Improve inlining of Klass accessors
Reviewed-by: lfoltan, tschatzl, coleenp, dholmes, jiangli
2019-10-10 13:26:22 +02:00
Vladimir Ivanov
829c81bbf9 8225141: Better handling of classes in error state in fast class initialization checks
Reviewed-by: dlong, dholmes
2019-06-06 13:46:03 +03:00
Ioi Lam
22484b8c35 8221698: Remove redundant includes from popular header files
Removed histogram.hpp classLoader.hpp utf8.hpp moduleEntry.hpp packageEntry.hpp

Reviewed-by: coleenp, stuefe
2019-03-30 08:26:20 -07:00
Coleen Phillimore
351280bbb8 8078725: method adjustments can be done just once for all classes involved into redefinition
Walk all classes at the end of redefinition and adjust method entries and clean MethodData

Reviewed-by: sspitsyn
2019-02-22 13:56:08 -05:00
Ioi Lam
d06f3e7e28 8218751: Do not store original classfiles inside the CDS archive
Remove the OD shared region and decode classfiles on the fly

Reviewed-by: jiangli, ccheung, sspitsyn, redestad
2019-02-21 17:07:35 -08:00
Coleen Phillimore
154a1a02bf 8216167: Update include guards to reflect correct directories
Use script and some manual fixup to fix directores names in include guards.

Reviewed-by: lfoltan, eosterlund, kbarrett
2019-01-10 15:13:51 -05:00
Jesper Wilhelmsson
67a5fc2529 Merge 2019-01-09 22:59:49 +01:00
Coleen Phillimore
cab9667f41 8215575: C2 crash: assert(get_instanceKlass()->is_loaded()) failed: must be at least loaded
Set InstanceKlass::loaded before adding classes to the subklass list, which can be read concurrently by the compiler.

Reviewed-by: dholmes, eosterlund
2019-01-09 07:52:45 -05:00
Claes Redestad
13fcbf9d8f 8216189: Remove Klass::compute_is_subtype_of
Reviewed-by: hseigel, jiangli
2019-01-05 20:08:24 +01:00
Coleen Phillimore
1509c1ffe1 8215731: Move forward class definitions out of globalDefinitions.hpp
Redistribute the forward declarations to the header files that need them.

Reviewed-by: dholmes, lfoltan
2019-01-04 15:06:01 -05:00
Coleen Phillimore
3d0faa649c 8214972: Uses of klass_holder() except GC need to apply GC barriers
Fix klass_holder() and make all callers use it, remove holder_phantom().

Reviewed-by: eosterlund, dlong
2018-12-07 14:48:35 -05:00
Erik Österlund
50ffeaa507 8213209: [REDO] Allow Klass::_subklass and _next_sibling to have unloaded classes
Reviewed-by: coleenp, dlong
2018-11-30 15:29:19 +01:00
Erik Österlund
3a5bccf5c6 8213565: Crash in DependencyContext::remove_dependent_nmethod
Reviewed-by: rehn, kvn
2018-11-30 11:40:48 +01:00
Leo Korinth
d75f70d91c 8212595: Remove unused size_helper() in oop_oop_iterate* in instanceKlass.inline.hpp
Reviewed-by: shade, pliden
2018-10-18 11:23:54 +02:00
Leo Korinth
e898052f3b 8211447: Replace oop_pc_update_pointers with oop_iterate and closure
Reviewed-by: sjohanss, tschatzl
2018-10-12 12:14:01 +02:00
Leo Korinth
78fe66c3bb 8211446: Replace oop_pc_follow_contents with oop_iterate and closure
Reviewed-by: sjohanss, tschatzl
2018-10-12 12:13:06 +02:00
Leo Korinth
4bc903d17a 8201436: Replace oop_ps_push_contents with oop_iterate and closure
Reviewed-by: sjohanss, tschatzl
2018-10-12 12:10:34 +02:00
Harold Seigel
945623c998 8079784: Unexpected IllegalAccessError when trying access InnerClasses attribute
Prevent classes in the InnerClasses attribute from being loaded unless they are actually being accessed.

Reviewed-by: dholmes, lfoltan
2018-10-11 10:11:18 -04:00
Jiangli Zhou
061c4d7a81 8210926: vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/TestDescription.java failed with JVMTI_ERROR_INVALID_CLASS in CDS mode
Reset InstanceKlass _init_state to 'allocated' before writing out shared classes at dump time.

Reviewed-by: dholmes, coleenp
2018-10-01 00:52:37 -04:00
Coleen Phillimore
06a1ea846a 8210856: Move InstanceKlass DependencyContext cleaning to SystemDictionary::do_unloading()
Already walk classes in ClassLoaderData::unload so generalize to also clean nmethod dependencies.

Reviewed-by: eosterlund, dlong, vlivanov
2018-09-26 14:01:48 -04:00
Harold Seigel
18bbeb53e6 8210470: Remove unused Verifier::verify() Verifier::Mode argument
Remove the unused argument.

Reviewed-by: coleenp, jiangli
2018-09-11 09:53:41 -04:00
Lois Foltan
75ed173e15 8209301: JVM rename is_anonymous, host_klass to unsafe specific terminology ahead of Unsafe.defineAnonymousClass deprecation
Clean up VM anonymous class terminology.

Reviewed-by: coleenp, dholmes, mchung
2018-08-20 08:25:57 -04:00
Coleen Phillimore
d1aea148fe 8207924: serviceability/sa/TestUniverse.java#id0 intermittently fails with assert(get_instanceKlass()->is_loaded()) failed: must be at least loaded
InstanceKlass::implementors() needs the Compile_lock

Reviewed-by: thartmann, eosterlund
2018-08-11 12:49:33 -04:00
Coleen Phillimore
a7b66f6f5e 8208677: Move inner metaspace cleaning out of class unloading
Move to safepoint cleanup actions to do if needed.

Reviewed-by: eosterlund, hseigel
2018-08-08 15:24:21 -04:00
Ioi Lam
1b2e7cbaef 8208999: Some use of Klass* should be replaced by InstanceKlass*
Klass::java_super() => InstanceKlass*; InstanceKlass::{local,transitive}_interfaces() => Array<InstanceKlass*>*

Reviewed-by: coleenp, hseigel
2018-08-07 15:45:07 -07:00
Stefan Karlsson
11813888b8 8204540: Automatic oop closure devirtualization
Reviewed-by: kbarrett, eosterlund
2018-05-26 06:59:49 +02:00
Tom Rodriguez
0173db08e9 8198909: [Graal] compiler/codecache/stress/UnexpectedDeoptimizationTest.java crashed with SIGSEGV
Reviewed-by: eosterlund, iveresov
2018-06-24 21:46:11 -07:00
David Holmes
95bf19563b 8010319: Implementation of JEP 181: Nest-Based Access Control
Co-authored-by: Alex Buckley <alex.buckley@oracle.com>
Co-authored-by: Maurizio Mimadamore <maurizio.mimadamore@oracle.com>
Co-authored-by: Mandy Chung <mandy.chung@oracle.com>
Co-authored-by: Tobias Hartmann <tobias.hartmann@oracle.com>
Co-authored-by: Vlaidmir Ivanov <vladimir.x.ivanov@oracle.com>
Co-authored-by: Karen Kinnear <karen.kinnear@oracle.com>
Co-authored-by: Vladimir Kozlov <vladimir.kozlov@oracle.com>
Co-authored-by: John Rose <john.r.rose@oracle.com>
Co-authored-by: Daniel Smith <daniel.smith@oracle.com>
Co-authored-by: Serguei Spitsyn <serguei.spitsyn@oracle.com>
Co-authored-by: Kumar Srinivasan <kumardotsrinivasan@gmail.com>
Co-authored-by: Boris Ulasevich <boris.ulasevich@bell-sw.com>
Reviewed-by: alanb, psandoz, mchung, coleenp, acorn, mcimadamore, forax, jlahoda, sspitsyn, abuckley
2018-06-23 01:32:41 -04:00
Lois Foltan
425e1a8bb8 8202605: Standardize on ClassLoaderData::loader_name() throughout the VM to obtain a class loader's name
Introduced ClassLoaderData::name() and ClassLoaderData::name_and_id() for use when obtaining a class loader's name.

Reviewed-by: coleenp, goetz, mchung, stuefe
2018-06-19 07:54:11 -04:00
Ioi Lam
f9742fc0a6 8193332: MetaspaceShared::check_shared_class_loader_type is not used during archive creation
Reviewed-by: lfoltan, jiangli
2018-05-21 21:27:12 -07:00
Erik Gahlin
a060be188d 8199712: Flight Recorder
Co-authored-by: Markus Gronlund <markus.gronlund@oracle.com>
Reviewed-by: coleenp, ihse, erikj, dsamersoff, mseledtsov, egahlin, mgronlun
2018-05-15 20:24:34 +02:00
Stefan Karlsson
1cb95bd3d1 8200729: Conditional compilation of GCs
Reviewed-by: ehelin, coleenp, kvn, ihse
2018-05-04 11:41:35 +02:00
Coleen Phillimore
204ba9a580 8202447: Fix unloading_occurred to mean unloading_occurred
Nmethod unloading does not need to test for jvmti to set unloading_occurred, nor do we need to clean weak Klasses in metadata if unloading does not occur.

Reviewed-by: sspitsyn, rehn
2018-04-27 15:00:04 -04:00
Calvin Cheung
aedb6040c6 8200466: Revisit the setting of _transitive_interfaces in InstanceKlass
Delay the setting of _transitive_interfaces until after initialize_supers() in fill_instance_klass().

Reviewed-by: iklam, coleenp
2018-05-02 09:26:10 -07:00
Coleen Phillimore
c215aa5889 8201537: Remove is_alive closure from Klass::is_loader_alive()
Remove is_alive closure from callers of Klass::is_loader_alive so that cleaning metadata doesn't require GC closure.

Reviewed-by: adinn, stefank
2018-04-18 13:37:39 -04:00