< prev index next >
src/hotspot/share/opto/loopnode.hpp
Print this page
rev 54995 : 8224675: Late GC barrier insertion for ZGC
Reviewed-by:
*** 664,673 ****
--- 664,674 ----
friend class IdealLoopTree;
friend class SuperWord;
friend class CountedLoopReserveKit;
friend class ShenandoahBarrierC2Support;
friend class AutoNodeBudget;
+ friend class ZBarrierSetC2;
// Pre-computed def-use info
PhaseIterGVN &_igvn;
// Head of loop tree
*** 818,827 ****
--- 819,829 ----
// get their replacement Node in slot 1. Instead of updating the block
// location of all Nodes in the subsumed block, we lazily do it. As we
// pull such a subsumed block out of the array, we write back the final
// correct block.
Node *get_ctrl( Node *i ) {
+
assert(has_node(i), "");
Node *n = get_ctrl_no_update(i);
_nodes.map( i->_idx, (Node*)((intptr_t)n + 1) );
assert(has_node(i) && has_ctrl(i), "");
assert(n == find_non_split_ctrl(n), "must return legal ctrl" );
*** 1300,1312 ****
// forcing an extra register move)
void reorg_offsets( IdealLoopTree *loop );
// Check for aggressive application of 'split-if' optimization,
// using basic block level info.
! void split_if_with_blocks ( VectorSet &visited, Node_Stack &nstack, bool last_round );
Node *split_if_with_blocks_pre ( Node *n );
! void split_if_with_blocks_post( Node *n, bool last_round );
Node *has_local_phi_input( Node *n );
// Mark an IfNode as being dominated by a prior test,
// without actually altering the CFG (and hence IDOM info).
void dominated_by( Node *prevdom, Node *iff, bool flip = false, bool exclude_loop_predicate = false );
--- 1302,1314 ----
// forcing an extra register move)
void reorg_offsets( IdealLoopTree *loop );
// Check for aggressive application of 'split-if' optimization,
// using basic block level info.
! void split_if_with_blocks ( VectorSet &visited, Node_Stack &nstack);
Node *split_if_with_blocks_pre ( Node *n );
! void split_if_with_blocks_post( Node *n );
Node *has_local_phi_input( Node *n );
// Mark an IfNode as being dominated by a prior test,
// without actually altering the CFG (and hence IDOM info).
void dominated_by( Node *prevdom, Node *iff, bool flip = false, bool exclude_loop_predicate = false );
< prev index next >