Mercurial > hg > truffle
comparison src/share/vm/oops/methodKlass.cpp @ 3011:f00918f35c7f
inlining and runtime interface related changes:
added codeSize() and compilerStorage() to RiMethod
HotSpotMethodResolved uses reflective methods instead of vmIds and survives compilations
HotSpotResolvedType.isInitialized not represented as field (can change)
inlining stores graphs into method objects and reuses them
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Thu, 16 Jun 2011 20:36:17 +0200 |
parents | 5d8f5a6dced7 |
children | 63cd21fda79b |
comparison
equal
deleted
inserted
replaced
2993:3671e31615c9 | 3011:f00918f35c7f |
---|---|
100 NOT_PRODUCT(m->set_compiled_invocation_count(0);) | 100 NOT_PRODUCT(m->set_compiled_invocation_count(0);) |
101 m->set_interpreter_invocation_count(0); | 101 m->set_interpreter_invocation_count(0); |
102 m->invocation_counter()->init(); | 102 m->invocation_counter()->init(); |
103 m->backedge_counter()->init(); | 103 m->backedge_counter()->init(); |
104 m->clear_number_of_breakpoints(); | 104 m->clear_number_of_breakpoints(); |
105 m->set_graal_mirror(NULL); | |
105 | 106 |
106 #ifdef TIERED | 107 #ifdef TIERED |
107 m->set_rate(0); | 108 m->set_rate(0); |
108 m->set_prev_event_count(0); | 109 m->set_prev_event_count(0); |
109 m->set_prev_time(0); | 110 m->set_prev_time(0); |
125 methodOop m = methodOop(obj); | 126 methodOop m = methodOop(obj); |
126 // Performance tweak: We skip iterating over the klass pointer since we | 127 // Performance tweak: We skip iterating over the klass pointer since we |
127 // know that Universe::methodKlassObj never moves. | 128 // know that Universe::methodKlassObj never moves. |
128 MarkSweep::mark_and_push(m->adr_constMethod()); | 129 MarkSweep::mark_and_push(m->adr_constMethod()); |
129 MarkSweep::mark_and_push(m->adr_constants()); | 130 MarkSweep::mark_and_push(m->adr_constants()); |
131 MarkSweep::mark_and_push(m->adr_graal_mirror()); | |
130 if (m->method_data() != NULL) { | 132 if (m->method_data() != NULL) { |
131 MarkSweep::mark_and_push(m->adr_method_data()); | 133 MarkSweep::mark_and_push(m->adr_method_data()); |
132 } | 134 } |
133 } | 135 } |
134 | 136 |
139 methodOop m = methodOop(obj); | 141 methodOop m = methodOop(obj); |
140 // Performance tweak: We skip iterating over the klass pointer since we | 142 // Performance tweak: We skip iterating over the klass pointer since we |
141 // know that Universe::methodKlassObj never moves. | 143 // know that Universe::methodKlassObj never moves. |
142 PSParallelCompact::mark_and_push(cm, m->adr_constMethod()); | 144 PSParallelCompact::mark_and_push(cm, m->adr_constMethod()); |
143 PSParallelCompact::mark_and_push(cm, m->adr_constants()); | 145 PSParallelCompact::mark_and_push(cm, m->adr_constants()); |
146 PSParallelCompact::mark_and_push(cm, m->adr_graal_mirror()); | |
144 #ifdef COMPILER2 | 147 #ifdef COMPILER2 |
145 if (m->method_data() != NULL) { | 148 if (m->method_data() != NULL) { |
146 PSParallelCompact::mark_and_push(cm, m->adr_method_data()); | 149 PSParallelCompact::mark_and_push(cm, m->adr_method_data()); |
147 } | 150 } |
148 #endif // COMPILER2 | 151 #endif // COMPILER2 |
157 int size = m->object_size(); | 160 int size = m->object_size(); |
158 // Performance tweak: We skip iterating over the klass pointer since we | 161 // Performance tweak: We skip iterating over the klass pointer since we |
159 // know that Universe::methodKlassObj never moves | 162 // know that Universe::methodKlassObj never moves |
160 blk->do_oop(m->adr_constMethod()); | 163 blk->do_oop(m->adr_constMethod()); |
161 blk->do_oop(m->adr_constants()); | 164 blk->do_oop(m->adr_constants()); |
165 blk->do_oop(m->adr_graal_mirror()); | |
162 if (m->method_data() != NULL) { | 166 if (m->method_data() != NULL) { |
163 blk->do_oop(m->adr_method_data()); | 167 blk->do_oop(m->adr_method_data()); |
164 } | 168 } |
165 return size; | 169 return size; |
166 } | 170 } |
177 oop* adr; | 181 oop* adr; |
178 adr = m->adr_constMethod(); | 182 adr = m->adr_constMethod(); |
179 if (mr.contains(adr)) blk->do_oop(adr); | 183 if (mr.contains(adr)) blk->do_oop(adr); |
180 adr = m->adr_constants(); | 184 adr = m->adr_constants(); |
181 if (mr.contains(adr)) blk->do_oop(adr); | 185 if (mr.contains(adr)) blk->do_oop(adr); |
186 adr = m->adr_graal_mirror(); | |
187 if (mr.contains(adr)) blk->do_oop(adr); | |
182 if (m->method_data() != NULL) { | 188 if (m->method_data() != NULL) { |
183 adr = m->adr_method_data(); | 189 adr = m->adr_method_data(); |
184 if (mr.contains(adr)) blk->do_oop(adr); | 190 if (mr.contains(adr)) blk->do_oop(adr); |
185 } | 191 } |
186 return size; | 192 return size; |
195 int size = m->object_size(); | 201 int size = m->object_size(); |
196 // Performance tweak: We skip iterating over the klass pointer since we | 202 // Performance tweak: We skip iterating over the klass pointer since we |
197 // know that Universe::methodKlassObj never moves. | 203 // know that Universe::methodKlassObj never moves. |
198 MarkSweep::adjust_pointer(m->adr_constMethod()); | 204 MarkSweep::adjust_pointer(m->adr_constMethod()); |
199 MarkSweep::adjust_pointer(m->adr_constants()); | 205 MarkSweep::adjust_pointer(m->adr_constants()); |
206 MarkSweep::adjust_pointer(m->adr_graal_mirror()); | |
200 if (m->method_data() != NULL) { | 207 if (m->method_data() != NULL) { |
201 MarkSweep::adjust_pointer(m->adr_method_data()); | 208 MarkSweep::adjust_pointer(m->adr_method_data()); |
202 } | 209 } |
203 return size; | 210 return size; |
204 } | 211 } |
211 int methodKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) { | 218 int methodKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) { |
212 assert(obj->is_method(), "should be method"); | 219 assert(obj->is_method(), "should be method"); |
213 methodOop m = methodOop(obj); | 220 methodOop m = methodOop(obj); |
214 PSParallelCompact::adjust_pointer(m->adr_constMethod()); | 221 PSParallelCompact::adjust_pointer(m->adr_constMethod()); |
215 PSParallelCompact::adjust_pointer(m->adr_constants()); | 222 PSParallelCompact::adjust_pointer(m->adr_constants()); |
223 PSParallelCompact::adjust_pointer(m->adr_graal_mirror()); | |
216 #ifdef COMPILER2 | 224 #ifdef COMPILER2 |
217 if (m->method_data() != NULL) { | 225 if (m->method_data() != NULL) { |
218 PSParallelCompact::adjust_pointer(m->adr_method_data()); | 226 PSParallelCompact::adjust_pointer(m->adr_method_data()); |
219 } | 227 } |
220 #endif // COMPILER2 | 228 #endif // COMPILER2 |