8179302: Pre-resolve constant pool string entries and cache resolved_reference arrays in CDS archive

8185924: G1NoteEndOfConcMarkClosure::doHeapRegion() does not do remembered set cleanup work for archive region

Shared class' constant pool resolved_references array is cached.

Co-authored-by: Thomas Schatzl <thomas.schatzl@oracle.com>
Reviewed-by: coleenp, iklam, tschatzl
This commit is contained in:
Jiangli Zhou 2017-08-14 14:32:17 -04:00
parent 85fedbbb12
commit 4a77945c89
36 changed files with 931 additions and 418 deletions

View file

@ -31,6 +31,9 @@
#include "runtime/handles.inline.hpp"
#include "runtime/thread.inline.hpp"
#include "utilities/copy.hpp"
#if INCLUDE_ALL_GCS
#include "gc/g1/g1Allocator.inline.hpp"
#endif
bool always_do_update_barrier = false;
@ -138,3 +141,9 @@ bool oopDesc::has_klass_gap() {
// Only has a klass gap when compressed class pointers are used.
return UseCompressedClassPointers;
}
#if INCLUDE_CDS_JAVA_HEAP
bool oopDesc::is_archive_object(oop p) {
return (p == NULL) ? false : G1ArchiveAllocator::is_archive_object(p);
}
#endif