1.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp Mon Aug 02 12:51:43 2010 -0700 1.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp Thu Jul 22 10:27:41 2010 -0400 1.3 @@ -46,32 +46,7 @@ 1.4 } 1.5 1.6 template <class T> 1.7 -inline void PSPromotionManager::claim_or_forward_internal_breadth(T* p) { 1.8 - if (p != NULL) { // XXX: error if p != NULL here 1.9 - oop o = oopDesc::load_decode_heap_oop_not_null(p); 1.10 - if (o->is_forwarded()) { 1.11 - o = o->forwardee(); 1.12 - } else { 1.13 - o = copy_to_survivor_space(o, false); 1.14 - } 1.15 - // Card mark 1.16 - if (PSScavenge::is_obj_in_young((HeapWord*) o)) { 1.17 - PSScavenge::card_table()->inline_write_ref_field_gc(p, o); 1.18 - } 1.19 - oopDesc::encode_store_heap_oop_not_null(p, o); 1.20 - } 1.21 -} 1.22 - 1.23 -inline void PSPromotionManager::flush_prefetch_queue() { 1.24 - assert(!depth_first(), "invariant"); 1.25 - for (int i = 0; i < _prefetch_queue.length(); i++) { 1.26 - claim_or_forward_internal_breadth((oop*)_prefetch_queue.pop()); 1.27 - } 1.28 -} 1.29 - 1.30 -template <class T> 1.31 inline void PSPromotionManager::claim_or_forward_depth(T* p) { 1.32 - assert(depth_first(), "invariant"); 1.33 assert(PSScavenge::should_scavenge(p, true), "revisiting object?"); 1.34 assert(Universe::heap()->kind() == CollectedHeap::ParallelScavengeHeap, 1.35 "Sanity"); 1.36 @@ -80,36 +55,6 @@ 1.37 claim_or_forward_internal_depth(p); 1.38 } 1.39 1.40 -template <class T> 1.41 -inline void PSPromotionManager::claim_or_forward_breadth(T* p) { 1.42 - assert(!depth_first(), "invariant"); 1.43 - assert(PSScavenge::should_scavenge(p, true), "revisiting object?"); 1.44 - assert(Universe::heap()->kind() == CollectedHeap::ParallelScavengeHeap, 1.45 - "Sanity"); 1.46 - assert(Universe::heap()->is_in(p), "pointer outside heap"); 1.47 - 1.48 - if (UsePrefetchQueue) { 1.49 - claim_or_forward_internal_breadth((T*)_prefetch_queue.push_and_pop(p)); 1.50 - } else { 1.51 - // This option is used for testing. The use of the prefetch 1.52 - // queue can delay the processing of the objects and thus 1.53 - // change the order of object scans. For example, remembered 1.54 - // set updates are typically the clearing of the remembered 1.55 - // set (the cards) followed by updates of the remembered set 1.56 - // for young-to-old pointers. In a situation where there 1.57 - // is an error in the sequence of clearing and updating 1.58 - // (e.g. clear card A, update card A, erroneously clear 1.59 - // card A again) the error can be obscured by a delay 1.60 - // in the update due to the use of the prefetch queue 1.61 - // (e.g., clear card A, erroneously clear card A again, 1.62 - // update card A that was pushed into the prefetch queue 1.63 - // and thus delayed until after the erronous clear). The 1.64 - // length of the delay is random depending on the objects 1.65 - // in the queue and the delay can be zero. 1.66 - claim_or_forward_internal_breadth(p); 1.67 - } 1.68 -} 1.69 - 1.70 inline void PSPromotionManager::process_popped_location_depth(StarTask p) { 1.71 if (is_oop_masked(p)) { 1.72 assert(PSChunkLargeArrays, "invariant");