8267185: Add string deduplication support to ParallelGC

Reviewed-by: kbarrett, ayang
This commit is contained in:
Ivan Walulya 2021-08-20 11:30:00 +00:00
parent d874e9616f
commit fb1dfc6f49
17 changed files with 182 additions and 1 deletions

View file

@ -26,6 +26,7 @@
#define SHARE_GC_PARALLEL_PSCOMPACTIONMANAGER_HPP
#include "gc/parallel/psParallelCompact.hpp"
#include "gc/shared/stringdedup/stringDedup.hpp"
#include "gc/shared/taskqueue.hpp"
#include "gc/shared/taskTerminator.hpp"
#include "memory/allocation.hpp"
@ -88,6 +89,8 @@ class ParCompactionManager : public CHeapObj<mtGC> {
oop _last_query_obj;
size_t _last_query_ret;
StringDedup::Requests _string_dedup_requests;
static PSOldGen* old_gen() { return _old_gen; }
static ObjectStartArray* start_array() { return _start_array; }
static OopTaskQueueSet* oop_task_queues() { return _oop_task_queues; }
@ -125,6 +128,10 @@ class ParCompactionManager : public CHeapObj<mtGC> {
_last_query_ret = 0;
}
void flush_string_dedup_requests() {
_string_dedup_requests.flush();
}
// Bitmap query support, cache last query and result
HeapWord* last_query_begin() { return _last_query_beg; }
oop last_query_object() { return _last_query_obj; }
@ -136,6 +143,8 @@ class ParCompactionManager : public CHeapObj<mtGC> {
static void reset_all_bitmap_query_caches();
static void flush_all_string_dedup_requests();
RegionTaskQueue* region_stack() { return &_region_stack; }
static ParCompactionManager* get_vmthread_cm() { return _manager_array[ParallelGCThreads]; }