< prev index next >

src/hotspot/share/opto/loopopts.cpp

Print this page
rev 48500 : 8194988: 8 Null pointer dereference defect groups related to MultiNode::proj_out()

*** 237,247 **** if (iff->outcnt() != 2) return; // Make control-dependent data Nodes on the live path (path that will remain // once the dominated IF is removed) become control-dependent on the // dominating projection. ! Node* dp = iff->as_If()->proj_out(pop == Op_IfTrue); // Loop predicates may have depending checks which should not // be skipped. For example, range check predicate has two checks // for lower and upper bounds. if (dp == NULL) --- 237,247 ---- if (iff->outcnt() != 2) return; // Make control-dependent data Nodes on the live path (path that will remain // once the dominated IF is removed) become control-dependent on the // dominating projection. ! Node* dp = iff->as_If()->proj_out_or_null(pop == Op_IfTrue); // Loop predicates may have depending checks which should not // be skipped. For example, range check predicate has two checks // for lower and upper bounds. if (dp == NULL)
*** 1954,1964 **** Node* newuse = NULL; if (head->is_strip_mined() && mode != IgnoreStripMined) { CountedLoopNode* cl = head->as_CountedLoop(); CountedLoopEndNode* cle = cl->loopexit(); ! Node* cle_out = cle->proj_out(false); if (use == cle_out) { IfNode* le = cl->outer_loop_end(); use = le->proj_out(false); use_loop = get_loop(use); if (mode == CloneIncludesStripMined) { --- 1954,1964 ---- Node* newuse = NULL; if (head->is_strip_mined() && mode != IgnoreStripMined) { CountedLoopNode* cl = head->as_CountedLoop(); CountedLoopEndNode* cle = cl->loopexit(); ! Node* cle_out = cle->proj_out_or_null(false); if (use == cle_out) { IfNode* le = cl->outer_loop_end(); use = le->proj_out(false); use_loop = get_loop(use); if (mode == CloneIncludesStripMined) {
< prev index next >