comparison src/share/vm/oops/methodKlass.cpp @ 4979:18a5539bf19b

More diff vs hsx24 optimizations.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 27 Feb 2012 21:43:51 +0100
parents 33df1aeaebbf
children fdd9dd4508fa
comparison
equal deleted inserted replaced
4978:99d3d8a72252 4979:18a5539bf19b
101 NOT_PRODUCT(m->set_compiled_invocation_count(0);) 101 NOT_PRODUCT(m->set_compiled_invocation_count(0);)
102 m->set_interpreter_invocation_count(0); 102 m->set_interpreter_invocation_count(0);
103 m->invocation_counter()->init(); 103 m->invocation_counter()->init();
104 m->backedge_counter()->init(); 104 m->backedge_counter()->init();
105 m->clear_number_of_breakpoints(); 105 m->clear_number_of_breakpoints();
106 #ifdef GRAAL
106 m->set_graal_mirror(NULL); 107 m->set_graal_mirror(NULL);
108 #endif
107 109
108 #ifdef TIERED 110 #ifdef TIERED
109 m->set_rate(0); 111 m->set_rate(0);
110 m->set_prev_event_count(0); 112 m->set_prev_event_count(0);
111 m->set_prev_time(0); 113 m->set_prev_time(0);
127 methodOop m = methodOop(obj); 129 methodOop m = methodOop(obj);
128 // Performance tweak: We skip iterating over the klass pointer since we 130 // Performance tweak: We skip iterating over the klass pointer since we
129 // know that Universe::methodKlassObj never moves. 131 // know that Universe::methodKlassObj never moves.
130 MarkSweep::mark_and_push(m->adr_constMethod()); 132 MarkSweep::mark_and_push(m->adr_constMethod());
131 MarkSweep::mark_and_push(m->adr_constants()); 133 MarkSweep::mark_and_push(m->adr_constants());
134 #ifdef GRAAL
132 MarkSweep::mark_and_push(m->adr_graal_mirror()); 135 MarkSweep::mark_and_push(m->adr_graal_mirror());
136 #endif
133 if (m->method_data() != NULL) { 137 if (m->method_data() != NULL) {
134 MarkSweep::mark_and_push(m->adr_method_data()); 138 MarkSweep::mark_and_push(m->adr_method_data());
135 } 139 }
136 } 140 }
137 141
142 methodOop m = methodOop(obj); 146 methodOop m = methodOop(obj);
143 // Performance tweak: We skip iterating over the klass pointer since we 147 // Performance tweak: We skip iterating over the klass pointer since we
144 // know that Universe::methodKlassObj never moves. 148 // know that Universe::methodKlassObj never moves.
145 PSParallelCompact::mark_and_push(cm, m->adr_constMethod()); 149 PSParallelCompact::mark_and_push(cm, m->adr_constMethod());
146 PSParallelCompact::mark_and_push(cm, m->adr_constants()); 150 PSParallelCompact::mark_and_push(cm, m->adr_constants());
151 #ifdef GRAAL
147 PSParallelCompact::mark_and_push(cm, m->adr_graal_mirror()); 152 PSParallelCompact::mark_and_push(cm, m->adr_graal_mirror());
153 #endif
154 #ifdef COMPILER2
148 if (m->method_data() != NULL) { 155 if (m->method_data() != NULL) {
149 PSParallelCompact::mark_and_push(cm, m->adr_method_data()); 156 PSParallelCompact::mark_and_push(cm, m->adr_method_data());
150 } 157 }
158 #endif
151 } 159 }
152 #endif // SERIALGC 160 #endif // SERIALGC
153 161
154 int methodKlass::oop_oop_iterate(oop obj, OopClosure* blk) { 162 int methodKlass::oop_oop_iterate(oop obj, OopClosure* blk) {
155 assert (obj->is_method(), "object must be method"); 163 assert (obj->is_method(), "object must be method");
159 int size = m->object_size(); 167 int size = m->object_size();
160 // Performance tweak: We skip iterating over the klass pointer since we 168 // Performance tweak: We skip iterating over the klass pointer since we
161 // know that Universe::methodKlassObj never moves 169 // know that Universe::methodKlassObj never moves
162 blk->do_oop(m->adr_constMethod()); 170 blk->do_oop(m->adr_constMethod());
163 blk->do_oop(m->adr_constants()); 171 blk->do_oop(m->adr_constants());
172 #ifdef GRAAL
164 blk->do_oop(m->adr_graal_mirror()); 173 blk->do_oop(m->adr_graal_mirror());
174 #endif
165 if (m->method_data() != NULL) { 175 if (m->method_data() != NULL) {
166 blk->do_oop(m->adr_method_data()); 176 blk->do_oop(m->adr_method_data());
167 } 177 }
168 return size; 178 return size;
169 } 179 }
180 oop* adr; 190 oop* adr;
181 adr = m->adr_constMethod(); 191 adr = m->adr_constMethod();
182 if (mr.contains(adr)) blk->do_oop(adr); 192 if (mr.contains(adr)) blk->do_oop(adr);
183 adr = m->adr_constants(); 193 adr = m->adr_constants();
184 if (mr.contains(adr)) blk->do_oop(adr); 194 if (mr.contains(adr)) blk->do_oop(adr);
195 #ifdef GRAAL
185 adr = m->adr_graal_mirror(); 196 adr = m->adr_graal_mirror();
186 if (mr.contains(adr)) blk->do_oop(adr); 197 if (mr.contains(adr)) blk->do_oop(adr);
198 #endif
187 if (m->method_data() != NULL) { 199 if (m->method_data() != NULL) {
188 adr = m->adr_method_data(); 200 adr = m->adr_method_data();
189 if (mr.contains(adr)) blk->do_oop(adr); 201 if (mr.contains(adr)) blk->do_oop(adr);
190 } 202 }
191 return size; 203 return size;
200 int size = m->object_size(); 212 int size = m->object_size();
201 // Performance tweak: We skip iterating over the klass pointer since we 213 // Performance tweak: We skip iterating over the klass pointer since we
202 // know that Universe::methodKlassObj never moves. 214 // know that Universe::methodKlassObj never moves.
203 MarkSweep::adjust_pointer(m->adr_constMethod()); 215 MarkSweep::adjust_pointer(m->adr_constMethod());
204 MarkSweep::adjust_pointer(m->adr_constants()); 216 MarkSweep::adjust_pointer(m->adr_constants());
217 #ifdef GRAAL
205 MarkSweep::adjust_pointer(m->adr_graal_mirror()); 218 MarkSweep::adjust_pointer(m->adr_graal_mirror());
219 #endif
206 if (m->method_data() != NULL) { 220 if (m->method_data() != NULL) {
207 MarkSweep::adjust_pointer(m->adr_method_data()); 221 MarkSweep::adjust_pointer(m->adr_method_data());
208 } 222 }
209 return size; 223 return size;
210 } 224 }
217 int methodKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) { 231 int methodKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
218 assert(obj->is_method(), "should be method"); 232 assert(obj->is_method(), "should be method");
219 methodOop m = methodOop(obj); 233 methodOop m = methodOop(obj);
220 PSParallelCompact::adjust_pointer(m->adr_constMethod()); 234 PSParallelCompact::adjust_pointer(m->adr_constMethod());
221 PSParallelCompact::adjust_pointer(m->adr_constants()); 235 PSParallelCompact::adjust_pointer(m->adr_constants());
236 #ifdef GRAAL
222 PSParallelCompact::adjust_pointer(m->adr_graal_mirror()); 237 PSParallelCompact::adjust_pointer(m->adr_graal_mirror());
238 #endif
239 #ifdef COMPILER2
223 if (m->method_data() != NULL) { 240 if (m->method_data() != NULL) {
224 PSParallelCompact::adjust_pointer(m->adr_method_data()); 241 PSParallelCompact::adjust_pointer(m->adr_method_data());
225 } 242 }
243 #endif // COMPILER2
226 return m->object_size(); 244 return m->object_size();
227 } 245 }
228 #endif // SERIALGC 246 #endif // SERIALGC
229 247
230 #ifndef PRODUCT 248 #ifndef PRODUCT