8215757: C2: PhaseIdealLoop::create_new_if_for_predicate() computes wrong IDOM
Reviewed-by: kvn, roland
--- a/src/hotspot/share/opto/loopPredicate.cpp Fri Jan 11 14:27:22 2019 +0100
+++ b/src/hotspot/share/opto/loopPredicate.cpp Tue Jan 15 16:41:17 2019 -0800
@@ -160,7 +160,7 @@
// When called from beautify_loops() idom is not constructed yet.
if (_idom != NULL) {
Node* ridom = idom(rgn);
- Node* nrdom = dom_lca(ridom, new_iff);
+ Node* nrdom = dom_lca_internal(ridom, new_iff);
set_idom(rgn, nrdom, dom_depth(rgn));
}