< prev index next >

src/share/vm/opto/superword.hpp

Print this page




 244   static const OrderedPair initial;
 245 };
 246 
 247 // -----------------------------SuperWord---------------------------------
 248 // Transforms scalar operations into packed (superword) operations.
 249 class SuperWord : public ResourceObj {
 250  friend class SWPointer;
 251  friend class CMoveKit;
 252  private:
 253   PhaseIdealLoop* _phase;
 254   Arena*          _arena;
 255   PhaseIterGVN   &_igvn;
 256 
 257   enum consts { top_align = -1, bottom_align = -666 };
 258 
 259   GrowableArray<Node_List*> _packset;    // Packs for the current block
 260 
 261   GrowableArray<int> _bb_idx;            // Map from Node _idx to index within block
 262 
 263   GrowableArray<Node*> _block;           // Nodes in current block

 264   GrowableArray<Node*> _data_entry;      // Nodes with all inputs from outside
 265   GrowableArray<Node*> _mem_slice_head;  // Memory slice head nodes
 266   GrowableArray<Node*> _mem_slice_tail;  // Memory slice tail nodes
 267   GrowableArray<Node*> _iteration_first; // nodes in the generation that has deps from phi
 268   GrowableArray<Node*> _iteration_last;  // nodes in the generation that has deps to   phi
 269   GrowableArray<SWNodeInfo> _node_info;  // Info needed per node
 270   CloneMap&            _clone_map;       // map of nodes created in cloning
 271   CMoveKit             _cmovev_kit;      // support for vectorization of CMov
 272   MemNode* _align_to_ref;                // Memory reference that pre-loop will align to
 273 
 274   GrowableArray<OrderedPair> _disjoint_ptrs; // runtime disambiguated pointer pairs
 275 
 276   DepGraph _dg; // Dependence graph
 277 
 278   // Scratch pads
 279   VectorSet    _visited;       // Visited set
 280   VectorSet    _post_visited;  // Post-visited set
 281   Node_Stack   _n_idx_list;    // List of (node,index) pairs
 282   GrowableArray<Node*> _nlist; // List of nodes
 283   GrowableArray<Node*> _stk;   // Stack of nodes




 244   static const OrderedPair initial;
 245 };
 246 
 247 // -----------------------------SuperWord---------------------------------
 248 // Transforms scalar operations into packed (superword) operations.
 249 class SuperWord : public ResourceObj {
 250  friend class SWPointer;
 251  friend class CMoveKit;
 252  private:
 253   PhaseIdealLoop* _phase;
 254   Arena*          _arena;
 255   PhaseIterGVN   &_igvn;
 256 
 257   enum consts { top_align = -1, bottom_align = -666 };
 258 
 259   GrowableArray<Node_List*> _packset;    // Packs for the current block
 260 
 261   GrowableArray<int> _bb_idx;            // Map from Node _idx to index within block
 262 
 263   GrowableArray<Node*> _block;           // Nodes in current block
 264   GrowableArray<Node*> _post_block;      // Nodes in post loop block
 265   GrowableArray<Node*> _data_entry;      // Nodes with all inputs from outside
 266   GrowableArray<Node*> _mem_slice_head;  // Memory slice head nodes
 267   GrowableArray<Node*> _mem_slice_tail;  // Memory slice tail nodes
 268   GrowableArray<Node*> _iteration_first; // nodes in the generation that has deps from phi
 269   GrowableArray<Node*> _iteration_last;  // nodes in the generation that has deps to   phi
 270   GrowableArray<SWNodeInfo> _node_info;  // Info needed per node
 271   CloneMap&            _clone_map;       // map of nodes created in cloning
 272   CMoveKit             _cmovev_kit;      // support for vectorization of CMov
 273   MemNode* _align_to_ref;                // Memory reference that pre-loop will align to
 274 
 275   GrowableArray<OrderedPair> _disjoint_ptrs; // runtime disambiguated pointer pairs
 276 
 277   DepGraph _dg; // Dependence graph
 278 
 279   // Scratch pads
 280   VectorSet    _visited;       // Visited set
 281   VectorSet    _post_visited;  // Post-visited set
 282   Node_Stack   _n_idx_list;    // List of (node,index) pairs
 283   GrowableArray<Node*> _nlist; // List of nodes
 284   GrowableArray<Node*> _stk;   // Stack of nodes


< prev index next >