< prev index next >

src/hotspot/share/opto/node.cpp

Print this page
rev 54995 : 8224675: Late GC barrier insertion for ZGC
Reviewed-by:

*** 544,553 **** --- 544,556 ---- n->as_Call()->clone_jvms(C); } if (n->is_SafePoint()) { n->as_SafePoint()->clone_replaced_nodes(); } + if (n->is_Load()) { + n->as_Load()->copy_barrier_info(this); + } return n; // Return the clone } //---------------------------setup_is_top-------------------------------------- // Call this when changing the top node, to reassert the invariants
*** 562,572 **** if (_out == NULL) _out = NO_OUT_ARRAY; assert(!is_top(), "must not be top"); } } - //------------------------------~Node------------------------------------------ // Fancy destructor; eagerly attempt to reclaim Node numberings and storage void Node::destruct() { // Eagerly reclaim unique Node numberings Compile* compile = Compile::current(); --- 565,574 ----
*** 1452,1468 **** } //------------------------------needs_anti_dependence_check--------------------- // Nodes which use memory without consuming it, hence need antidependences. bool Node::needs_anti_dependence_check() const { ! if( req() < 2 || (_flags & Flag_needs_anti_dependence_check) == 0 ) return false; ! else return in(1)->bottom_type()->has_memory(); } - // Get an integer constant from a ConNode (or CastIINode). // Return a default value if there is no apparent constant here. const TypeInt* Node::find_int_type() const { if (this->is_Type()) { return this->as_Type()->type()->isa_int(); --- 1454,1473 ---- } //------------------------------needs_anti_dependence_check--------------------- // Nodes which use memory without consuming it, hence need antidependences. bool Node::needs_anti_dependence_check() const { ! if (req() < 2 || (_flags & Flag_needs_anti_dependence_check) == 0) { return false; ! } ! BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); ! if (!bs->needs_anti_dependence_check(this)) { ! return false; ! } return in(1)->bottom_type()->has_memory(); } // Get an integer constant from a ConNode (or CastIINode). // Return a default value if there is no apparent constant here. const TypeInt* Node::find_int_type() const { if (this->is_Type()) { return this->as_Type()->type()->isa_int();
< prev index next >