< prev index next >

src/hotspot/share/opto/loopnode.cpp

Print this page

        

*** 3966,3976 **** Node* s = mem->fast_out(i); worklist.push(s); } while(worklist.size() != 0 && LCA != early) { Node* s = worklist.pop(); ! if (s->is_Load() || s->Opcode() == Op_SafePoint || (s->is_CallStaticJava() && s->as_CallStaticJava()->uncommon_trap_request() != 0)) { continue; } else if (s->is_MergeMem()) { for (DUIterator_Fast imax, i = s->fast_outs(imax); i < imax; i++) { Node* s1 = s->fast_out(i); --- 3966,3976 ---- Node* s = mem->fast_out(i); worklist.push(s); } while(worklist.size() != 0 && LCA != early) { Node* s = worklist.pop(); ! if (s->is_Load() || s->is_ShenandoahBarrier() || s->Opcode() == Op_SafePoint || (s->is_CallStaticJava() && s->as_CallStaticJava()->uncommon_trap_request() != 0)) { continue; } else if (s->is_MergeMem()) { for (DUIterator_Fast imax, i = s->fast_outs(imax); i < imax; i++) { Node* s1 = s->fast_out(i);
*** 4183,4193 **** //------------------------------build_loop_late_post--------------------------- // Put Data nodes into some loop nest, by setting the _nodes[]->loop mapping. // Second pass finds latest legal placement, and ideal loop placement. ! void PhaseIdealLoop::build_loop_late_post( Node *n ) { if (n->req() == 2 && (n->Opcode() == Op_ConvI2L || n->Opcode() == Op_CastII) && !C->major_progress() && !_verify_only) { _igvn._worklist.push(n); // Maybe we'll normalize it, if no more loops. } --- 4183,4203 ---- //------------------------------build_loop_late_post--------------------------- // Put Data nodes into some loop nest, by setting the _nodes[]->loop mapping. // Second pass finds latest legal placement, and ideal loop placement. ! void PhaseIdealLoop::build_loop_late_post(Node *n) { ! BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); ! ! if (bs->build_loop_late_post(this, n)) { ! return; ! } ! ! build_loop_late_post_work(n, true); ! } ! ! void PhaseIdealLoop::build_loop_late_post_work(Node *n, bool pinned) { if (n->req() == 2 && (n->Opcode() == Op_ConvI2L || n->Opcode() == Op_CastII) && !C->major_progress() && !_verify_only) { _igvn._worklist.push(n); // Maybe we'll normalize it, if no more loops. }
*** 4204,4214 **** // We'd like +VerifyLoopOptimizations to not believe that Mod's/Loads // _must_ be pinned (they have to observe their control edge of course). // Unlike Stores (which modify an unallocable resource, the memory // state), Mods/Loads can float around. So free them up. - bool pinned = true; switch( n->Opcode() ) { case Op_DivI: case Op_DivF: case Op_DivD: case Op_ModI: --- 4214,4223 ----
*** 4501,4510 **** --- 4510,4520 ---- } } } } } + #endif // Collect a R-P-O for the whole CFG. // Result list is in post-order (scan backwards for RPO) void PhaseIdealLoop::rpo( Node *start, Node_Stack &stk, VectorSet &visited, Node_List &rpo_list ) const { stk.push(start, 0);
*** 4523,4533 **** rpo_list.push(m); stk.pop(); } } } - #endif //============================================================================= //------------------------------LoopTreeIterator----------------------------------- --- 4533,4542 ----
< prev index next >