src/share/vm/opto/block.hpp
Print this page
rev 5661 : 8003854: PPC64 (part 115): Introduce lateExpand that expands nodes after register allocation.
*** 311,324 ****
Node *end() const { return _nodes[end_idx()]; }
// Add an instruction to an existing block. It must go after the head
// instruction and before the end instruction.
void add_inst( Node *n ) { insert_node(n, end_idx()); }
! // Find node in block
uint find_node( const Node *n ) const;
// Find and remove n from block list
void find_remove( const Node *n );
// Return the empty status of a block
enum { not_empty, empty_with_goto, completely_empty };
int is_Empty() const;
--- 311,326 ----
Node *end() const { return _nodes[end_idx()]; }
// Add an instruction to an existing block. It must go after the head
// instruction and before the end instruction.
void add_inst( Node *n ) { insert_node(n, end_idx()); }
! // Find node in block. Fails if node not in block.
uint find_node( const Node *n ) const;
// Find and remove n from block list
void find_remove( const Node *n );
+ // Check wether the node is in the block.
+ bool contains (const Node *n) const;
// Return the empty status of a block
enum { not_empty, empty_with_goto, completely_empty };
int is_Empty() const;
*** 594,603 ****
--- 596,608 ----
void insert(Block *b, uint idx, Node *n) {
b->insert_node(n , idx);
map_node_to_block(n, b);
}
+ // Check all nodes and late expand them if necessary.
+ void LateExpand(PhaseRegAlloc* _ra);
+
#ifndef PRODUCT
bool trace_opto_pipelining() const { return _trace_opto_pipelining; }
// Debugging print of CFG
void dump( ) const; // CFG only