equal
deleted
inserted
replaced
1351 num_s1_uses++; |
1351 num_s1_uses++; |
1352 if (!in_bb(t1)) continue; |
1352 if (!in_bb(t1)) continue; |
1353 for (DUIterator_Fast jmax, j = s2->fast_outs(jmax); j < jmax; j++) { |
1353 for (DUIterator_Fast jmax, j = s2->fast_outs(jmax); j < jmax; j++) { |
1354 Node* t2 = s2->fast_out(j); |
1354 Node* t2 = s2->fast_out(j); |
1355 if (!in_bb(t2)) continue; |
1355 if (!in_bb(t2)) continue; |
|
1356 if (t2->Opcode() == Op_AddI && t2 == _lp->as_CountedLoop()->incr()) continue; // don't mess with the iv |
1356 if (!opnd_positions_match(s1, t1, s2, t2)) |
1357 if (!opnd_positions_match(s1, t1, s2, t2)) |
1357 continue; |
1358 continue; |
1358 if (stmts_can_pack(t1, t2, align)) { |
1359 if (stmts_can_pack(t1, t2, align)) { |
1359 int my_savings = est_savings(t1, t2); |
1360 int my_savings = est_savings(t1, t2); |
1360 if (my_savings > savings) { |
1361 if (my_savings > savings) { |
3311 // the loop entry is inappropriate. |
3312 // the loop entry is inappropriate. |
3312 if (!PhaseIdealLoop::is_canonical_loop_entry(cl)) { |
3313 if (!PhaseIdealLoop::is_canonical_loop_entry(cl)) { |
3313 return NULL; |
3314 return NULL; |
3314 } |
3315 } |
3315 |
3316 |
3316 Node* p_f = cl->in(LoopNode::EntryControl)->in(0)->in(0); |
3317 Node* p_f = cl->skip_strip_mined()->in(LoopNode::EntryControl)->in(0)->in(0); |
3317 if (!p_f->is_IfFalse()) return NULL; |
3318 if (!p_f->is_IfFalse()) return NULL; |
3318 if (!p_f->in(0)->is_CountedLoopEnd()) return NULL; |
3319 if (!p_f->in(0)->is_CountedLoopEnd()) return NULL; |
3319 CountedLoopEndNode* pre_end = p_f->in(0)->as_CountedLoopEnd(); |
3320 CountedLoopEndNode* pre_end = p_f->in(0)->as_CountedLoopEnd(); |
3320 CountedLoopNode* loop_node = pre_end->loopnode(); |
3321 CountedLoopNode* loop_node = pre_end->loopnode(); |
3321 if (loop_node == NULL || !loop_node->is_pre_loop()) return NULL; |
3322 if (loop_node == NULL || !loop_node->is_pre_loop()) return NULL; |