1.1 --- a/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp Wed Oct 07 19:01:55 2009 -0400 1.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp Fri Oct 16 02:05:46 2009 -0700 1.3 @@ -314,41 +314,6 @@ 1.4 return false; 1.5 } 1.6 1.7 -// Static method 1.8 -bool ParallelScavengeHeap::is_in_young(oop* p) { 1.9 - ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); 1.10 - assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, 1.11 - "Must be ParallelScavengeHeap"); 1.12 - 1.13 - PSYoungGen* young_gen = heap->young_gen(); 1.14 - 1.15 - if (young_gen->is_in_reserved(p)) { 1.16 - return true; 1.17 - } 1.18 - 1.19 - return false; 1.20 -} 1.21 - 1.22 -// Static method 1.23 -bool ParallelScavengeHeap::is_in_old_or_perm(oop* p) { 1.24 - ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); 1.25 - assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, 1.26 - "Must be ParallelScavengeHeap"); 1.27 - 1.28 - PSOldGen* old_gen = heap->old_gen(); 1.29 - PSPermGen* perm_gen = heap->perm_gen(); 1.30 - 1.31 - if (old_gen->is_in_reserved(p)) { 1.32 - return true; 1.33 - } 1.34 - 1.35 - if (perm_gen->is_in_reserved(p)) { 1.36 - return true; 1.37 - } 1.38 - 1.39 - return false; 1.40 -} 1.41 - 1.42 // There are two levels of allocation policy here. 1.43 // 1.44 // When an allocation request fails, the requesting thread must invoke a VM 1.45 @@ -764,6 +729,13 @@ 1.46 CollectedHeap::resize_all_tlabs(); 1.47 } 1.48 1.49 +bool ParallelScavengeHeap::can_elide_initializing_store_barrier(oop new_obj) { 1.50 + // We don't need barriers for stores to objects in the 1.51 + // young gen and, a fortiori, for initializing stores to 1.52 + // objects therein. 1.53 + return is_in_young(new_obj); 1.54 +} 1.55 + 1.56 // This method is used by System.gc() and JVMTI. 1.57 void ParallelScavengeHeap::collect(GCCause::Cause cause) { 1.58 assert(!Heap_lock->owned_by_self(),