src/share/vm/c1/c1_GraphBuilder.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/c1

src/share/vm/c1/c1_GraphBuilder.hpp

Print this page
rev 5403 : 8023657: New type profiling points: arguments to call
Summary: x86 interpreter and c1 type profiling for arguments at calls
Reviewed-by: kvn, twisti
rev 5404 : 8026054: New type profiling points: type of return values at calls
Summary: x86 interpreter and c1 type profiling for return values at calls
Reviewed-by:


 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 
src/share/vm/c1/c1_GraphBuilder.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File