< prev index next >

src/hotspot/share/opto/compile.hpp

Print this page

 319   bool                  _trap_can_recompile;    // Have we emitted a recompiling trap?
 320   uint                  _decompile_count;       // Cumulative decompilation counts.
 321   bool                  _do_inlining;           // True if we intend to do inlining
 322   bool                  _do_scheduling;         // True if we intend to do scheduling
 323   bool                  _do_freq_based_layout;  // True if we intend to do frequency based block layout
 324   bool                  _do_vector_loop;        // True if allowed to execute loop in parallel iterations
 325   bool                  _use_cmove;             // True if CMove should be used without profitability analysis
 326   bool                  _do_aliasing;           // True if we intend to do aliasing
 327   bool                  _print_assembly;        // True if we should dump assembly code for this compilation
 328   bool                  _print_inlining;        // True if we should print inlining for this compilation
 329   bool                  _print_intrinsics;      // True if we should print intrinsics for this compilation
 330 #ifndef PRODUCT
 331   uint                  _igv_idx;               // Counter for IGV node identifiers
 332   bool                  _trace_opto_output;
 333   bool                  _parsed_irreducible_loop; // True if ciTypeFlow detected irreducible loops during parsing
 334 #endif
 335   bool                  _has_irreducible_loop;  // Found irreducible loops
 336   // JSR 292
 337   bool                  _has_method_handle_invokes; // True if this method has MethodHandle invokes.
 338   bool                  _has_monitors;          // Metadata transfered to nmethod to enable Continuations lock-detection fastpath

 339   RTMState              _rtm_state;             // State of Restricted Transactional Memory usage
 340   int                   _loop_opts_cnt;         // loop opts round
 341   bool                  _clinit_barrier_on_entry; // True if clinit barrier is needed on nmethod entry
 342   uint                  _stress_seed;           // Seed for stress testing
 343 
 344   // Compilation environment.
 345   Arena                 _comp_arena;            // Arena with lifetime equivalent to Compile
 346   void*                 _barrier_set_state;     // Potential GC barrier state for Compile
 347   ciEnv*                _env;                   // CI interface
 348   DirectiveSet*         _directive;             // Compiler directive
 349   CompileLog*           _log;                   // from CompilerThread
 350   const char*           _failure_reason;        // for record_failure/failing pattern
 351   GrowableArray<CallGenerator*> _intrinsics;    // List of intrinsics.
 352   GrowableArray<Node*>  _macro_nodes;           // List of nodes which need to be expanded before matching.
 353   GrowableArray<Node*>  _predicate_opaqs;       // List of Opaque1 nodes for the loop predicates.
 354   GrowableArray<Node*>  _skeleton_predicate_opaqs; // List of Opaque4 nodes for the loop skeleton predicates.
 355   GrowableArray<Node*>  _expensive_nodes;       // List of nodes that are expensive to compute and that we'd better not let the GVN freely common
 356   GrowableArray<Node*>  _for_post_loop_igvn;    // List of nodes for IGVN after loop opts are over
 357   GrowableArray<UnstableIfTrap*> _unstable_if_traps;        // List of ifnodes after IGVN
 358   GrowableArray<Node_List*> _coarsened_locks;   // List of coarsened Lock and Unlock nodes

 613   bool              use_cmove() const           { return _use_cmove; }
 614   void          set_use_cmove(bool z)           { _use_cmove = z; }
 615   bool              do_aliasing() const          { return _do_aliasing; }
 616   bool              print_assembly() const       { return _print_assembly; }
 617   void          set_print_assembly(bool z)       { _print_assembly = z; }
 618   bool              print_inlining() const       { return _print_inlining; }
 619   void          set_print_inlining(bool z)       { _print_inlining = z; }
 620   bool              print_intrinsics() const     { return _print_intrinsics; }
 621   void          set_print_intrinsics(bool z)     { _print_intrinsics = z; }
 622   RTMState          rtm_state()  const           { return _rtm_state; }
 623   void          set_rtm_state(RTMState s)        { _rtm_state = s; }
 624   bool              use_rtm() const              { return (_rtm_state & NoRTM) == 0; }
 625   bool          profile_rtm() const              { return _rtm_state == ProfileRTM; }
 626   uint              max_node_limit() const       { return (uint)_max_node_limit; }
 627   void          set_max_node_limit(uint n)       { _max_node_limit = n; }
 628   bool              clinit_barrier_on_entry()       { return _clinit_barrier_on_entry; }
 629   void          set_clinit_barrier_on_entry(bool z) { _clinit_barrier_on_entry = z; }
 630   bool              has_monitors() const         { return _has_monitors; }
 631   void          set_has_monitors(bool v)         { _has_monitors = v; }
 632 




 633   // check the CompilerOracle for special behaviours for this compile
 634   bool          method_has_option(enum CompileCommand option) {
 635     return method() != NULL && method()->has_option(option);
 636   }
 637 
 638 #ifndef PRODUCT
 639   uint          next_igv_idx()                  { return _igv_idx++; }
 640   bool          trace_opto_output() const       { return _trace_opto_output; }
 641   void          print_ideal_ir(const char* phase_name);
 642   bool          should_print_ideal() const      { return _directive->PrintIdealOption; }
 643   bool              parsed_irreducible_loop() const { return _parsed_irreducible_loop; }
 644   void          set_parsed_irreducible_loop(bool z) { _parsed_irreducible_loop = z; }
 645   int _in_dump_cnt;  // Required for dumping ir nodes.
 646 #endif
 647   bool              has_irreducible_loop() const { return _has_irreducible_loop; }
 648   void          set_has_irreducible_loop(bool z) { _has_irreducible_loop = z; }
 649 
 650   // JSR 292
 651   bool              has_method_handle_invokes() const { return _has_method_handle_invokes;     }
 652   void          set_has_method_handle_invokes(bool z) {        _has_method_handle_invokes = z; }

 319   bool                  _trap_can_recompile;    // Have we emitted a recompiling trap?
 320   uint                  _decompile_count;       // Cumulative decompilation counts.
 321   bool                  _do_inlining;           // True if we intend to do inlining
 322   bool                  _do_scheduling;         // True if we intend to do scheduling
 323   bool                  _do_freq_based_layout;  // True if we intend to do frequency based block layout
 324   bool                  _do_vector_loop;        // True if allowed to execute loop in parallel iterations
 325   bool                  _use_cmove;             // True if CMove should be used without profitability analysis
 326   bool                  _do_aliasing;           // True if we intend to do aliasing
 327   bool                  _print_assembly;        // True if we should dump assembly code for this compilation
 328   bool                  _print_inlining;        // True if we should print inlining for this compilation
 329   bool                  _print_intrinsics;      // True if we should print intrinsics for this compilation
 330 #ifndef PRODUCT
 331   uint                  _igv_idx;               // Counter for IGV node identifiers
 332   bool                  _trace_opto_output;
 333   bool                  _parsed_irreducible_loop; // True if ciTypeFlow detected irreducible loops during parsing
 334 #endif
 335   bool                  _has_irreducible_loop;  // Found irreducible loops
 336   // JSR 292
 337   bool                  _has_method_handle_invokes; // True if this method has MethodHandle invokes.
 338   bool                  _has_monitors;          // Metadata transfered to nmethod to enable Continuations lock-detection fastpath
 339   uint                  _max_monitors;          // Keep track of maximum number of active monitors in this compilation
 340   RTMState              _rtm_state;             // State of Restricted Transactional Memory usage
 341   int                   _loop_opts_cnt;         // loop opts round
 342   bool                  _clinit_barrier_on_entry; // True if clinit barrier is needed on nmethod entry
 343   uint                  _stress_seed;           // Seed for stress testing
 344 
 345   // Compilation environment.
 346   Arena                 _comp_arena;            // Arena with lifetime equivalent to Compile
 347   void*                 _barrier_set_state;     // Potential GC barrier state for Compile
 348   ciEnv*                _env;                   // CI interface
 349   DirectiveSet*         _directive;             // Compiler directive
 350   CompileLog*           _log;                   // from CompilerThread
 351   const char*           _failure_reason;        // for record_failure/failing pattern
 352   GrowableArray<CallGenerator*> _intrinsics;    // List of intrinsics.
 353   GrowableArray<Node*>  _macro_nodes;           // List of nodes which need to be expanded before matching.
 354   GrowableArray<Node*>  _predicate_opaqs;       // List of Opaque1 nodes for the loop predicates.
 355   GrowableArray<Node*>  _skeleton_predicate_opaqs; // List of Opaque4 nodes for the loop skeleton predicates.
 356   GrowableArray<Node*>  _expensive_nodes;       // List of nodes that are expensive to compute and that we'd better not let the GVN freely common
 357   GrowableArray<Node*>  _for_post_loop_igvn;    // List of nodes for IGVN after loop opts are over
 358   GrowableArray<UnstableIfTrap*> _unstable_if_traps;        // List of ifnodes after IGVN
 359   GrowableArray<Node_List*> _coarsened_locks;   // List of coarsened Lock and Unlock nodes

 614   bool              use_cmove() const           { return _use_cmove; }
 615   void          set_use_cmove(bool z)           { _use_cmove = z; }
 616   bool              do_aliasing() const          { return _do_aliasing; }
 617   bool              print_assembly() const       { return _print_assembly; }
 618   void          set_print_assembly(bool z)       { _print_assembly = z; }
 619   bool              print_inlining() const       { return _print_inlining; }
 620   void          set_print_inlining(bool z)       { _print_inlining = z; }
 621   bool              print_intrinsics() const     { return _print_intrinsics; }
 622   void          set_print_intrinsics(bool z)     { _print_intrinsics = z; }
 623   RTMState          rtm_state()  const           { return _rtm_state; }
 624   void          set_rtm_state(RTMState s)        { _rtm_state = s; }
 625   bool              use_rtm() const              { return (_rtm_state & NoRTM) == 0; }
 626   bool          profile_rtm() const              { return _rtm_state == ProfileRTM; }
 627   uint              max_node_limit() const       { return (uint)_max_node_limit; }
 628   void          set_max_node_limit(uint n)       { _max_node_limit = n; }
 629   bool              clinit_barrier_on_entry()       { return _clinit_barrier_on_entry; }
 630   void          set_clinit_barrier_on_entry(bool z) { _clinit_barrier_on_entry = z; }
 631   bool              has_monitors() const         { return _has_monitors; }
 632   void          set_has_monitors(bool v)         { _has_monitors = v; }
 633 
 634   void          push_monitor() { _max_monitors++; }
 635   void          reset_max_monitors() { _max_monitors = 0; }
 636   uint          max_monitors() { return _max_monitors; }
 637 
 638   // check the CompilerOracle for special behaviours for this compile
 639   bool          method_has_option(enum CompileCommand option) {
 640     return method() != NULL && method()->has_option(option);
 641   }
 642 
 643 #ifndef PRODUCT
 644   uint          next_igv_idx()                  { return _igv_idx++; }
 645   bool          trace_opto_output() const       { return _trace_opto_output; }
 646   void          print_ideal_ir(const char* phase_name);
 647   bool          should_print_ideal() const      { return _directive->PrintIdealOption; }
 648   bool              parsed_irreducible_loop() const { return _parsed_irreducible_loop; }
 649   void          set_parsed_irreducible_loop(bool z) { _parsed_irreducible_loop = z; }
 650   int _in_dump_cnt;  // Required for dumping ir nodes.
 651 #endif
 652   bool              has_irreducible_loop() const { return _has_irreducible_loop; }
 653   void          set_has_irreducible_loop(bool z) { _has_irreducible_loop = z; }
 654 
 655   // JSR 292
 656   bool              has_method_handle_invokes() const { return _has_method_handle_invokes;     }
 657   void          set_has_method_handle_invokes(bool z) {        _has_method_handle_invokes = z; }
< prev index next >