src/share/vm/opto/phaseX.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/phaseX.cpp Mon Feb 15 10:57:29 2016
--- new/src/share/vm/opto/phaseX.cpp Mon Feb 15 10:57:28 2016
*** 1712,1721 ****
--- 1712,1738 ----
worklist.push(p); // Propagate change to user
}
}
}
}
+ // If n is used in a counted loop exit condition then the type
+ // of the counted loop's Phi depends on the type of n. See
+ // PhiNode::Value().
+ if (m_op == Op_CmpI) {
+ if (m->outcnt() > 0) {
+ Node* bol = m->raw_out(0);
+ if (bol->outcnt() > 0) {
+ Node* iff = bol->raw_out(0);
+ if (iff->is_CountedLoopEnd()) {
+ CountedLoopEndNode* cle = iff->as_CountedLoopEnd();
+ if (cle->limit() == n && cle->phi() != NULL) {
+ worklist.push(cle->phi());
+ }
+ }
+ }
+ }
+ }
}
}
}
}
src/share/vm/opto/phaseX.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File