< prev index next >

src/share/vm/opto/compile.hpp

Print this page




 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
 387   // JSR 292
 388   bool                  _has_method_handle_invokes; // True if this method has MethodHandle invokes.
 389   RTMState              _rtm_state;             // State of Restricted Transactional Memory usage
 390 
 391   // Compilation environment.
 392   Arena                 _comp_arena;            // Arena with lifetime equivalent to Compile
 393   ciEnv*                _env;                   // CI interface
 394   CompileLog*           _log;                   // from CompilerThread
 395   const char*           _failure_reason;        // for record_failure/failing pattern
 396   GrowableArray<CallGenerator*>* _intrinsics;   // List of intrinsics.


 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; }
 653   void          set_do_vector_loop(bool z)      { _do_vector_loop = z; }


 654   bool              age_code() const             { return _age_code; }
 655   void          set_age_code(bool z)             { _age_code = z; }
 656   int               AliasLevel() const           { return _AliasLevel; }
 657   bool              print_assembly() const       { return _print_assembly; }
 658   void          set_print_assembly(bool z)       { _print_assembly = z; }
 659   bool              print_inlining() const       { return _print_inlining; }
 660   void          set_print_inlining(bool z)       { _print_inlining = z; }
 661   bool              print_intrinsics() const     { return _print_intrinsics; }
 662   void          set_print_intrinsics(bool z)     { _print_intrinsics = z; }
 663   RTMState          rtm_state()  const           { return _rtm_state; }
 664   void          set_rtm_state(RTMState s)        { _rtm_state = s; }
 665   bool              use_rtm() const              { return (_rtm_state & NoRTM) == 0; }
 666   bool          profile_rtm() const              { return _rtm_state == ProfileRTM; }
 667   uint              max_node_limit() const       { return (uint)_max_node_limit; }
 668   void          set_max_node_limit(uint n)       { _max_node_limit = n; }
 669 
 670   // check the CompilerOracle for special behaviours for this compile
 671   bool          method_has_option(const char * option) {
 672     return method() != NULL && method()->has_option(option);
 673   }




 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                  _use_cmove;             // True if CMove should be used without profitability analysis
 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
 388   // JSR 292
 389   bool                  _has_method_handle_invokes; // True if this method has MethodHandle invokes.
 390   RTMState              _rtm_state;             // State of Restricted Transactional Memory usage
 391 
 392   // Compilation environment.
 393   Arena                 _comp_arena;            // Arena with lifetime equivalent to Compile
 394   ciEnv*                _env;                   // CI interface
 395   CompileLog*           _log;                   // from CompilerThread
 396   const char*           _failure_reason;        // for record_failure/failing pattern
 397   GrowableArray<CallGenerator*>* _intrinsics;   // List of intrinsics.


 635   void          set_max_vector_size(int s)      { _max_vector_size = s; }
 636   void          set_trap_count(uint r, uint c)  { assert(r < trapHistLength, "oob");        _trap_hist[r] = c; }
 637   uint              trap_count(uint r) const    { assert(r < trapHistLength, "oob"); return _trap_hist[r]; }
 638   bool              trap_can_recompile() const  { return _trap_can_recompile; }
 639   void          set_trap_can_recompile(bool z)  { _trap_can_recompile = z; }
 640   uint              decompile_count() const     { return _decompile_count; }
 641   void          set_decompile_count(uint c)     { _decompile_count = c; }
 642   bool              allow_range_check_smearing() const;
 643   bool              do_inlining() const         { return _do_inlining; }
 644   void          set_do_inlining(bool z)         { _do_inlining = z; }
 645   bool              do_scheduling() const       { return _do_scheduling; }
 646   void          set_do_scheduling(bool z)       { _do_scheduling = z; }
 647   bool              do_freq_based_layout() const{ return _do_freq_based_layout; }
 648   void          set_do_freq_based_layout(bool z){ _do_freq_based_layout = z; }
 649   bool              do_count_invocations() const{ return _do_count_invocations; }
 650   void          set_do_count_invocations(bool z){ _do_count_invocations = z; }
 651   bool              do_method_data_update() const { return _do_method_data_update; }
 652   void          set_do_method_data_update(bool z) { _do_method_data_update = z; }
 653   bool              do_vector_loop() const      { return _do_vector_loop; }
 654   void          set_do_vector_loop(bool z)      { _do_vector_loop = z; }
 655   bool              use_cmove() const           { return _use_cmove; }
 656   void          set_use_cmove(bool z)           { _use_cmove = z; }
 657   bool              age_code() const             { return _age_code; }
 658   void          set_age_code(bool z)             { _age_code = z; }
 659   int               AliasLevel() const           { return _AliasLevel; }
 660   bool              print_assembly() const       { return _print_assembly; }
 661   void          set_print_assembly(bool z)       { _print_assembly = z; }
 662   bool              print_inlining() const       { return _print_inlining; }
 663   void          set_print_inlining(bool z)       { _print_inlining = z; }
 664   bool              print_intrinsics() const     { return _print_intrinsics; }
 665   void          set_print_intrinsics(bool z)     { _print_intrinsics = z; }
 666   RTMState          rtm_state()  const           { return _rtm_state; }
 667   void          set_rtm_state(RTMState s)        { _rtm_state = s; }
 668   bool              use_rtm() const              { return (_rtm_state & NoRTM) == 0; }
 669   bool          profile_rtm() const              { return _rtm_state == ProfileRTM; }
 670   uint              max_node_limit() const       { return (uint)_max_node_limit; }
 671   void          set_max_node_limit(uint n)       { _max_node_limit = n; }
 672 
 673   // check the CompilerOracle for special behaviours for this compile
 674   bool          method_has_option(const char * option) {
 675     return method() != NULL && method()->has_option(option);
 676   }


< prev index next >