Mercurial > hg > graal-compiler
comparison src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp @ 10179:a08c80e9e1e5
8012687: Remove unused is_root checks and closures
Reviewed-by: tschatzl, jmasa
author | stefank |
---|---|
date | Mon, 22 Apr 2013 20:27:36 +0200 |
parents | 7b835924c31c |
children | 001ec9515f84 |
comparison
equal
deleted
inserted
replaced
10178:d391427ddc29 | 10179:a08c80e9e1e5 |
---|---|
797 KeepAliveClosure(ParCompactionManager* cm) : _compaction_manager(cm) { } | 797 KeepAliveClosure(ParCompactionManager* cm) : _compaction_manager(cm) { } |
798 virtual void do_oop(oop* p); | 798 virtual void do_oop(oop* p); |
799 virtual void do_oop(narrowOop* p); | 799 virtual void do_oop(narrowOop* p); |
800 }; | 800 }; |
801 | 801 |
802 // Current unused | |
803 class FollowRootClosure: public OopsInGenClosure { | |
804 private: | |
805 ParCompactionManager* _compaction_manager; | |
806 public: | |
807 FollowRootClosure(ParCompactionManager* cm) : _compaction_manager(cm) { } | |
808 virtual void do_oop(oop* p); | |
809 virtual void do_oop(narrowOop* p); | |
810 }; | |
811 | |
812 class FollowStackClosure: public VoidClosure { | 802 class FollowStackClosure: public VoidClosure { |
813 private: | 803 private: |
814 ParCompactionManager* _compaction_manager; | 804 ParCompactionManager* _compaction_manager; |
815 public: | 805 public: |
816 FollowStackClosure(ParCompactionManager* cm) : _compaction_manager(cm) { } | 806 FollowStackClosure(ParCompactionManager* cm) : _compaction_manager(cm) { } |
817 virtual void do_void(); | 807 virtual void do_void(); |
818 }; | 808 }; |
819 | 809 |
820 class AdjustPointerClosure: public OopClosure { | 810 class AdjustPointerClosure: public OopClosure { |
821 private: | |
822 bool _is_root; | |
823 public: | 811 public: |
824 AdjustPointerClosure(bool is_root) : _is_root(is_root) { } | |
825 virtual void do_oop(oop* p); | 812 virtual void do_oop(oop* p); |
826 virtual void do_oop(narrowOop* p); | 813 virtual void do_oop(narrowOop* p); |
827 // do not walk from thread stacks to the code cache on this phase | 814 // do not walk from thread stacks to the code cache on this phase |
828 virtual void do_code_blob(CodeBlob* cb) const { } | 815 virtual void do_code_blob(CodeBlob* cb) const { } |
829 }; | 816 }; |
836 friend class KeepAliveClosure; | 823 friend class KeepAliveClosure; |
837 friend class FollowStackClosure; | 824 friend class FollowStackClosure; |
838 friend class AdjustPointerClosure; | 825 friend class AdjustPointerClosure; |
839 friend class AdjustKlassClosure; | 826 friend class AdjustKlassClosure; |
840 friend class FollowKlassClosure; | 827 friend class FollowKlassClosure; |
841 friend class FollowRootClosure; | |
842 friend class InstanceClassLoaderKlass; | 828 friend class InstanceClassLoaderKlass; |
843 friend class RefProcTaskProxy; | 829 friend class RefProcTaskProxy; |
844 | 830 |
845 private: | 831 private: |
846 static elapsedTimer _accumulated_time; | 832 static elapsedTimer _accumulated_time; |
851 static ParMarkBitMap _mark_bitmap; | 837 static ParMarkBitMap _mark_bitmap; |
852 static ParallelCompactData _summary_data; | 838 static ParallelCompactData _summary_data; |
853 static IsAliveClosure _is_alive_closure; | 839 static IsAliveClosure _is_alive_closure; |
854 static SpaceInfo _space_info[last_space_id]; | 840 static SpaceInfo _space_info[last_space_id]; |
855 static bool _print_phases; | 841 static bool _print_phases; |
856 static AdjustPointerClosure _adjust_root_pointer_closure; | |
857 static AdjustPointerClosure _adjust_pointer_closure; | 842 static AdjustPointerClosure _adjust_pointer_closure; |
858 static AdjustKlassClosure _adjust_klass_closure; | 843 static AdjustKlassClosure _adjust_klass_closure; |
859 | 844 |
860 // Reference processing (used in ...follow_contents) | 845 // Reference processing (used in ...follow_contents) |
861 static ReferenceProcessor* _ref_processor; | 846 static ReferenceProcessor* _ref_processor; |
886 static void post_compact(); | 871 static void post_compact(); |
887 | 872 |
888 // Mark live objects | 873 // Mark live objects |
889 static void marking_phase(ParCompactionManager* cm, | 874 static void marking_phase(ParCompactionManager* cm, |
890 bool maximum_heap_compaction); | 875 bool maximum_heap_compaction); |
891 | |
892 template <class T> static inline void adjust_pointer(T* p, bool is_root); | |
893 static void adjust_root_pointer(oop* p) { adjust_pointer(p, true); } | |
894 | 876 |
895 template <class T> | 877 template <class T> |
896 static inline void follow_root(ParCompactionManager* cm, T* p); | 878 static inline void follow_root(ParCompactionManager* cm, T* p); |
897 | 879 |
898 // Compute the dense prefix for the designated space. This is an experimental | 880 // Compute the dense prefix for the designated space. This is an experimental |
1044 // in the event of a failure. | 1026 // in the event of a failure. |
1045 static bool initialize(); | 1027 static bool initialize(); |
1046 | 1028 |
1047 // Closure accessors | 1029 // Closure accessors |
1048 static OopClosure* adjust_pointer_closure() { return (OopClosure*)&_adjust_pointer_closure; } | 1030 static OopClosure* adjust_pointer_closure() { return (OopClosure*)&_adjust_pointer_closure; } |
1049 static OopClosure* adjust_root_pointer_closure() { return (OopClosure*)&_adjust_root_pointer_closure; } | |
1050 static KlassClosure* adjust_klass_closure() { return (KlassClosure*)&_adjust_klass_closure; } | 1031 static KlassClosure* adjust_klass_closure() { return (KlassClosure*)&_adjust_klass_closure; } |
1051 static BoolObjectClosure* is_alive_closure() { return (BoolObjectClosure*)&_is_alive_closure; } | 1032 static BoolObjectClosure* is_alive_closure() { return (BoolObjectClosure*)&_is_alive_closure; } |
1052 | 1033 |
1053 // Public accessors | 1034 // Public accessors |
1054 static elapsedTimer* accumulated_time() { return &_accumulated_time; } | 1035 static elapsedTimer* accumulated_time() { return &_accumulated_time; } |
1065 static inline bool mark_obj(oop obj); | 1046 static inline bool mark_obj(oop obj); |
1066 static inline bool is_marked(oop obj); | 1047 static inline bool is_marked(oop obj); |
1067 // Check mark and maybe push on marking stack | 1048 // Check mark and maybe push on marking stack |
1068 template <class T> static inline void mark_and_push(ParCompactionManager* cm, | 1049 template <class T> static inline void mark_and_push(ParCompactionManager* cm, |
1069 T* p); | 1050 T* p); |
1051 template <class T> static inline void adjust_pointer(T* p); | |
1070 | 1052 |
1071 static void follow_klass(ParCompactionManager* cm, Klass* klass); | 1053 static void follow_klass(ParCompactionManager* cm, Klass* klass); |
1072 static void adjust_klass(ParCompactionManager* cm, Klass* klass); | 1054 static void adjust_klass(ParCompactionManager* cm, Klass* klass); |
1073 | 1055 |
1074 static void follow_class_loader(ParCompactionManager* cm, | 1056 static void follow_class_loader(ParCompactionManager* cm, |
1148 // Update the deferred objects in the space. | 1130 // Update the deferred objects in the space. |
1149 static void update_deferred_objects(ParCompactionManager* cm, SpaceId id); | 1131 static void update_deferred_objects(ParCompactionManager* cm, SpaceId id); |
1150 | 1132 |
1151 static ParMarkBitMap* mark_bitmap() { return &_mark_bitmap; } | 1133 static ParMarkBitMap* mark_bitmap() { return &_mark_bitmap; } |
1152 static ParallelCompactData& summary_data() { return _summary_data; } | 1134 static ParallelCompactData& summary_data() { return _summary_data; } |
1153 | |
1154 static inline void adjust_pointer(oop* p) { adjust_pointer(p, false); } | |
1155 static inline void adjust_pointer(narrowOop* p) { adjust_pointer(p, false); } | |
1156 | 1135 |
1157 // Reference Processing | 1136 // Reference Processing |
1158 static ReferenceProcessor* const ref_processor() { return _ref_processor; } | 1137 static ReferenceProcessor* const ref_processor() { return _ref_processor; } |
1159 | 1138 |
1160 // Return the SpaceId for the given address. | 1139 // Return the SpaceId for the given address. |
1228 } | 1207 } |
1229 } | 1208 } |
1230 } | 1209 } |
1231 | 1210 |
1232 template <class T> | 1211 template <class T> |
1233 inline void PSParallelCompact::adjust_pointer(T* p, bool isroot) { | 1212 inline void PSParallelCompact::adjust_pointer(T* p) { |
1234 T heap_oop = oopDesc::load_heap_oop(p); | 1213 T heap_oop = oopDesc::load_heap_oop(p); |
1235 if (!oopDesc::is_null(heap_oop)) { | 1214 if (!oopDesc::is_null(heap_oop)) { |
1236 oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); | 1215 oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); |
1237 oop new_obj = (oop)summary_data().calc_new_pointer(obj); | 1216 oop new_obj = (oop)summary_data().calc_new_pointer(obj); |
1238 assert(new_obj != NULL, // is forwarding ptr? | 1217 assert(new_obj != NULL, // is forwarding ptr? |