< prev index next >

src/hotspot/share/opto/loopnode.hpp

Print this page

        

*** 1283,1294 **** --- 1283,1296 ---- bool split_up( Node *n, Node *blk1, Node *blk2 ); void sink_use( Node *use, Node *post_loop ); 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: // Clone loop predicates to slow and fast loop when unswitching a loop Node* clone_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check, bool is_slow_loop, uint idx_before_clone, Node_List &old_new); ProjNode* clone_loop_predicate(ProjNode* predicate_proj, Node* new_entry, Deoptimization::DeoptReason reason,
*** 1308,1318 **** #endif #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 { // Dead nodes have no loop, so return the top level loop instead return _nodes[n->_idx] ? (IdealLoopTree*)_nodes[n->_idx] : _ltree_root; --- 1310,1319 ----
*** 1320,1329 **** --- 1321,1333 ---- // Print some stats static void print_statistics(); 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 // goes under non-reversible changes. //
< prev index next >