src/share/vm/opto/block.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6809798 Sdiff src/share/vm/opto

src/share/vm/opto/block.hpp

Print this page




 330 #endif
 331 };
 332 
 333 
 334 //------------------------------PhaseCFG---------------------------------------
 335 // Build an array of Basic Block pointers, one per Node.
 336 class PhaseCFG : public Phase {
 337  private:
 338   // Build a proper looking cfg.  Return count of basic blocks
 339   uint build_cfg();
 340 
 341   // Perform DFS search.
 342   // Setup 'vertex' as DFS to vertex mapping.
 343   // Setup 'semi' as vertex to DFS mapping.
 344   // Set 'parent' to DFS parent.
 345   uint DFS( Tarjan *tarjan );
 346 
 347   // Helper function to insert a node into a block
 348   void schedule_node_into_block( Node *n, Block *b );
 349 


 350   // Set the basic block for pinned Nodes
 351   void schedule_pinned_nodes( VectorSet &visited );
 352 
 353   // I'll need a few machine-specific GotoNodes.  Clone from this one.
 354   MachNode *_goto;
 355 
 356   Block* insert_anti_dependences(Block* LCA, Node* load, bool verify = false);
 357   void verify_anti_dependences(Block* LCA, Node* load) {
 358     assert(LCA == _bbs[load->_idx], "should already be scheduled");
 359     insert_anti_dependences(LCA, load, true);
 360   }
 361 
 362  public:
 363   PhaseCFG( Arena *a, RootNode *r, Matcher &m );
 364 
 365   uint _num_blocks;             // Count of basic blocks
 366   Block_List _blocks;           // List of basic blocks
 367   RootNode *_root;              // Root of whole program
 368   Block_Array _bbs;             // Map Nodes to owning Basic Block
 369   Block *_broot;                // Basic block of root




 330 #endif
 331 };
 332 
 333 
 334 //------------------------------PhaseCFG---------------------------------------
 335 // Build an array of Basic Block pointers, one per Node.
 336 class PhaseCFG : public Phase {
 337  private:
 338   // Build a proper looking cfg.  Return count of basic blocks
 339   uint build_cfg();
 340 
 341   // Perform DFS search.
 342   // Setup 'vertex' as DFS to vertex mapping.
 343   // Setup 'semi' as vertex to DFS mapping.
 344   // Set 'parent' to DFS parent.
 345   uint DFS( Tarjan *tarjan );
 346 
 347   // Helper function to insert a node into a block
 348   void schedule_node_into_block( Node *n, Block *b );
 349 
 350   void PhaseCFG::replace_block_proj_ctrl( Node *n );
 351 
 352   // Set the basic block for pinned Nodes
 353   void schedule_pinned_nodes( VectorSet &visited );
 354 
 355   // I'll need a few machine-specific GotoNodes.  Clone from this one.
 356   MachNode *_goto;
 357 
 358   Block* insert_anti_dependences(Block* LCA, Node* load, bool verify = false);
 359   void verify_anti_dependences(Block* LCA, Node* load) {
 360     assert(LCA == _bbs[load->_idx], "should already be scheduled");
 361     insert_anti_dependences(LCA, load, true);
 362   }
 363 
 364  public:
 365   PhaseCFG( Arena *a, RootNode *r, Matcher &m );
 366 
 367   uint _num_blocks;             // Count of basic blocks
 368   Block_List _blocks;           // List of basic blocks
 369   RootNode *_root;              // Root of whole program
 370   Block_Array _bbs;             // Map Nodes to owning Basic Block
 371   Block *_broot;                // Basic block of root


src/share/vm/opto/block.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File