src/share/vm/opto/ifnode.cpp

changeset 8777
09d0d56ca735
parent 7421
e3d0aaab84aa
child 8856
ac27a9c85bea
child 8907
9f401c01775b
equal deleted inserted replaced
8776:4a575a49e938 8777:09d0d56ca735
1079 1079
1080 // Loop predicates may have depending checks which should not 1080 // Loop predicates may have depending checks which should not
1081 // be skipped. For example, range check predicate has two checks 1081 // be skipped. For example, range check predicate has two checks
1082 // for lower and upper bounds. 1082 // for lower and upper bounds.
1083 ProjNode* unc_proj = proj_out(1 - prev_dom->as_Proj()->_con)->as_Proj(); 1083 ProjNode* unc_proj = proj_out(1 - prev_dom->as_Proj()->_con)->as_Proj();
1084 if (unc_proj->is_uncommon_trap_proj(Deoptimization::Reason_predicate)) 1084 if ((unc_proj != NULL) && (unc_proj->is_uncommon_trap_proj(Deoptimization::Reason_predicate))) {
1085 prev_dom = idom; 1085 prev_dom = idom;
1086 }
1086 1087
1087 // Now walk the current IfNode's projections. 1088 // Now walk the current IfNode's projections.
1088 // Loop ends when 'this' has no more uses. 1089 // Loop ends when 'this' has no more uses.
1089 for (DUIterator_Last imin, i = last_outs(imin); i >= imin; --i) { 1090 for (DUIterator_Last imin, i = last_outs(imin); i >= imin; --i) {
1090 Node *ifp = last_out(i); // Get IfTrue/IfFalse 1091 Node *ifp = last_out(i); // Get IfTrue/IfFalse

mercurial