comparison src/share/vm/opto/block.hpp @ 18041:52b4284cb496

Merge with jdk8u20-b26
author Gilles Duboscq <duboscq@ssw.jku.at>
date Wed, 15 Oct 2014 16:02:50 +0200
parents 89152779163c
children
comparison
equal deleted inserted replaced
17606:45d7b2c7029d 18041:52b4284cb496
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
586 // Set loop alignment 588 // Set loop alignment
587 void set_loop_alignment(); 589 void set_loop_alignment();
588 590
589 // Remove empty basic blocks 591 // Remove empty basic blocks
590 void remove_empty_blocks(); 592 void remove_empty_blocks();
593 Block *fixup_trap_based_check(Node *branch, Block *block, int block_pos, Block *bnext);
591 void fixup_flow(); 594 void fixup_flow();
592 595
593 // Insert a node into a block at index and map the node to the block 596 // Insert a node into a block at index and map the node to the block
594 void insert(Block *b, uint idx, Node *n) { 597 void insert(Block *b, uint idx, Node *n) {
595 b->insert_node(n , idx); 598 b->insert_node(n , idx);
596 map_node_to_block(n, b); 599 map_node_to_block(n, b);
597 } 600 }
601
602 // Check all nodes and postalloc_expand them if necessary.
603 void postalloc_expand(PhaseRegAlloc* _ra);
598 604
599 #ifndef PRODUCT 605 #ifndef PRODUCT
600 bool trace_opto_pipelining() const { return _trace_opto_pipelining; } 606 bool trace_opto_pipelining() const { return _trace_opto_pipelining; }
601 607
602 // Debugging print of CFG 608 // Debugging print of CFG