Mercurial > hg > truffle
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 |