comparison src/share/vm/oops/instanceKlass.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 2528b5bd749c
comparison
equal deleted inserted replaced
1705:2d160770d2e5 1706:9d7a8ab3736b
1807 obj->adjust_header(); 1807 obj->adjust_header();
1808 return size; 1808 return size;
1809 } 1809 }
1810 1810
1811 #ifndef SERIALGC 1811 #ifndef SERIALGC
1812 void instanceKlass::oop_copy_contents(PSPromotionManager* pm, oop obj) {
1813 assert(!pm->depth_first(), "invariant");
1814 InstanceKlass_OOP_MAP_REVERSE_ITERATE( \
1815 obj, \
1816 if (PSScavenge::should_scavenge(p)) { \
1817 pm->claim_or_forward_breadth(p); \
1818 }, \
1819 assert_nothing )
1820 }
1821
1822 void instanceKlass::oop_push_contents(PSPromotionManager* pm, oop obj) { 1812 void instanceKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
1823 assert(pm->depth_first(), "invariant");
1824 InstanceKlass_OOP_MAP_REVERSE_ITERATE( \ 1813 InstanceKlass_OOP_MAP_REVERSE_ITERATE( \
1825 obj, \ 1814 obj, \
1826 if (PSScavenge::should_scavenge(p)) { \ 1815 if (PSScavenge::should_scavenge(p)) { \
1827 pm->claim_or_forward_depth(p); \ 1816 pm->claim_or_forward_depth(p); \
1828 }, \ 1817 }, \
1844 PSParallelCompact::adjust_pointer(p), \ 1833 PSParallelCompact::adjust_pointer(p), \
1845 assert_nothing) 1834 assert_nothing)
1846 return size_helper(); 1835 return size_helper();
1847 } 1836 }
1848 1837
1849 void instanceKlass::copy_static_fields(PSPromotionManager* pm) {
1850 assert(!pm->depth_first(), "invariant");
1851 InstanceKlass_OOP_ITERATE( \
1852 start_of_static_fields(), static_oop_field_size(), \
1853 if (PSScavenge::should_scavenge(p)) { \
1854 pm->claim_or_forward_breadth(p); \
1855 }, \
1856 assert_nothing )
1857 }
1858
1859 void instanceKlass::push_static_fields(PSPromotionManager* pm) { 1838 void instanceKlass::push_static_fields(PSPromotionManager* pm) {
1860 assert(pm->depth_first(), "invariant");
1861 InstanceKlass_OOP_ITERATE( \ 1839 InstanceKlass_OOP_ITERATE( \
1862 start_of_static_fields(), static_oop_field_size(), \ 1840 start_of_static_fields(), static_oop_field_size(), \
1863 if (PSScavenge::should_scavenge(p)) { \ 1841 if (PSScavenge::should_scavenge(p)) { \
1864 pm->claim_or_forward_depth(p); \ 1842 pm->claim_or_forward_depth(p); \
1865 }, \ 1843 }, \