< prev index next >

src/hotspot/share/opto/compile.hpp

Print this page




 364   const bool            _eliminate_boxing;      // Do boxing elimination.
 365   ciMethod*             _method;                // The method being compiled.
 366   int                   _entry_bci;             // entry bci for osr methods.
 367   const TypeFunc*       _tf;                    // My kind of signature
 368   InlineTree*           _ilt;                   // Ditto (temporary).
 369   address               _stub_function;         // VM entry for stub being compiled, or NULL
 370   const char*           _stub_name;             // Name of stub or adapter being compiled, or NULL
 371   address               _stub_entry_point;      // Compile code entry for generated stub, or NULL
 372 
 373   // Control of this compilation.
 374   int                   _num_loop_opts;         // Number of iterations for doing loop optimiztions
 375   int                   _max_inline_size;       // Max inline size for this compilation
 376   int                   _freq_inline_size;      // Max hot method inline size for this compilation
 377   int                   _fixed_slots;           // count of frame slots not allocated by the register
 378                                                 // allocator i.e. locks, original deopt pc, etc.
 379   uintx                 _max_node_limit;        // Max unique node count during a single compilation.
 380   // For deopt
 381   int                   _orig_pc_slot;
 382   int                   _orig_pc_slot_offset_in_bytes;
 383 




 384   int                   _major_progress;        // Count of something big happening
 385   bool                  _inlining_progress;     // progress doing incremental inlining?
 386   bool                  _inlining_incrementally;// Are we doing incremental inlining (post parse)
 387   bool                  _has_loops;             // True if the method _may_ have some loops
 388   bool                  _has_split_ifs;         // True if the method _may_ have some split-if
 389   bool                  _has_unsafe_access;     // True if the method _may_ produce faults in unsafe loads or stores.
 390   bool                  _has_stringbuilder;     // True StringBuffers or StringBuilders are allocated
 391   bool                  _has_boxed_value;       // True if a boxed object is allocated
 392   bool                  _has_reserved_stack_access; // True if the method or an inlined method is annotated with ReservedStackAccess
 393   uint                  _max_vector_size;       // Maximum size of generated vectors
 394   bool                  _clear_upper_avx;       // Clear upper bits of ymm registers using vzeroupper
 395   uint                  _trap_hist[trapHistLength];  // Cumulative traps
 396   bool                  _trap_can_recompile;    // Have we emitted a recompiling trap?
 397   uint                  _decompile_count;       // Cumulative decompilation counts.
 398   bool                  _do_inlining;           // True if we intend to do inlining
 399   bool                  _do_scheduling;         // True if we intend to do scheduling
 400   bool                  _do_freq_based_layout;  // True if we intend to do frequency based block layout
 401   bool                  _do_count_invocations;  // True if we generate code to count invocations
 402   bool                  _do_method_data_update; // True if we generate code to update MethodData*s
 403   bool                  _do_vector_loop;        // True if allowed to execute loop in parallel iterations


 697   void          set_do_method_data_update(bool z) { _do_method_data_update = z; }
 698   bool              do_vector_loop() const      { return _do_vector_loop; }
 699   void          set_do_vector_loop(bool z)      { _do_vector_loop = z; }
 700   bool              use_cmove() const           { return _use_cmove; }
 701   void          set_use_cmove(bool z)           { _use_cmove = z; }
 702   bool              age_code() const             { return _age_code; }
 703   void          set_age_code(bool z)             { _age_code = z; }
 704   int               AliasLevel() const           { return _AliasLevel; }
 705   bool              print_assembly() const       { return _print_assembly; }
 706   void          set_print_assembly(bool z)       { _print_assembly = z; }
 707   bool              print_inlining() const       { return _print_inlining; }
 708   void          set_print_inlining(bool z)       { _print_inlining = z; }
 709   bool              print_intrinsics() const     { return _print_intrinsics; }
 710   void          set_print_intrinsics(bool z)     { _print_intrinsics = z; }
 711   RTMState          rtm_state()  const           { return _rtm_state; }
 712   void          set_rtm_state(RTMState s)        { _rtm_state = s; }
 713   bool              use_rtm() const              { return (_rtm_state & NoRTM) == 0; }
 714   bool          profile_rtm() const              { return _rtm_state == ProfileRTM; }
 715   uint              max_node_limit() const       { return (uint)_max_node_limit; }
 716   void          set_max_node_limit(uint n)       { _max_node_limit = n; }






 717 
 718   // check the CompilerOracle for special behaviours for this compile
 719   bool          method_has_option(const char * option) {
 720     return method() != NULL && method()->has_option(option);
 721   }
 722 
 723 #ifndef PRODUCT
 724   bool          trace_opto_output() const       { return _trace_opto_output; }
 725   bool              parsed_irreducible_loop() const { return _parsed_irreducible_loop; }
 726   void          set_parsed_irreducible_loop(bool z) { _parsed_irreducible_loop = z; }
 727   int _in_dump_cnt;  // Required for dumping ir nodes.
 728 #endif
 729   bool              has_irreducible_loop() const { return _has_irreducible_loop; }
 730   void          set_has_irreducible_loop(bool z) { _has_irreducible_loop = z; }
 731 
 732   // JSR 292
 733   bool              has_method_handle_invokes() const { return _has_method_handle_invokes;     }
 734   void          set_has_method_handle_invokes(bool z) {        _has_method_handle_invokes = z; }
 735 
 736   Ticks _latest_stage_start_counter;




 364   const bool            _eliminate_boxing;      // Do boxing elimination.
 365   ciMethod*             _method;                // The method being compiled.
 366   int                   _entry_bci;             // entry bci for osr methods.
 367   const TypeFunc*       _tf;                    // My kind of signature
 368   InlineTree*           _ilt;                   // Ditto (temporary).
 369   address               _stub_function;         // VM entry for stub being compiled, or NULL
 370   const char*           _stub_name;             // Name of stub or adapter being compiled, or NULL
 371   address               _stub_entry_point;      // Compile code entry for generated stub, or NULL
 372 
 373   // Control of this compilation.
 374   int                   _num_loop_opts;         // Number of iterations for doing loop optimiztions
 375   int                   _max_inline_size;       // Max inline size for this compilation
 376   int                   _freq_inline_size;      // Max hot method inline size for this compilation
 377   int                   _fixed_slots;           // count of frame slots not allocated by the register
 378                                                 // allocator i.e. locks, original deopt pc, etc.
 379   uintx                 _max_node_limit;        // Max unique node count during a single compilation.
 380   // For deopt
 381   int                   _orig_pc_slot;
 382   int                   _orig_pc_slot_offset_in_bytes;
 383 
 384   // For value type calling convention
 385   int                   _sp_inc_slot;
 386   int                   _sp_inc_slot_offset_in_bytes;
 387 
 388   int                   _major_progress;        // Count of something big happening
 389   bool                  _inlining_progress;     // progress doing incremental inlining?
 390   bool                  _inlining_incrementally;// Are we doing incremental inlining (post parse)
 391   bool                  _has_loops;             // True if the method _may_ have some loops
 392   bool                  _has_split_ifs;         // True if the method _may_ have some split-if
 393   bool                  _has_unsafe_access;     // True if the method _may_ produce faults in unsafe loads or stores.
 394   bool                  _has_stringbuilder;     // True StringBuffers or StringBuilders are allocated
 395   bool                  _has_boxed_value;       // True if a boxed object is allocated
 396   bool                  _has_reserved_stack_access; // True if the method or an inlined method is annotated with ReservedStackAccess
 397   uint                  _max_vector_size;       // Maximum size of generated vectors
 398   bool                  _clear_upper_avx;       // Clear upper bits of ymm registers using vzeroupper
 399   uint                  _trap_hist[trapHistLength];  // Cumulative traps
 400   bool                  _trap_can_recompile;    // Have we emitted a recompiling trap?
 401   uint                  _decompile_count;       // Cumulative decompilation counts.
 402   bool                  _do_inlining;           // True if we intend to do inlining
 403   bool                  _do_scheduling;         // True if we intend to do scheduling
 404   bool                  _do_freq_based_layout;  // True if we intend to do frequency based block layout
 405   bool                  _do_count_invocations;  // True if we generate code to count invocations
 406   bool                  _do_method_data_update; // True if we generate code to update MethodData*s
 407   bool                  _do_vector_loop;        // True if allowed to execute loop in parallel iterations


 701   void          set_do_method_data_update(bool z) { _do_method_data_update = z; }
 702   bool              do_vector_loop() const      { return _do_vector_loop; }
 703   void          set_do_vector_loop(bool z)      { _do_vector_loop = z; }
 704   bool              use_cmove() const           { return _use_cmove; }
 705   void          set_use_cmove(bool z)           { _use_cmove = z; }
 706   bool              age_code() const             { return _age_code; }
 707   void          set_age_code(bool z)             { _age_code = z; }
 708   int               AliasLevel() const           { return _AliasLevel; }
 709   bool              print_assembly() const       { return _print_assembly; }
 710   void          set_print_assembly(bool z)       { _print_assembly = z; }
 711   bool              print_inlining() const       { return _print_inlining; }
 712   void          set_print_inlining(bool z)       { _print_inlining = z; }
 713   bool              print_intrinsics() const     { return _print_intrinsics; }
 714   void          set_print_intrinsics(bool z)     { _print_intrinsics = z; }
 715   RTMState          rtm_state()  const           { return _rtm_state; }
 716   void          set_rtm_state(RTMState s)        { _rtm_state = s; }
 717   bool              use_rtm() const              { return (_rtm_state & NoRTM) == 0; }
 718   bool          profile_rtm() const              { return _rtm_state == ProfileRTM; }
 719   uint              max_node_limit() const       { return (uint)_max_node_limit; }
 720   void          set_max_node_limit(uint n)       { _max_node_limit = n; }
 721 
 722   // Support for scalarized value type calling convention
 723   bool              has_scalarized_args() const  { return _method != NULL && _method->get_Method()->has_scalarized_args(); }
 724   bool              needs_stack_repair()  const  { return _method != NULL && _method->get_Method()->needs_stack_repair(); }
 725   SigEntry          get_res_entry()       const  { return _method->get_Method()->get_res_entry(); }
 726   int               sp_inc_offset()       const  { return _sp_inc_slot_offset_in_bytes; }
 727 
 728   // check the CompilerOracle for special behaviours for this compile
 729   bool          method_has_option(const char * option) {
 730     return method() != NULL && method()->has_option(option);
 731   }
 732 
 733 #ifndef PRODUCT
 734   bool          trace_opto_output() const       { return _trace_opto_output; }
 735   bool              parsed_irreducible_loop() const { return _parsed_irreducible_loop; }
 736   void          set_parsed_irreducible_loop(bool z) { _parsed_irreducible_loop = z; }
 737   int _in_dump_cnt;  // Required for dumping ir nodes.
 738 #endif
 739   bool              has_irreducible_loop() const { return _has_irreducible_loop; }
 740   void          set_has_irreducible_loop(bool z) { _has_irreducible_loop = z; }
 741 
 742   // JSR 292
 743   bool              has_method_handle_invokes() const { return _has_method_handle_invokes;     }
 744   void          set_has_method_handle_invokes(bool z) {        _has_method_handle_invokes = z; }
 745 
 746   Ticks _latest_stage_start_counter;


< prev index next >