comparison src/share/vm/opto/block.hpp @ 14428:044b28168e20

8003854: PPC64 (part 115): Introduce PostallocExpand that expands nodes after register allocation Summary: added ability in C2 to expand mach nodes to several mach nodes after register allocation Reviewed-by: kvn
author goetz
date Thu, 14 Nov 2013 19:24:59 -0800
parents 4b078f877b56
children 41b780b43b74
comparison
equal deleted inserted replaced
14427:eb178e97560c 14428:044b28168e20
311 Node *end() const { return _nodes[end_idx()]; } 311 Node *end() const { return _nodes[end_idx()]; }
312 312
313 // Add an instruction to an existing block. It must go after the head 313 // Add an instruction to an existing block. It must go after the head
314 // instruction and before the end instruction. 314 // instruction and before the end instruction.
315 void add_inst( Node *n ) { insert_node(n, end_idx()); } 315 void add_inst( Node *n ) { insert_node(n, end_idx()); }
316 // Find node in block 316 // Find node in block. Fails if node not in block.
317 uint find_node( const Node *n ) const; 317 uint find_node( const Node *n ) const;
318 // Find and remove n from block list 318 // Find and remove n from block list
319 void find_remove( const Node *n ); 319 void find_remove( const Node *n );
320 // Check wether the node is in the block.
321 bool contains (const Node *n) const;
320 322
321 // Return the empty status of a block 323 // Return the empty status of a block
322 enum { not_empty, empty_with_goto, completely_empty }; 324 enum { not_empty, empty_with_goto, completely_empty };
323 int is_Empty() const; 325 int is_Empty() const;
324 326
593 // Insert a node into a block at index and map the node to the block 595 // Insert a node into a block at index and map the node to the block
594 void insert(Block *b, uint idx, Node *n) { 596 void insert(Block *b, uint idx, Node *n) {
595 b->insert_node(n , idx); 597 b->insert_node(n , idx);
596 map_node_to_block(n, b); 598 map_node_to_block(n, b);
597 } 599 }
600
601 // Check all nodes and postalloc_expand them if necessary.
602 void postalloc_expand(PhaseRegAlloc* _ra);
598 603
599 #ifndef PRODUCT 604 #ifndef PRODUCT
600 bool trace_opto_pipelining() const { return _trace_opto_pipelining; } 605 bool trace_opto_pipelining() const { return _trace_opto_pipelining; }
601 606
602 // Debugging print of CFG 607 // Debugging print of CFG