< prev index next >

src/hotspot/share/opto/compile.cpp

Print this page

        

*** 2209,2220 **** BREAKPOINT; } #endif - BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); #ifdef ASSERT bs->verify_gc_barriers(this, BarrierSetC2::BeforeOptimize); #endif ResourceMark rm; --- 2209,2220 ---- BREAKPOINT; } #endif #ifdef ASSERT + BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); bs->verify_gc_barriers(this, BarrierSetC2::BeforeOptimize); #endif ResourceMark rm;
*** 2369,2388 **** --- 2369,2395 ---- { TracePhase tp("iterGVN2", &timers[_t_iterGVN2]); igvn = ccp; igvn.optimize(); } + print_method(PHASE_ITER_GVN2, 2); if (failing()) return; // Loop transforms on the ideal graph. Range Check Elimination, // peeling, unrolling, etc. if (!optimize_loops(igvn, LoopOptsDefault)) { return; } + #if INCLUDE_ZGC + if (UseZGC) { + ZBarrierSetC2::find_dominating_barriers(igvn); + } + #endif + if (failing()) return; // Ensure that major progress is now clear C->clear_major_progress();
*** 2398,2434 **** C->remove_range_check_casts(igvn); igvn.optimize(); } #ifdef ASSERT ! bs->verify_gc_barriers(this, BarrierSetC2::BeforeLateInsertion); ! #endif ! ! bs->barrier_insertion_phase(C, igvn); ! if (failing()) return; ! ! #ifdef ASSERT ! bs->verify_gc_barriers(this, BarrierSetC2::BeforeMacroExpand); #endif { TracePhase tp("macroExpand", &timers[_t_macroExpand]); PhaseMacroExpand mex(igvn); if (mex.expand_macro_nodes()) { assert(failing(), "must bail out w/ explicit message"); return; } - print_method(PHASE_MACRO_EXPANSION, 2); } { TracePhase tp("barrierExpand", &timers[_t_barrierExpand]); if (bs->expand_barriers(this, igvn)) { assert(failing(), "must bail out w/ explicit message"); return; } - print_method(PHASE_BARRIER_EXPANSION, 2); } if (opaque4_count() > 0) { C->remove_opaque4_nodes(igvn); igvn.optimize(); --- 2405,2436 ---- C->remove_range_check_casts(igvn); igvn.optimize(); } #ifdef ASSERT ! BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); ! bs->verify_gc_barriers(this, BarrierSetC2::BeforeExpand); #endif { TracePhase tp("macroExpand", &timers[_t_macroExpand]); PhaseMacroExpand mex(igvn); + print_method(PHASE_BEFORE_MACRO_EXPANSION, 2); if (mex.expand_macro_nodes()) { assert(failing(), "must bail out w/ explicit message"); return; } } { TracePhase tp("barrierExpand", &timers[_t_barrierExpand]); + print_method(PHASE_BEFORE_BARRIER_EXPAND, 2); + BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); if (bs->expand_barriers(this, igvn)) { assert(failing(), "must bail out w/ explicit message"); return; } } if (opaque4_count() > 0) { C->remove_opaque4_nodes(igvn); igvn.optimize();
*** 2820,2830 **** } if (n->is_MemBar()) { MemBarNode* mb = n->as_MemBar(); if (mb->trailing_store() || mb->trailing_load_store()) { assert(mb->leading_membar()->trailing_membar() == mb, "bad membar pair"); ! Node* mem = BarrierSet::barrier_set()->barrier_set_c2()->step_over_gc_barrier(mb->in(MemBarNode::Precedent)); assert((mb->trailing_store() && mem->is_Store() && mem->as_Store()->is_release()) || (mb->trailing_load_store() && mem->is_LoadStore()), "missing mem op"); } else if (mb->leading()) { assert(mb->trailing_membar()->leading_membar() == mb, "bad membar pair"); } --- 2822,2832 ---- } if (n->is_MemBar()) { MemBarNode* mb = n->as_MemBar(); if (mb->trailing_store() || mb->trailing_load_store()) { assert(mb->leading_membar()->trailing_membar() == mb, "bad membar pair"); ! Node* mem = mb->in(MemBarNode::Precedent); assert((mb->trailing_store() && mem->is_Store() && mem->as_Store()->is_release()) || (mb->trailing_load_store() && mem->is_LoadStore()), "missing mem op"); } else if (mb->leading()) { assert(mb->trailing_membar()->leading_membar() == mb, "bad membar pair"); }
< prev index next >