src/share/vm/c1/c1_LIRGenerator.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_LIRGenerator.hpp

Print this page
rev 5462 : 8026251: New type profiling points: parameters to methods
Summary: x86 interpreter and c1 type profiling for parameters on method entries
Reviewed-by:


 419     return l;
 420   }
 421 
 422 #ifdef __SOFTFP__
 423   void do_soft_float_compare(If *x);
 424 #endif // __SOFTFP__
 425 
 426   void init();
 427 
 428   SwitchRangeArray* create_lookup_ranges(TableSwitch* x);
 429   SwitchRangeArray* create_lookup_ranges(LookupSwitch* x);
 430   void do_SwitchRanges(SwitchRangeArray* x, LIR_Opr value, BlockBegin* default_sux);
 431 
 432   void do_RuntimeCall(address routine, int expected_arguments, Intrinsic* x);
 433 #ifdef TRACE_HAVE_INTRINSICS
 434   void do_ThreadIDIntrinsic(Intrinsic* x);
 435   void do_ClassIDIntrinsic(Intrinsic* x);
 436 #endif
 437   ciKlass* profile_arg_type(ciMethodData* md, int md_first_offset, int md_offset, intptr_t profiled_k, Value arg, LIR_Opr& mdp, bool not_null, ciKlass* signature_k);
 438   void profile_arguments(ProfileCall* x);


 439 
 440  public:
 441   Compilation*  compilation() const              { return _compilation; }
 442   FrameMap*     frame_map() const                { return _compilation->frame_map(); }
 443   ciMethod*     method() const                   { return _method; }
 444   BlockBegin*   block() const                    { return _block; }
 445   IRScope*      scope() const                    { return block()->scope(); }
 446 
 447   int max_virtual_register_number() const        { return _virtual_register_number; }
 448 
 449   void block_do(BlockBegin* block);
 450 
 451   // Flags that can be set on vregs
 452   enum VregFlag {
 453       must_start_in_memory = 0  // needs to be assigned a memory location at beginning, but may then be loaded in a register
 454     , callee_saved     = 1    // must be in a callee saved register
 455     , byte_reg         = 2    // must be in a byte register
 456     , num_vreg_flags
 457 
 458   };




 419     return l;
 420   }
 421 
 422 #ifdef __SOFTFP__
 423   void do_soft_float_compare(If *x);
 424 #endif // __SOFTFP__
 425 
 426   void init();
 427 
 428   SwitchRangeArray* create_lookup_ranges(TableSwitch* x);
 429   SwitchRangeArray* create_lookup_ranges(LookupSwitch* x);
 430   void do_SwitchRanges(SwitchRangeArray* x, LIR_Opr value, BlockBegin* default_sux);
 431 
 432   void do_RuntimeCall(address routine, int expected_arguments, Intrinsic* x);
 433 #ifdef TRACE_HAVE_INTRINSICS
 434   void do_ThreadIDIntrinsic(Intrinsic* x);
 435   void do_ClassIDIntrinsic(Intrinsic* x);
 436 #endif
 437   ciKlass* profile_arg_type(ciMethodData* md, int md_first_offset, int md_offset, intptr_t profiled_k, Value arg, LIR_Opr& mdp, bool not_null, ciKlass* signature_k);
 438   void profile_arguments(ProfileCall* x);
 439   void profile_parameters(Base* x);
 440   void profile_parameters_at_call(ProfileCall* x);
 441 
 442  public:
 443   Compilation*  compilation() const              { return _compilation; }
 444   FrameMap*     frame_map() const                { return _compilation->frame_map(); }
 445   ciMethod*     method() const                   { return _method; }
 446   BlockBegin*   block() const                    { return _block; }
 447   IRScope*      scope() const                    { return block()->scope(); }
 448 
 449   int max_virtual_register_number() const        { return _virtual_register_number; }
 450 
 451   void block_do(BlockBegin* block);
 452 
 453   // Flags that can be set on vregs
 454   enum VregFlag {
 455       must_start_in_memory = 0  // needs to be assigned a memory location at beginning, but may then be loaded in a register
 456     , callee_saved     = 1    // must be in a callee saved register
 457     , byte_reg         = 2    // must be in a byte register
 458     , num_vreg_flags
 459 
 460   };


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