Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp @ 10179:a08c80e9e1e5
8012687: Remove unused is_root checks and closures
Reviewed-by: tschatzl, jmasa
author | stefank |
---|---|
date | Mon, 22 Apr 2013 20:27:36 +0200 |
parents | 7b835924c31c |
children | 868d87ed63c8 |
comparison
equal
deleted
inserted
replaced
10178:d391427ddc29 | 10179:a08c80e9e1e5 |
---|---|
785 bool PSParallelCompact::IsAliveClosure::do_object_b(oop p) { return mark_bitmap()->is_marked(p); } | 785 bool PSParallelCompact::IsAliveClosure::do_object_b(oop p) { return mark_bitmap()->is_marked(p); } |
786 | 786 |
787 void PSParallelCompact::KeepAliveClosure::do_oop(oop* p) { PSParallelCompact::KeepAliveClosure::do_oop_work(p); } | 787 void PSParallelCompact::KeepAliveClosure::do_oop(oop* p) { PSParallelCompact::KeepAliveClosure::do_oop_work(p); } |
788 void PSParallelCompact::KeepAliveClosure::do_oop(narrowOop* p) { PSParallelCompact::KeepAliveClosure::do_oop_work(p); } | 788 void PSParallelCompact::KeepAliveClosure::do_oop(narrowOop* p) { PSParallelCompact::KeepAliveClosure::do_oop_work(p); } |
789 | 789 |
790 PSParallelCompact::AdjustPointerClosure PSParallelCompact::_adjust_root_pointer_closure(true); | 790 PSParallelCompact::AdjustPointerClosure PSParallelCompact::_adjust_pointer_closure; |
791 PSParallelCompact::AdjustPointerClosure PSParallelCompact::_adjust_pointer_closure(false); | |
792 PSParallelCompact::AdjustKlassClosure PSParallelCompact::_adjust_klass_closure; | 791 PSParallelCompact::AdjustKlassClosure PSParallelCompact::_adjust_klass_closure; |
793 | 792 |
794 void PSParallelCompact::AdjustPointerClosure::do_oop(oop* p) { adjust_pointer(p, _is_root); } | 793 void PSParallelCompact::AdjustPointerClosure::do_oop(oop* p) { adjust_pointer(p); } |
795 void PSParallelCompact::AdjustPointerClosure::do_oop(narrowOop* p) { adjust_pointer(p, _is_root); } | 794 void PSParallelCompact::AdjustPointerClosure::do_oop(narrowOop* p) { adjust_pointer(p); } |
796 | 795 |
797 void PSParallelCompact::FollowStackClosure::do_void() { _compaction_manager->follow_marking_stacks(); } | 796 void PSParallelCompact::FollowStackClosure::do_void() { _compaction_manager->follow_marking_stacks(); } |
798 | 797 |
799 void PSParallelCompact::MarkAndPushClosure::do_oop(oop* p) { | 798 void PSParallelCompact::MarkAndPushClosure::do_oop(oop* p) { |
800 mark_and_push(_compaction_manager, p); | 799 mark_and_push(_compaction_manager, p); |
803 | 802 |
804 void PSParallelCompact::FollowKlassClosure::do_klass(Klass* klass) { | 803 void PSParallelCompact::FollowKlassClosure::do_klass(Klass* klass) { |
805 klass->oops_do(_mark_and_push_closure); | 804 klass->oops_do(_mark_and_push_closure); |
806 } | 805 } |
807 void PSParallelCompact::AdjustKlassClosure::do_klass(Klass* klass) { | 806 void PSParallelCompact::AdjustKlassClosure::do_klass(Klass* klass) { |
808 klass->oops_do(&PSParallelCompact::_adjust_root_pointer_closure); | 807 klass->oops_do(&PSParallelCompact::_adjust_pointer_closure); |
809 } | 808 } |
810 | 809 |
811 void PSParallelCompact::post_initialize() { | 810 void PSParallelCompact::post_initialize() { |
812 ParallelScavengeHeap* heap = gc_heap(); | 811 ParallelScavengeHeap* heap = gc_heap(); |
813 assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity"); | 812 assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity"); |
2396 cld->oops_do(&mark_and_push_closure, &follow_klass_closure, true); | 2395 cld->oops_do(&mark_and_push_closure, &follow_klass_closure, true); |
2397 } | 2396 } |
2398 | 2397 |
2399 void PSParallelCompact::adjust_class_loader(ParCompactionManager* cm, | 2398 void PSParallelCompact::adjust_class_loader(ParCompactionManager* cm, |
2400 ClassLoaderData* cld) { | 2399 ClassLoaderData* cld) { |
2401 cld->oops_do(PSParallelCompact::adjust_root_pointer_closure(), | 2400 cld->oops_do(PSParallelCompact::adjust_pointer_closure(), |
2402 PSParallelCompact::adjust_klass_closure(), | 2401 PSParallelCompact::adjust_klass_closure(), |
2403 true); | 2402 true); |
2404 } | 2403 } |
2405 | 2404 |
2406 // This should be moved to the shared markSweep code! | 2405 // This should be moved to the shared markSweep code! |
2417 | 2416 |
2418 // Need new claim bits when tracing through and adjusting pointers. | 2417 // Need new claim bits when tracing through and adjusting pointers. |
2419 ClassLoaderDataGraph::clear_claimed_marks(); | 2418 ClassLoaderDataGraph::clear_claimed_marks(); |
2420 | 2419 |
2421 // General strong roots. | 2420 // General strong roots. |
2422 Universe::oops_do(adjust_root_pointer_closure()); | 2421 Universe::oops_do(adjust_pointer_closure()); |
2423 JNIHandles::oops_do(adjust_root_pointer_closure()); // Global (strong) JNI handles | 2422 JNIHandles::oops_do(adjust_pointer_closure()); // Global (strong) JNI handles |
2424 CLDToOopClosure adjust_from_cld(adjust_root_pointer_closure()); | 2423 CLDToOopClosure adjust_from_cld(adjust_pointer_closure()); |
2425 Threads::oops_do(adjust_root_pointer_closure(), &adjust_from_cld, NULL); | 2424 Threads::oops_do(adjust_pointer_closure(), &adjust_from_cld, NULL); |
2426 ObjectSynchronizer::oops_do(adjust_root_pointer_closure()); | 2425 ObjectSynchronizer::oops_do(adjust_pointer_closure()); |
2427 FlatProfiler::oops_do(adjust_root_pointer_closure()); | 2426 FlatProfiler::oops_do(adjust_pointer_closure()); |
2428 Management::oops_do(adjust_root_pointer_closure()); | 2427 Management::oops_do(adjust_pointer_closure()); |
2429 JvmtiExport::oops_do(adjust_root_pointer_closure()); | 2428 JvmtiExport::oops_do(adjust_pointer_closure()); |
2430 // SO_AllClasses | 2429 // SO_AllClasses |
2431 SystemDictionary::oops_do(adjust_root_pointer_closure()); | 2430 SystemDictionary::oops_do(adjust_pointer_closure()); |
2432 ClassLoaderDataGraph::oops_do(adjust_root_pointer_closure(), adjust_klass_closure(), true); | 2431 ClassLoaderDataGraph::oops_do(adjust_pointer_closure(), adjust_klass_closure(), true); |
2433 | 2432 |
2434 // Now adjust pointers in remaining weak roots. (All of which should | 2433 // Now adjust pointers in remaining weak roots. (All of which should |
2435 // have been cleared if they pointed to non-surviving objects.) | 2434 // have been cleared if they pointed to non-surviving objects.) |
2436 // Global (weak) JNI handles | 2435 // Global (weak) JNI handles |
2437 JNIHandles::weak_oops_do(&always_true, adjust_root_pointer_closure()); | 2436 JNIHandles::weak_oops_do(&always_true, adjust_pointer_closure()); |
2438 | 2437 |
2439 CodeCache::oops_do(adjust_pointer_closure()); | 2438 CodeCache::oops_do(adjust_pointer_closure()); |
2440 StringTable::oops_do(adjust_root_pointer_closure()); | 2439 StringTable::oops_do(adjust_pointer_closure()); |
2441 ref_processor()->weak_oops_do(adjust_root_pointer_closure()); | 2440 ref_processor()->weak_oops_do(adjust_pointer_closure()); |
2442 // Roots were visited so references into the young gen in roots | 2441 // Roots were visited so references into the young gen in roots |
2443 // may have been scanned. Process them also. | 2442 // may have been scanned. Process them also. |
2444 // Should the reference processor have a span that excludes | 2443 // Should the reference processor have a span that excludes |
2445 // young gen objects? | 2444 // young gen objects? |
2446 PSScavenge::reference_processor()->weak_oops_do( | 2445 PSScavenge::reference_processor()->weak_oops_do(adjust_pointer_closure()); |
2447 adjust_root_pointer_closure()); | |
2448 } | 2446 } |
2449 | 2447 |
2450 void PSParallelCompact::enqueue_region_draining_tasks(GCTaskQueue* q, | 2448 void PSParallelCompact::enqueue_region_draining_tasks(GCTaskQueue* q, |
2451 uint parallel_gc_threads) | 2449 uint parallel_gc_threads) |
2452 { | 2450 { |