src/share/vm/opto/compile.hpp

Print this page




 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   int                   _max_vector_size;       // Maximum size of generated vectors
 368   uint                  _trap_hist[trapHistLength];  // Cumulative traps
 369   bool                  _trap_can_recompile;    // Have we emitted a recompiling trap?
 370   uint                  _decompile_count;       // Cumulative decompilation counts.
 371   bool                  _do_inlining;           // True if we intend to do inlining
 372   bool                  _do_scheduling;         // True if we intend to do scheduling
 373   bool                  _do_freq_based_layout;  // True if we intend to do frequency based block layout
 374   bool                  _do_count_invocations;  // True if we generate code to count invocations
 375   bool                  _do_method_data_update; // True if we generate code to update MethodData*s
 376   bool                  _do_vector_loop;        // True if allowed to execute loop in parallel iterations
 377   bool                  _age_code;              // True if we need to profile code age (decrement the aging counter)
 378   int                   _AliasLevel;            // Locally-adjusted version of AliasLevel flag.
 379   bool                  _print_assembly;        // True if we should dump assembly code for this compilation
 380   bool                  _print_inlining;        // True if we should print inlining for this compilation
 381   bool                  _print_intrinsics;      // True if we should print intrinsics for this compilation
 382 #ifndef PRODUCT
 383   bool                  _trace_opto_output;
 384   bool                  _parsed_irreducible_loop; // True if ciTypeFlow detected irreducible loops during parsing
 385 #endif
 386   bool                  _has_irreducible_loop;  // Found irreducible loops


 613   void          set_inlining_incrementally(bool z) { _inlining_incrementally = z; }
 614   int               inlining_incrementally() const { return _inlining_incrementally; }
 615   void          set_major_progress()            { _major_progress++; }
 616   void        clear_major_progress()            { _major_progress = 0; }
 617   int               num_loop_opts() const       { return _num_loop_opts; }
 618   void          set_num_loop_opts(int n)        { _num_loop_opts = n; }
 619   int               max_inline_size() const     { return _max_inline_size; }
 620   void          set_freq_inline_size(int n)     { _freq_inline_size = n; }
 621   int               freq_inline_size() const    { return _freq_inline_size; }
 622   void          set_max_inline_size(int n)      { _max_inline_size = n; }
 623   bool              has_loops() const           { return _has_loops; }
 624   void          set_has_loops(bool z)           { _has_loops = z; }
 625   bool              has_split_ifs() const       { return _has_split_ifs; }
 626   void          set_has_split_ifs(bool z)       { _has_split_ifs = z; }
 627   bool              has_unsafe_access() const   { return _has_unsafe_access; }
 628   void          set_has_unsafe_access(bool z)   { _has_unsafe_access = z; }
 629   bool              has_stringbuilder() const   { return _has_stringbuilder; }
 630   void          set_has_stringbuilder(bool z)   { _has_stringbuilder = z; }
 631   bool              has_boxed_value() const     { return _has_boxed_value; }
 632   void          set_has_boxed_value(bool z)     { _has_boxed_value = z; }


 633   int               max_vector_size() const     { return _max_vector_size; }
 634   void          set_max_vector_size(int s)      { _max_vector_size = s; }
 635   void          set_trap_count(uint r, uint c)  { assert(r < trapHistLength, "oob");        _trap_hist[r] = c; }
 636   uint              trap_count(uint r) const    { assert(r < trapHistLength, "oob"); return _trap_hist[r]; }
 637   bool              trap_can_recompile() const  { return _trap_can_recompile; }
 638   void          set_trap_can_recompile(bool z)  { _trap_can_recompile = z; }
 639   uint              decompile_count() const     { return _decompile_count; }
 640   void          set_decompile_count(uint c)     { _decompile_count = c; }
 641   bool              allow_range_check_smearing() const;
 642   bool              do_inlining() const         { return _do_inlining; }
 643   void          set_do_inlining(bool z)         { _do_inlining = z; }
 644   bool              do_scheduling() const       { return _do_scheduling; }
 645   void          set_do_scheduling(bool z)       { _do_scheduling = z; }
 646   bool              do_freq_based_layout() const{ return _do_freq_based_layout; }
 647   void          set_do_freq_based_layout(bool z){ _do_freq_based_layout = z; }
 648   bool              do_count_invocations() const{ return _do_count_invocations; }
 649   void          set_do_count_invocations(bool z){ _do_count_invocations = z; }
 650   bool              do_method_data_update() const { return _do_method_data_update; }
 651   void          set_do_method_data_update(bool z) { _do_method_data_update = z; }
 652   bool              do_vector_loop() const      { return _do_vector_loop; }




 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                  _age_code;              // True if we need to profile code age (decrement the aging counter)
 379   int                   _AliasLevel;            // Locally-adjusted version of AliasLevel flag.
 380   bool                  _print_assembly;        // True if we should dump assembly code for this compilation
 381   bool                  _print_inlining;        // True if we should print inlining for this compilation
 382   bool                  _print_intrinsics;      // True if we should print intrinsics for this compilation
 383 #ifndef PRODUCT
 384   bool                  _trace_opto_output;
 385   bool                  _parsed_irreducible_loop; // True if ciTypeFlow detected irreducible loops during parsing
 386 #endif
 387   bool                  _has_irreducible_loop;  // Found irreducible loops


 614   void          set_inlining_incrementally(bool z) { _inlining_incrementally = z; }
 615   int               inlining_incrementally() const { return _inlining_incrementally; }
 616   void          set_major_progress()            { _major_progress++; }
 617   void        clear_major_progress()            { _major_progress = 0; }
 618   int               num_loop_opts() const       { return _num_loop_opts; }
 619   void          set_num_loop_opts(int n)        { _num_loop_opts = n; }
 620   int               max_inline_size() const     { return _max_inline_size; }
 621   void          set_freq_inline_size(int n)     { _freq_inline_size = n; }
 622   int               freq_inline_size() const    { return _freq_inline_size; }
 623   void          set_max_inline_size(int n)      { _max_inline_size = n; }
 624   bool              has_loops() const           { return _has_loops; }
 625   void          set_has_loops(bool z)           { _has_loops = z; }
 626   bool              has_split_ifs() const       { return _has_split_ifs; }
 627   void          set_has_split_ifs(bool z)       { _has_split_ifs = z; }
 628   bool              has_unsafe_access() const   { return _has_unsafe_access; }
 629   void          set_has_unsafe_access(bool z)   { _has_unsafe_access = z; }
 630   bool              has_stringbuilder() const   { return _has_stringbuilder; }
 631   void          set_has_stringbuilder(bool z)   { _has_stringbuilder = z; }
 632   bool              has_boxed_value() const     { return _has_boxed_value; }
 633   void          set_has_boxed_value(bool z)     { _has_boxed_value = z; }
 634   bool              has_reserved_stack_access() const { return _has_reserved_stack_access; }
 635   void          set_has_reserved_stack_access(bool z) { _has_reserved_stack_access = z; }
 636   int               max_vector_size() const     { return _max_vector_size; }
 637   void          set_max_vector_size(int s)      { _max_vector_size = s; }
 638   void          set_trap_count(uint r, uint c)  { assert(r < trapHistLength, "oob");        _trap_hist[r] = c; }
 639   uint              trap_count(uint r) const    { assert(r < trapHistLength, "oob"); return _trap_hist[r]; }
 640   bool              trap_can_recompile() const  { return _trap_can_recompile; }
 641   void          set_trap_can_recompile(bool z)  { _trap_can_recompile = z; }
 642   uint              decompile_count() const     { return _decompile_count; }
 643   void          set_decompile_count(uint c)     { _decompile_count = c; }
 644   bool              allow_range_check_smearing() const;
 645   bool              do_inlining() const         { return _do_inlining; }
 646   void          set_do_inlining(bool z)         { _do_inlining = z; }
 647   bool              do_scheduling() const       { return _do_scheduling; }
 648   void          set_do_scheduling(bool z)       { _do_scheduling = z; }
 649   bool              do_freq_based_layout() const{ return _do_freq_based_layout; }
 650   void          set_do_freq_based_layout(bool z){ _do_freq_based_layout = z; }
 651   bool              do_count_invocations() const{ return _do_count_invocations; }
 652   void          set_do_count_invocations(bool z){ _do_count_invocations = z; }
 653   bool              do_method_data_update() const { return _do_method_data_update; }
 654   void          set_do_method_data_update(bool z) { _do_method_data_update = z; }
 655   bool              do_vector_loop() const      { return _do_vector_loop; }