Mercurial > hg > truffle
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 }, \ |