< prev index next >

src/hotspot/share/opto/loopnode.hpp

Print this page

 858   void collect_loop_core_nodes(PhaseIdealLoop* phase, Unique_Node_List& wq) const;
 859 
 860   bool empty_loop_with_data_nodes(PhaseIdealLoop* phase) const;
 861 
 862   void enqueue_data_nodes(PhaseIdealLoop* phase, Unique_Node_List& empty_loop_nodes, Unique_Node_List& wq) const;
 863 
 864   bool process_safepoint(PhaseIdealLoop* phase, Unique_Node_List& empty_loop_nodes, Unique_Node_List& wq,
 865                          Node* sfpt) const;
 866 
 867   bool empty_loop_candidate(PhaseIdealLoop* phase) const;
 868 
 869   bool empty_loop_with_extra_nodes_candidate(PhaseIdealLoop* phase) const;
 870 };
 871 
 872 // -----------------------------PhaseIdealLoop---------------------------------
 873 // Computes the mapping from Nodes to IdealLoopTrees. Organizes IdealLoopTrees
 874 // into a loop tree. Drives the loop-based transformations on the ideal graph.
 875 class PhaseIdealLoop : public PhaseTransform {
 876   friend class IdealLoopTree;
 877   friend class SuperWord;
 878   friend class ShenandoahBarrierC2Support;
 879   friend class AutoNodeBudget;
 880 
 881   Arena _arena; // For data whose lifetime is a single pass of loop optimizations
 882 
 883   // Map loop membership for CFG nodes, and ctrl for non-CFG nodes.
 884   //
 885   // Exception: dead CFG nodes may instead have a ctrl/idom forwarding
 886   //            installed. See: forward_ctrl
 887   Node_List _loop_or_ctrl;
 888 
 889   // Pre-computed def-use info
 890   PhaseIterGVN &_igvn;
 891 
 892   // Head of loop tree
 893   IdealLoopTree* _ltree_root;
 894 
 895   // Array of pre-order numbers, plus post-visited bit.
 896   // ZERO for not pre-visited.  EVEN for pre-visited but not post-visited.
 897   // ODD for post-visited.  Other bits are the pre-order number.
 898   uint *_preorders;

 858   void collect_loop_core_nodes(PhaseIdealLoop* phase, Unique_Node_List& wq) const;
 859 
 860   bool empty_loop_with_data_nodes(PhaseIdealLoop* phase) const;
 861 
 862   void enqueue_data_nodes(PhaseIdealLoop* phase, Unique_Node_List& empty_loop_nodes, Unique_Node_List& wq) const;
 863 
 864   bool process_safepoint(PhaseIdealLoop* phase, Unique_Node_List& empty_loop_nodes, Unique_Node_List& wq,
 865                          Node* sfpt) const;
 866 
 867   bool empty_loop_candidate(PhaseIdealLoop* phase) const;
 868 
 869   bool empty_loop_with_extra_nodes_candidate(PhaseIdealLoop* phase) const;
 870 };
 871 
 872 // -----------------------------PhaseIdealLoop---------------------------------
 873 // Computes the mapping from Nodes to IdealLoopTrees. Organizes IdealLoopTrees
 874 // into a loop tree. Drives the loop-based transformations on the ideal graph.
 875 class PhaseIdealLoop : public PhaseTransform {
 876   friend class IdealLoopTree;
 877   friend class SuperWord;

 878   friend class AutoNodeBudget;
 879 
 880   Arena _arena; // For data whose lifetime is a single pass of loop optimizations
 881 
 882   // Map loop membership for CFG nodes, and ctrl for non-CFG nodes.
 883   //
 884   // Exception: dead CFG nodes may instead have a ctrl/idom forwarding
 885   //            installed. See: forward_ctrl
 886   Node_List _loop_or_ctrl;
 887 
 888   // Pre-computed def-use info
 889   PhaseIterGVN &_igvn;
 890 
 891   // Head of loop tree
 892   IdealLoopTree* _ltree_root;
 893 
 894   // Array of pre-order numbers, plus post-visited bit.
 895   // ZERO for not pre-visited.  EVEN for pre-visited but not post-visited.
 896   // ODD for post-visited.  Other bits are the pre-order number.
 897   uint *_preorders;
< prev index next >