RFR[S] 8209545 Simplify HeapShared::archive_module_graph_objects
Ioi Lam
ioi.lam at oracle.com
Wed Aug 15 18:48:47 UTC 2018
https://bugs.openjdk.java.net/browse/JDK-8209545
http://cr.openjdk.java.net/~iklam/jdk12/8209545_cleanup_archive_module_graph_objects.v01/
With this cleanup, HeapShared::archive_module_graph_objects is driven by
a simple table like the following.
To archive new static fields, now you can just modify Java code, and
make a single
edit in the C code.
The keyword here is "you should know what you're doing" :-)
// If you add new entries to this table, you should know what you're
doing!
static ArchivableStaticFieldInfo archivable_static_fields[] = {
{"jdk/internal/module/ArchivedModuleGraph", "archivedSystemModules"},
{"jdk/internal/module/ArchivedModuleGraph", "archivedModuleFinder"},
{"jdk/internal/module/ArchivedModuleGraph", "archivedMainModule"},
{"jdk/internal/module/ArchivedModuleGraph", "archivedConfiguration"},
{"java/util/ImmutableCollections$ListN", "EMPTY_LIST"},
{"java/util/ImmutableCollections$MapN", "EMPTY_MAP"},
{"java/util/ImmutableCollections$SetN", "EMPTY_SET"},
{"java/lang/Integer$IntegerCache", "archivedCache"},
{"java/lang/module/Configuration", "EMPTY_CONFIGURATION"},
};
I was able to removed a bunch of boilerplate code in javaClasses, as
well as some
unused stuff in vmSymbols and systemDictionary.
Testing with hs tiers 1/2
Thanks
- Ioi
More information about the hotspot-runtime-dev
mailing list