src/share/vm/opto/node.hpp

changeset 4589
8b3da8d14c93
parent 4478
a7114d3d712e
child 5110
6f3fd5150b67
     1.1 --- a/src/share/vm/opto/node.hpp	Mon Feb 11 14:47:04 2013 -0800
     1.2 +++ b/src/share/vm/opto/node.hpp	Tue Feb 12 12:56:11 2013 +0100
     1.3 @@ -378,6 +378,8 @@
     1.4    bool is_dead() const;
     1.5  #define is_not_dead(n) ((n) == NULL || !VerifyIterativeGVN || !((n)->is_dead()))
     1.6  #endif
     1.7 +  // Check whether node has become unreachable
     1.8 +  bool is_unreachable(PhaseIterGVN &igvn) const;
     1.9  
    1.10    // Set a required input edge, also updates corresponding output edge
    1.11    void add_req( Node *n ); // Append a NEW required input
    1.12 @@ -646,7 +648,8 @@
    1.13      Flag_may_be_short_branch = Flag_is_dead_loop_safe << 1,
    1.14      Flag_avoid_back_to_back  = Flag_may_be_short_branch << 1,
    1.15      Flag_has_call            = Flag_avoid_back_to_back << 1,
    1.16 -    _max_flags = (Flag_has_call << 1) - 1 // allow flags combination
    1.17 +    Flag_is_expensive        = Flag_has_call << 1,
    1.18 +    _max_flags = (Flag_is_expensive << 1) - 1 // allow flags combination
    1.19    };
    1.20  
    1.21  private:
    1.22 @@ -819,6 +822,8 @@
    1.23  
    1.24    // The node is a "macro" node which needs to be expanded before matching
    1.25    bool is_macro() const { return (_flags & Flag_is_macro) != 0; }
    1.26 +  // The node is expensive: the best control is set during loop opts
    1.27 +  bool is_expensive() const { return (_flags & Flag_is_expensive) != 0 && in(0) != NULL; }
    1.28  
    1.29  //----------------- Optimization
    1.30  

mercurial