< prev index next >

src/share/vm/opto/superword.hpp

Print this page




 224   CloneMap&                 _clone_map;  // map of nodes created in cloning
 225 
 226   MemNode* _align_to_ref;                // Memory reference that pre-loop will align to
 227 
 228   GrowableArray<OrderedPair> _disjoint_ptrs; // runtime disambiguated pointer pairs
 229 
 230   DepGraph _dg; // Dependence graph
 231 
 232   // Scratch pads
 233   VectorSet    _visited;       // Visited set
 234   VectorSet    _post_visited;  // Post-visited set
 235   Node_Stack   _n_idx_list;    // List of (node,index) pairs
 236   GrowableArray<Node*> _nlist; // List of nodes
 237   GrowableArray<Node*> _stk;   // Stack of nodes
 238 
 239  public:
 240   SuperWord(PhaseIdealLoop* phase);
 241 
 242   void transform_loop(IdealLoopTree* lpt, bool do_optimization);
 243 
 244   void unrolling_analysis(CountedLoopNode *cl, int &local_loop_unroll_factor);
 245 
 246   // Accessors for SWPointer
 247   PhaseIdealLoop* phase()          { return _phase; }
 248   IdealLoopTree* lpt()             { return _lpt; }
 249   PhiNode* iv()                    { return _iv; }
 250   bool early_return()              { return _early_return; }
 251 
 252  private:
 253   IdealLoopTree* _lpt;             // Current loop tree node
 254   LoopNode*      _lp;              // Current LoopNode
 255   Node*          _bb;              // Current basic block
 256   PhiNode*       _iv;              // Induction var
 257   bool           _race_possible;   // In cases where SDMU is true
 258   bool           _early_return;    // True if we do not initialize
 259   bool           _do_vector_loop;  // whether to do vectorization/simd style
 260   bool           _vector_loop_debug; // provide more printing in debug mode
 261   int            _num_work_vecs;   // Number of non memory vector operations
 262   int            _num_reductions;  // Number of reduction expressions applied
 263   int            _ii_first;        // generation with direct deps from mem phi
 264   int            _ii_last;         // generation with direct deps to   mem phi




 224   CloneMap&                 _clone_map;  // map of nodes created in cloning
 225 
 226   MemNode* _align_to_ref;                // Memory reference that pre-loop will align to
 227 
 228   GrowableArray<OrderedPair> _disjoint_ptrs; // runtime disambiguated pointer pairs
 229 
 230   DepGraph _dg; // Dependence graph
 231 
 232   // Scratch pads
 233   VectorSet    _visited;       // Visited set
 234   VectorSet    _post_visited;  // Post-visited set
 235   Node_Stack   _n_idx_list;    // List of (node,index) pairs
 236   GrowableArray<Node*> _nlist; // List of nodes
 237   GrowableArray<Node*> _stk;   // Stack of nodes
 238 
 239  public:
 240   SuperWord(PhaseIdealLoop* phase);
 241 
 242   void transform_loop(IdealLoopTree* lpt, bool do_optimization);
 243 
 244   void unrolling_analysis(int &local_loop_unroll_factor);
 245 
 246   // Accessors for SWPointer
 247   PhaseIdealLoop* phase()          { return _phase; }
 248   IdealLoopTree* lpt()             { return _lpt; }
 249   PhiNode* iv()                    { return _iv; }
 250   bool early_return()              { return _early_return; }
 251 
 252  private:
 253   IdealLoopTree* _lpt;             // Current loop tree node
 254   LoopNode*      _lp;              // Current LoopNode
 255   Node*          _bb;              // Current basic block
 256   PhiNode*       _iv;              // Induction var
 257   bool           _race_possible;   // In cases where SDMU is true
 258   bool           _early_return;    // True if we do not initialize
 259   bool           _do_vector_loop;  // whether to do vectorization/simd style
 260   bool           _vector_loop_debug; // provide more printing in debug mode
 261   int            _num_work_vecs;   // Number of non memory vector operations
 262   int            _num_reductions;  // Number of reduction expressions applied
 263   int            _ii_first;        // generation with direct deps from mem phi
 264   int            _ii_last;         // generation with direct deps to   mem phi


< prev index next >