358 void setup_osr_entry_block();
359 void clear_inline_bailout();
360 ValueStack* state_at_entry();
361 void push_root_scope(IRScope* scope, BlockList* bci2block, BlockBegin* start);
362 void push_scope(ciMethod* callee, BlockBegin* continuation);
363 void push_scope_for_jsr(BlockBegin* jsr_continuation, int jsr_dest_bci);
364 void pop_scope();
365 void pop_scope_for_jsr();
366
367 bool append_unsafe_get_obj(ciMethod* callee, BasicType t, bool is_volatile);
368 bool append_unsafe_put_obj(ciMethod* callee, BasicType t, bool is_volatile);
369 bool append_unsafe_get_raw(ciMethod* callee, BasicType t);
370 bool append_unsafe_put_raw(ciMethod* callee, BasicType t);
371 bool append_unsafe_prefetch(ciMethod* callee, bool is_store, bool is_static);
372 void append_unsafe_CAS(ciMethod* callee);
373 bool append_unsafe_get_and_set_obj(ciMethod* callee, bool is_add);
374
375 void print_inlining(ciMethod* callee, const char* msg = NULL, bool success = true);
376
377 void profile_call(ciMethod* callee, Value recv, ciKlass* predicted_holder, Values* obj_args, bool inlined);
378 void profile_invocation(ciMethod* inlinee, ValueStack* state);
379
380 // Shortcuts to profiling control.
381 bool is_profiling() { return _compilation->is_profiling(); }
382 bool count_invocations() { return _compilation->count_invocations(); }
383 bool count_backedges() { return _compilation->count_backedges(); }
384 bool profile_branches() { return _compilation->profile_branches(); }
385 bool profile_calls() { return _compilation->profile_calls(); }
386 bool profile_inlined_calls() { return _compilation->profile_inlined_calls(); }
387 bool profile_checkcasts() { return _compilation->profile_checkcasts(); }
388
389 Values* args_list_for_profiling(int& start, bool may_have_receiver);
390 Values* collect_args_for_profiling(Values* args, bool may_have_receiver);
391
392 public:
393 NOT_PRODUCT(void print_stats();)
394
395 // initialization
396 static void initialize();
397
|
358 void setup_osr_entry_block();
359 void clear_inline_bailout();
360 ValueStack* state_at_entry();
361 void push_root_scope(IRScope* scope, BlockList* bci2block, BlockBegin* start);
362 void push_scope(ciMethod* callee, BlockBegin* continuation);
363 void push_scope_for_jsr(BlockBegin* jsr_continuation, int jsr_dest_bci);
364 void pop_scope();
365 void pop_scope_for_jsr();
366
367 bool append_unsafe_get_obj(ciMethod* callee, BasicType t, bool is_volatile);
368 bool append_unsafe_put_obj(ciMethod* callee, BasicType t, bool is_volatile);
369 bool append_unsafe_get_raw(ciMethod* callee, BasicType t);
370 bool append_unsafe_put_raw(ciMethod* callee, BasicType t);
371 bool append_unsafe_prefetch(ciMethod* callee, bool is_store, bool is_static);
372 void append_unsafe_CAS(ciMethod* callee);
373 bool append_unsafe_get_and_set_obj(ciMethod* callee, bool is_add);
374
375 void print_inlining(ciMethod* callee, const char* msg = NULL, bool success = true);
376
377 void profile_call(ciMethod* callee, Value recv, ciKlass* predicted_holder, Values* obj_args, bool inlined);
378 void profile_return_type(Value ret, ciMethod* callee, ciMethod* m = NULL, int bci = -1);
379 void profile_invocation(ciMethod* inlinee, ValueStack* state);
380
381 // Shortcuts to profiling control.
382 bool is_profiling() { return _compilation->is_profiling(); }
383 bool count_invocations() { return _compilation->count_invocations(); }
384 bool count_backedges() { return _compilation->count_backedges(); }
385 bool profile_branches() { return _compilation->profile_branches(); }
386 bool profile_calls() { return _compilation->profile_calls(); }
387 bool profile_inlined_calls() { return _compilation->profile_inlined_calls(); }
388 bool profile_checkcasts() { return _compilation->profile_checkcasts(); }
389
390 Values* args_list_for_profiling(int& start, bool may_have_receiver);
391 Values* collect_args_for_profiling(Values* args, bool may_have_receiver);
392
393 public:
394 NOT_PRODUCT(void print_stats();)
395
396 // initialization
397 static void initialize();
398
|