comparison src/share/vm/oops/objArrayKlass.cpp @ 1706:9d7a8ab3736b

6962589: remove breadth first scanning code from parallel gc Summary: Remove the breadth-first copying order from ParallelScavenge and use depth-first by default. Reviewed-by: jcoomes, ysr, johnc
author tonyp
date Thu, 22 Jul 2010 10:27:41 -0400
parents c18cbe5936b8
children f95d63e2154a
comparison
equal deleted inserted replaced
1705:2d160770d2e5 1706:9d7a8ab3736b
424 ObjArrayKlass_OOP_ITERATE(a, p, MarkSweep::adjust_pointer(p)) 424 ObjArrayKlass_OOP_ITERATE(a, p, MarkSweep::adjust_pointer(p))
425 return size; 425 return size;
426 } 426 }
427 427
428 #ifndef SERIALGC 428 #ifndef SERIALGC
429 void objArrayKlass::oop_copy_contents(PSPromotionManager* pm, oop obj) {
430 assert(!pm->depth_first(), "invariant");
431 assert(obj->is_objArray(), "obj must be obj array");
432 ObjArrayKlass_OOP_ITERATE( \
433 objArrayOop(obj), p, \
434 if (PSScavenge::should_scavenge(p)) { \
435 pm->claim_or_forward_breadth(p); \
436 })
437 }
438
439 void objArrayKlass::oop_push_contents(PSPromotionManager* pm, oop obj) { 429 void objArrayKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
440 assert(pm->depth_first(), "invariant");
441 assert(obj->is_objArray(), "obj must be obj array"); 430 assert(obj->is_objArray(), "obj must be obj array");
442 ObjArrayKlass_OOP_ITERATE( \ 431 ObjArrayKlass_OOP_ITERATE( \
443 objArrayOop(obj), p, \ 432 objArrayOop(obj), p, \
444 if (PSScavenge::should_scavenge(p)) { \ 433 if (PSScavenge::should_scavenge(p)) { \
445 pm->claim_or_forward_depth(p); \ 434 pm->claim_or_forward_depth(p); \