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