--- old/src/hotspot/share/opto/loopnode.hpp 2020-02-06 19:18:16.214549208 +0100 +++ new/src/hotspot/share/opto/loopnode.hpp 2020-02-06 19:18:16.046549223 +0100 @@ -1291,8 +1291,10 @@ Node *place_near_use( Node *useblock ) const; Node* try_move_store_before_loop(Node* n, Node *n_ctrl); void try_move_store_after_loop(Node* n); +public: bool identical_backtoback_ifs(Node *n); bool can_split_if(Node *n_ctrl); +private: bool _created_loop_node; public: @@ -1307,7 +1309,6 @@ #ifndef PRODUCT void dump( ) const; void dump( IdealLoopTree *loop, uint rpo_idx, Node_List &rpo_list ) const; - void rpo( Node *start, Node_Stack &stk, VectorSet &visited, Node_List &rpo_list ) const; void verify() const; // Major slow :-) void verify_compare( Node *n, const PhaseIdealLoop *loop_verify, VectorSet &visited ) const; IdealLoopTree *get_loop_idx(Node* n) const { @@ -1319,6 +1320,9 @@ static int _loop_invokes; // Count of PhaseIdealLoop invokes static int _loop_work; // Sum of PhaseIdealLoop x _unique #endif + void rpo( Node *start, Node_Stack &stk, VectorSet &visited, Node_List &rpo_list ) const; + + PhaseIterGVN& igvn() { return _igvn; } }; // This kit may be used for making of a reserved copy of a loop before this loop