220 |
220 |
221 // Work list manipulation routines. Called internally by BasicBlock. |
221 // Work list manipulation routines. Called internally by BasicBlock. |
222 BasicBlock *work_list_get(); |
222 BasicBlock *work_list_get(); |
223 void work_list_add(BasicBlock *block); |
223 void work_list_add(BasicBlock *block); |
224 |
224 |
225 // -- Timing and Statistics. |
|
226 |
|
227 |
|
228 // Timers |
|
229 static elapsedTimer _time_build_graph; |
|
230 static elapsedTimer _time_gen_kill; |
|
231 static elapsedTimer _time_flow; |
|
232 static elapsedTimer _time_query; |
|
233 static elapsedTimer _time_total; |
|
234 |
|
235 #ifndef PRODUCT |
|
236 |
|
237 // Counts |
|
238 static long _total_bytes; |
|
239 static int _total_methods; |
|
240 |
|
241 static long _total_blocks; |
|
242 static int _max_method_blocks; |
|
243 |
|
244 static long _total_edges; |
|
245 static int _max_block_edges; |
|
246 |
|
247 static long _total_exc_edges; |
|
248 static int _max_block_exc_edges; |
|
249 |
|
250 static long _total_method_locals; |
|
251 static int _max_method_locals; |
|
252 |
|
253 static long _total_locals_queried; |
|
254 static long _total_live_locals_queried; |
|
255 |
|
256 static long _total_visits; |
|
257 |
|
258 #endif |
|
259 |
|
260 public: |
225 public: |
261 // Create a liveness analyzer for a method |
226 // Create a liveness analyzer for a method |
262 MethodLiveness(Arena* arena, ciMethod* method); |
227 MethodLiveness(Arena* arena, ciMethod* method); |
263 |
228 |
264 // Compute liveness information for the method |
229 // Compute liveness information for the method |