src/share/vm/opto/compile.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8148754-cr Sdiff src/share/vm/opto

src/share/vm/opto/compile.hpp

Print this page




 339   const bool            _eliminate_boxing;      // Do boxing elimination.
 340   ciMethod*             _method;                // The method being compiled.
 341   int                   _entry_bci;             // entry bci for osr methods.
 342   const TypeFunc*       _tf;                    // My kind of signature
 343   InlineTree*           _ilt;                   // Ditto (temporary).
 344   address               _stub_function;         // VM entry for stub being compiled, or NULL
 345   const char*           _stub_name;             // Name of stub or adapter being compiled, or NULL
 346   address               _stub_entry_point;      // Compile code entry for generated stub, or NULL
 347 
 348   // Control of this compilation.
 349   int                   _num_loop_opts;         // Number of iterations for doing loop optimiztions
 350   int                   _max_inline_size;       // Max inline size for this compilation
 351   int                   _freq_inline_size;      // Max hot method inline size for this compilation
 352   int                   _fixed_slots;           // count of frame slots not allocated by the register
 353                                                 // allocator i.e. locks, original deopt pc, etc.
 354   uintx                 _max_node_limit;        // Max unique node count during a single compilation.
 355   // For deopt
 356   int                   _orig_pc_slot;
 357   int                   _orig_pc_slot_offset_in_bytes;
 358 
 359   int                   _major_progress;        // Count of something big happening







 360   bool                  _inlining_progress;     // progress doing incremental inlining?
 361   bool                  _inlining_incrementally;// Are we doing incremental inlining (post parse)
 362   bool                  _has_loops;             // True if the method _may_ have some loops
 363   bool                  _has_split_ifs;         // True if the method _may_ have some split-if
 364   bool                  _has_unsafe_access;     // True if the method _may_ produce faults in unsafe loads or stores.
 365   bool                  _has_stringbuilder;     // True StringBuffers or StringBuilders are allocated
 366   bool                  _has_boxed_value;       // True if a boxed object is allocated
 367   bool                  _has_reserved_stack_access; // True if the method or an inlined method is annotated with ReservedStackAccess
 368   int                   _max_vector_size;       // Maximum size of generated vectors
 369   uint                  _trap_hist[trapHistLength];  // Cumulative traps
 370   bool                  _trap_can_recompile;    // Have we emitted a recompiling trap?
 371   uint                  _decompile_count;       // Cumulative decompilation counts.
 372   bool                  _do_inlining;           // True if we intend to do inlining
 373   bool                  _do_scheduling;         // True if we intend to do scheduling
 374   bool                  _do_freq_based_layout;  // True if we intend to do frequency based block layout
 375   bool                  _do_count_invocations;  // True if we generate code to count invocations
 376   bool                  _do_method_data_update; // True if we generate code to update MethodData*s
 377   bool                  _do_vector_loop;        // True if allowed to execute loop in parallel iterations
 378   bool                  _use_cmove;             // True if CMove should be used without profitability analysis
 379   bool                  _age_code;              // True if we need to profile code age (decrement the aging counter)


 599   /** Do aggressive boxing elimination. */
 600   bool              aggressive_unboxing() const { return _eliminate_boxing && AggressiveUnboxing; }
 601   bool              save_argument_registers() const { return _save_argument_registers; }
 602 
 603 
 604   // Other fixed compilation parameters.
 605   ciMethod*         method() const              { return _method; }
 606   int               entry_bci() const           { return _entry_bci; }
 607   bool              is_osr_compilation() const  { return _entry_bci != InvocationEntryBci; }
 608   bool              is_method_compilation() const { return (_method != NULL && !_method->flags().is_native()); }
 609   const TypeFunc*   tf() const                  { assert(_tf!=NULL, ""); return _tf; }
 610   void         init_tf(const TypeFunc* tf)      { assert(_tf==NULL, ""); _tf = tf; }
 611   InlineTree*       ilt() const                 { return _ilt; }
 612   address           stub_function() const       { return _stub_function; }
 613   const char*       stub_name() const           { return _stub_name; }
 614   address           stub_entry_point() const    { return _stub_entry_point; }
 615 
 616   // Control of this compilation.
 617   int               fixed_slots() const         { assert(_fixed_slots >= 0, "");         return _fixed_slots; }
 618   void          set_fixed_slots(int n)          { _fixed_slots = n; }
 619   int               major_progress() const      { return _major_progress; }
 620   void          set_inlining_progress(bool z)   { _inlining_progress = z; }
 621   int               inlining_progress() const   { return _inlining_progress; }
 622   void          set_inlining_incrementally(bool z) { _inlining_incrementally = z; }
 623   int               inlining_incrementally() const { return _inlining_incrementally; }
 624   void          set_major_progress()            { _major_progress++; }
 625   void        clear_major_progress()            { _major_progress = 0; }
 626   int               num_loop_opts() const       { return _num_loop_opts; }
 627   void          set_num_loop_opts(int n)        { _num_loop_opts = n; }
 628   int               max_inline_size() const     { return _max_inline_size; }
 629   void          set_freq_inline_size(int n)     { _freq_inline_size = n; }
 630   int               freq_inline_size() const    { return _freq_inline_size; }
 631   void          set_max_inline_size(int n)      { _max_inline_size = n; }
 632   bool              has_loops() const           { return _has_loops; }
 633   void          set_has_loops(bool z)           { _has_loops = z; }
 634   bool              has_split_ifs() const       { return _has_split_ifs; }
 635   void          set_has_split_ifs(bool z)       { _has_split_ifs = z; }
 636   bool              has_unsafe_access() const   { return _has_unsafe_access; }
 637   void          set_has_unsafe_access(bool z)   { _has_unsafe_access = z; }
 638   bool              has_stringbuilder() const   { return _has_stringbuilder; }
 639   void          set_has_stringbuilder(bool z)   { _has_stringbuilder = z; }
 640   bool              has_boxed_value() const     { return _has_boxed_value; }
 641   void          set_has_boxed_value(bool z)     { _has_boxed_value = z; }
 642   bool              has_reserved_stack_access() const { return _has_reserved_stack_access; }
 643   void          set_has_reserved_stack_access(bool z) { _has_reserved_stack_access = z; }
 644   int               max_vector_size() const     { return _max_vector_size; }
 645   void          set_max_vector_size(int s)      { _max_vector_size = s; }




 339   const bool            _eliminate_boxing;      // Do boxing elimination.
 340   ciMethod*             _method;                // The method being compiled.
 341   int                   _entry_bci;             // entry bci for osr methods.
 342   const TypeFunc*       _tf;                    // My kind of signature
 343   InlineTree*           _ilt;                   // Ditto (temporary).
 344   address               _stub_function;         // VM entry for stub being compiled, or NULL
 345   const char*           _stub_name;             // Name of stub or adapter being compiled, or NULL
 346   address               _stub_entry_point;      // Compile code entry for generated stub, or NULL
 347 
 348   // Control of this compilation.
 349   int                   _num_loop_opts;         // Number of iterations for doing loop optimiztions
 350   int                   _max_inline_size;       // Max inline size for this compilation
 351   int                   _freq_inline_size;      // Max hot method inline size for this compilation
 352   int                   _fixed_slots;           // count of frame slots not allocated by the register
 353                                                 // allocator i.e. locks, original deopt pc, etc.
 354   uintx                 _max_node_limit;        // Max unique node count during a single compilation.
 355   // For deopt
 356   int                   _orig_pc_slot;
 357   int                   _orig_pc_slot_offset_in_bytes;
 358 
 359   bool                   _major_progress;       // Flag to indicate that the compiler expects loop optimizations to happen.
 360                                                 // The following convention guides the usage of _major_progress:
 361                                                 // - The flag can be SET when the compiler is initialized because loop
 362                                                 //   optimizations are expected to happen afterwards;
 363                                                 // - The flag can be SET/RESET in the scope of loop optimizations so that
 364                                                 //   it is possible to check if loop optimizations made progress;
 365                                                 // - The flag cannot be SET/RESET by neither incremental inlining nor (I)GVN,
 366                                                 //   even if the (I)GVN is performed in the scope of loop optimizations.
 367   bool                  _inlining_progress;     // progress doing incremental inlining?
 368   bool                  _inlining_incrementally;// Are we doing incremental inlining (post parse)
 369   bool                  _has_loops;             // True if the method _may_ have some loops
 370   bool                  _has_split_ifs;         // True if the method _may_ have some split-if
 371   bool                  _has_unsafe_access;     // True if the method _may_ produce faults in unsafe loads or stores.
 372   bool                  _has_stringbuilder;     // True StringBuffers or StringBuilders are allocated
 373   bool                  _has_boxed_value;       // True if a boxed object is allocated
 374   bool                  _has_reserved_stack_access; // True if the method or an inlined method is annotated with ReservedStackAccess
 375   int                   _max_vector_size;       // Maximum size of generated vectors
 376   uint                  _trap_hist[trapHistLength];  // Cumulative traps
 377   bool                  _trap_can_recompile;    // Have we emitted a recompiling trap?
 378   uint                  _decompile_count;       // Cumulative decompilation counts.
 379   bool                  _do_inlining;           // True if we intend to do inlining
 380   bool                  _do_scheduling;         // True if we intend to do scheduling
 381   bool                  _do_freq_based_layout;  // True if we intend to do frequency based block layout
 382   bool                  _do_count_invocations;  // True if we generate code to count invocations
 383   bool                  _do_method_data_update; // True if we generate code to update MethodData*s
 384   bool                  _do_vector_loop;        // True if allowed to execute loop in parallel iterations
 385   bool                  _use_cmove;             // True if CMove should be used without profitability analysis
 386   bool                  _age_code;              // True if we need to profile code age (decrement the aging counter)


 606   /** Do aggressive boxing elimination. */
 607   bool              aggressive_unboxing() const { return _eliminate_boxing && AggressiveUnboxing; }
 608   bool              save_argument_registers() const { return _save_argument_registers; }
 609 
 610 
 611   // Other fixed compilation parameters.
 612   ciMethod*         method() const              { return _method; }
 613   int               entry_bci() const           { return _entry_bci; }
 614   bool              is_osr_compilation() const  { return _entry_bci != InvocationEntryBci; }
 615   bool              is_method_compilation() const { return (_method != NULL && !_method->flags().is_native()); }
 616   const TypeFunc*   tf() const                  { assert(_tf!=NULL, ""); return _tf; }
 617   void         init_tf(const TypeFunc* tf)      { assert(_tf==NULL, ""); _tf = tf; }
 618   InlineTree*       ilt() const                 { return _ilt; }
 619   address           stub_function() const       { return _stub_function; }
 620   const char*       stub_name() const           { return _stub_name; }
 621   address           stub_entry_point() const    { return _stub_entry_point; }
 622 
 623   // Control of this compilation.
 624   int               fixed_slots() const         { assert(_fixed_slots >= 0, "");         return _fixed_slots; }
 625   void          set_fixed_slots(int n)          { _fixed_slots = n; }
 626   bool              major_progress() const      { return _major_progress; }
 627   void          set_inlining_progress(bool z)   { _inlining_progress = z; }
 628   int               inlining_progress() const   { return _inlining_progress; }
 629   void          set_inlining_incrementally(bool z) { _inlining_incrementally = z; }
 630   int               inlining_incrementally() const { return _inlining_incrementally; }
 631   void          set_major_progress()            { _major_progress = true; }
 632   void        clear_major_progress()            { _major_progress = false; }
 633   int               num_loop_opts() const       { return _num_loop_opts; }
 634   void          set_num_loop_opts(int n)        { _num_loop_opts = n; }
 635   int               max_inline_size() const     { return _max_inline_size; }
 636   void          set_freq_inline_size(int n)     { _freq_inline_size = n; }
 637   int               freq_inline_size() const    { return _freq_inline_size; }
 638   void          set_max_inline_size(int n)      { _max_inline_size = n; }
 639   bool              has_loops() const           { return _has_loops; }
 640   void          set_has_loops(bool z)           { _has_loops = z; }
 641   bool              has_split_ifs() const       { return _has_split_ifs; }
 642   void          set_has_split_ifs(bool z)       { _has_split_ifs = z; }
 643   bool              has_unsafe_access() const   { return _has_unsafe_access; }
 644   void          set_has_unsafe_access(bool z)   { _has_unsafe_access = z; }
 645   bool              has_stringbuilder() const   { return _has_stringbuilder; }
 646   void          set_has_stringbuilder(bool z)   { _has_stringbuilder = z; }
 647   bool              has_boxed_value() const     { return _has_boxed_value; }
 648   void          set_has_boxed_value(bool z)     { _has_boxed_value = z; }
 649   bool              has_reserved_stack_access() const { return _has_reserved_stack_access; }
 650   void          set_has_reserved_stack_access(bool z) { _has_reserved_stack_access = z; }
 651   int               max_vector_size() const     { return _max_vector_size; }
 652   void          set_max_vector_size(int s)      { _max_vector_size = s; }


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