comparison src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp @ 22295:d86b226e331a

Enable derived oop processing by the GC with JVMCI
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Tue, 21 Jul 2015 15:00:07 -0700
parents 7848fc12602b
children c28cb37b2e1d
comparison
equal deleted inserted replaced
22274:b6d504612b3f 22295:d86b226e331a
1066 1066
1067 Threads::gc_epilogue(); 1067 Threads::gc_epilogue();
1068 CodeCache::gc_epilogue(); 1068 CodeCache::gc_epilogue();
1069 JvmtiExport::gc_epilogue(); 1069 JvmtiExport::gc_epilogue();
1070 1070
1071 COMPILER2_PRESENT(DerivedPointerTable::update_pointers()); 1071 #if defined(COMPILER2) || defined(JVMCI)
1072 DerivedPointerTable::update_pointers();
1073 #endif
1072 1074
1073 ref_processor()->enqueue_discovered_references(NULL); 1075 ref_processor()->enqueue_discovered_references(NULL);
1074 1076
1075 if (ZapUnusedHeapArea) { 1077 if (ZapUnusedHeapArea) {
1076 heap->gen_mangle_unused_area(); 1078 heap->gen_mangle_unused_area();
2066 size_policy->major_collection_begin(); 2068 size_policy->major_collection_begin();
2067 2069
2068 CodeCache::gc_prologue(); 2070 CodeCache::gc_prologue();
2069 Threads::gc_prologue(); 2071 Threads::gc_prologue();
2070 2072
2071 COMPILER2_PRESENT(DerivedPointerTable::clear()); 2073 #if defined(COMPILER2) || defined(JVMCI)
2074 DerivedPointerTable::clear();
2075 #endif
2072 2076
2073 ref_processor()->enable_discovery(true /*verify_disabled*/, true /*verify_no_refs*/); 2077 ref_processor()->enable_discovery(true /*verify_disabled*/, true /*verify_no_refs*/);
2074 ref_processor()->setup_policy(maximum_heap_compaction); 2078 ref_processor()->setup_policy(maximum_heap_compaction);
2075 2079
2076 bool marked_for_unloading = false; 2080 bool marked_for_unloading = false;
2080 2084
2081 bool max_on_system_gc = UseMaximumCompactionOnSystemGC 2085 bool max_on_system_gc = UseMaximumCompactionOnSystemGC
2082 && gc_cause == GCCause::_java_lang_system_gc; 2086 && gc_cause == GCCause::_java_lang_system_gc;
2083 summary_phase(vmthread_cm, maximum_heap_compaction || max_on_system_gc); 2087 summary_phase(vmthread_cm, maximum_heap_compaction || max_on_system_gc);
2084 2088
2085 COMPILER2_PRESENT(assert(DerivedPointerTable::is_active(), "Sanity")); 2089 #if defined(COMPILER2) || defined(JVMCI)
2086 COMPILER2_PRESENT(DerivedPointerTable::set_active(false)); 2090 assert(DerivedPointerTable::is_active(), "Sanity");
2091 DerivedPointerTable::set_active(false);
2092 #endif
2087 2093
2088 // adjust_roots() updates Universe::_intArrayKlassObj which is 2094 // adjust_roots() updates Universe::_intArrayKlassObj which is
2089 // needed by the compaction for filling holes in the dense prefix. 2095 // needed by the compaction for filling holes in the dense prefix.
2090 adjust_roots(); 2096 adjust_roots();
2091 2097