--- old/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp 2018-06-20 11:50:06.856140141 +0200 +++ new/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp 2018-06-20 11:50:06.632140149 +0200 @@ -2467,7 +2467,7 @@ } void -ConcurrentMarkSweepGeneration::oop_iterate(ExtendedOopClosure* cl) { +ConcurrentMarkSweepGeneration::oop_iterate(OopIterateClosure* cl) { if (freelistLock()->owned_by_self()) { Generation::oop_iterate(cl); } else { @@ -3305,7 +3305,7 @@ pst->all_tasks_completed(); } -class ParConcMarkingClosure: public MetadataAwareOopClosure { +class ParConcMarkingClosure: public MetadataVisitingOopIterateClosure { private: CMSCollector* _collector; CMSConcMarkingTask* _task; @@ -3318,7 +3318,7 @@ public: ParConcMarkingClosure(CMSCollector* collector, CMSConcMarkingTask* task, OopTaskQueue* work_queue, CMSBitMap* bit_map, CMSMarkStack* overflow_stack): - MetadataAwareOopClosure(collector->ref_processor()), + MetadataVisitingOopIterateClosure(collector->ref_processor()), _collector(collector), _task(task), _span(collector->_span), @@ -3338,7 +3338,7 @@ } }; -DO_OOP_WORK_IMPL(ParConcMarkingClosure) +DO_OOP_WORK_NV_IMPL(ParConcMarkingClosure) // Grey object scanning during work stealing phase -- // the salient assumption here is that any references @@ -3382,9 +3382,6 @@ } } -void ParConcMarkingClosure::do_oop(oop* p) { ParConcMarkingClosure::do_oop_work(p); } -void ParConcMarkingClosure::do_oop(narrowOop* p) { ParConcMarkingClosure::do_oop_work(p); } - void ParConcMarkingClosure::trim_queue(size_t max) { while (_work_queue->size() > max) { oop new_oop; @@ -4065,9 +4062,9 @@ } class PrecleanCLDClosure : public CLDClosure { - MetadataAwareOopsInGenClosure* _cm_closure; + MetadataVisitingOopsInGenClosure* _cm_closure; public: - PrecleanCLDClosure(MetadataAwareOopsInGenClosure* oop_closure) : _cm_closure(oop_closure) {} + PrecleanCLDClosure(MetadataVisitingOopsInGenClosure* oop_closure) : _cm_closure(oop_closure) {} void do_cld(ClassLoaderData* cld) { if (cld->has_accumulated_modified_oops()) { cld->clear_accumulated_modified_oops(); @@ -4429,7 +4426,7 @@ ResourceMark rm; GrowableArray* array = ClassLoaderDataGraph::new_clds(); for (int i = 0; i < array->length(); i++) { - par_mrias_cl.do_cld_nv(array->at(i)); + Devirtualizer::do_cld(&par_mrias_cl, array->at(i)); } // We don't need to keep track of new CLDs anymore. @@ -4970,7 +4967,7 @@ ResourceMark rm; GrowableArray* array = ClassLoaderDataGraph::new_clds(); for (int i = 0; i < array->length(); i++) { - mrias_cl.do_cld_nv(array->at(i)); + Devirtualizer::do_cld(&mrias_cl, array->at(i)); } // We don't need to keep track of new CLDs anymore. @@ -5803,9 +5800,6 @@ } } -void MarkRefsIntoClosure::do_oop(oop* p) { MarkRefsIntoClosure::do_oop_work(p); } -void MarkRefsIntoClosure::do_oop(narrowOop* p) { MarkRefsIntoClosure::do_oop_work(p); } - ParMarkRefsIntoClosure::ParMarkRefsIntoClosure( MemRegion span, CMSBitMap* bitMap): _span(span), @@ -5825,9 +5819,6 @@ } } -void ParMarkRefsIntoClosure::do_oop(oop* p) { ParMarkRefsIntoClosure::do_oop_work(p); } -void ParMarkRefsIntoClosure::do_oop(narrowOop* p) { ParMarkRefsIntoClosure::do_oop_work(p); } - // A variant of the above, used for CMS marking verification. MarkRefsIntoVerifyClosure::MarkRefsIntoVerifyClosure( MemRegion span, CMSBitMap* verification_bm, CMSBitMap* cms_bm): @@ -5856,9 +5847,6 @@ } } -void MarkRefsIntoVerifyClosure::do_oop(oop* p) { MarkRefsIntoVerifyClosure::do_oop_work(p); } -void MarkRefsIntoVerifyClosure::do_oop(narrowOop* p) { MarkRefsIntoVerifyClosure::do_oop_work(p); } - ////////////////////////////////////////////////// // MarkRefsIntoAndScanClosure ////////////////////////////////////////////////// @@ -5933,9 +5921,6 @@ } } -void MarkRefsIntoAndScanClosure::do_oop(oop* p) { MarkRefsIntoAndScanClosure::do_oop_work(p); } -void MarkRefsIntoAndScanClosure::do_oop(narrowOop* p) { MarkRefsIntoAndScanClosure::do_oop_work(p); } - void MarkRefsIntoAndScanClosure::do_yield_work() { assert(ConcurrentMarkSweepThread::cms_thread_has_cms_token(), "CMS thread should hold CMS token"); @@ -6016,9 +6001,6 @@ } } -void ParMarkRefsIntoAndScanClosure::do_oop(oop* p) { ParMarkRefsIntoAndScanClosure::do_oop_work(p); } -void ParMarkRefsIntoAndScanClosure::do_oop(narrowOop* p) { ParMarkRefsIntoAndScanClosure::do_oop_work(p); } - // This closure is used to rescan the marked objects on the dirty cards // in the mod union table and the card table proper. size_t ScanMarkedObjectsAgainCarefullyClosure::do_object_careful_m( @@ -6597,7 +6579,7 @@ CMSCollector* collector, MemRegion span, CMSBitMap* verification_bm, CMSBitMap* cms_bm, CMSMarkStack* mark_stack): - MetadataAwareOopClosure(collector->ref_processor()), + MetadataVisitingOopIterateClosure(collector->ref_processor()), _collector(collector), _span(span), _verification_bm(verification_bm), @@ -6654,7 +6636,7 @@ MemRegion span, CMSBitMap* bitMap, CMSMarkStack* markStack, HeapWord* finger, MarkFromRootsClosure* parent) : - MetadataAwareOopClosure(collector->ref_processor()), + MetadataVisitingOopIterateClosure(collector->ref_processor()), _collector(collector), _span(span), _bitMap(bitMap), @@ -6671,7 +6653,7 @@ HeapWord* finger, HeapWord* volatile* global_finger_addr, ParMarkFromRootsClosure* parent) : - MetadataAwareOopClosure(collector->ref_processor()), + MetadataVisitingOopIterateClosure(collector->ref_processor()), _collector(collector), _whole_span(collector->_span), _span(span), @@ -6752,9 +6734,6 @@ } } -void PushOrMarkClosure::do_oop(oop* p) { PushOrMarkClosure::do_oop_work(p); } -void PushOrMarkClosure::do_oop(narrowOop* p) { PushOrMarkClosure::do_oop_work(p); } - void ParPushOrMarkClosure::do_oop(oop obj) { // Ignore mark word because we are running concurrent with mutators. assert(oopDesc::is_oop_or_null(obj, true), "Expected an oop or NULL at " PTR_FORMAT, p2i(obj)); @@ -6801,9 +6780,6 @@ } } -void ParPushOrMarkClosure::do_oop(oop* p) { ParPushOrMarkClosure::do_oop_work(p); } -void ParPushOrMarkClosure::do_oop(narrowOop* p) { ParPushOrMarkClosure::do_oop_work(p); } - PushAndMarkClosure::PushAndMarkClosure(CMSCollector* collector, MemRegion span, ReferenceDiscoverer* rd, @@ -6811,7 +6787,7 @@ CMSBitMap* mod_union_table, CMSMarkStack* mark_stack, bool concurrent_precleaning): - MetadataAwareOopClosure(rd), + MetadataVisitingOopIterateClosure(rd), _collector(collector), _span(span), _bit_map(bit_map), @@ -6883,7 +6859,7 @@ ReferenceDiscoverer* rd, CMSBitMap* bit_map, OopTaskQueue* work_queue): - MetadataAwareOopClosure(rd), + MetadataVisitingOopIterateClosure(rd), _collector(collector), _span(span), _bit_map(bit_map), @@ -6892,9 +6868,6 @@ assert(ref_discoverer() != NULL, "ref_discoverer shouldn't be NULL"); } -void PushAndMarkClosure::do_oop(oop* p) { PushAndMarkClosure::do_oop_work(p); } -void PushAndMarkClosure::do_oop(narrowOop* p) { PushAndMarkClosure::do_oop_work(p); } - // Grey object rescan during second checkpoint phase -- // the parallel version. void ParPushAndMarkClosure::do_oop(oop obj) { @@ -6937,9 +6910,6 @@ } } -void ParPushAndMarkClosure::do_oop(oop* p) { ParPushAndMarkClosure::do_oop_work(p); } -void ParPushAndMarkClosure::do_oop(narrowOop* p) { ParPushAndMarkClosure::do_oop_work(p); } - void CMSPrecleanRefsYieldClosure::do_yield_work() { Mutex* bml = _collector->bitMapLock(); assert_lock_strong(bml); @@ -7606,9 +7576,6 @@ } } -void CMSKeepAliveClosure::do_oop(oop* p) { CMSKeepAliveClosure::do_oop_work(p); } -void CMSKeepAliveClosure::do_oop(narrowOop* p) { CMSKeepAliveClosure::do_oop_work(p); } - // CMSParKeepAliveClosure: a parallel version of the above. // The work queues are private to each closure (thread), // but (may be) available for stealing by other threads. @@ -7629,9 +7596,6 @@ } } -void CMSParKeepAliveClosure::do_oop(oop* p) { CMSParKeepAliveClosure::do_oop_work(p); } -void CMSParKeepAliveClosure::do_oop(narrowOop* p) { CMSParKeepAliveClosure::do_oop_work(p); } - void CMSParKeepAliveClosure::trim_queue(uint max) { while (_work_queue->size() > max) { oop new_oop; @@ -7677,9 +7641,6 @@ } } -void CMSInnerParMarkAndPushClosure::do_oop(oop* p) { CMSInnerParMarkAndPushClosure::do_oop_work(p); } -void CMSInnerParMarkAndPushClosure::do_oop(narrowOop* p) { CMSInnerParMarkAndPushClosure::do_oop_work(p); } - ////////////////////////////////////////////////////////////////// // CMSExpansionCause ///////////////////////////// //////////////////////////////////////////////////////////////////