src/share/vm/opto/callnode.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/opto/callnode.cpp

src/share/vm/opto/callnode.cpp

Print this page
rev 6566 : 8046698: assert(false) failed: only Initialize or AddP expected macro.cpp:943
Summary: PhiNode inserted between AllocateNode and Initialization node confuses allocation elimination
Reviewed-by:

*** 776,786 **** } return false; } // Returns the unique CheckCastPP of a call ! // or 'this' if there are several CheckCastPP // or returns NULL if there is no one. Node *CallNode::result_cast() { Node *cast = NULL; Node *p = proj_out(TypeFunc::Parms); --- 776,786 ---- } return false; } // Returns the unique CheckCastPP of a call ! // or 'this' if there are several CheckCastPP or a Phi // or returns NULL if there is no one. Node *CallNode::result_cast() { Node *cast = NULL; Node *p = proj_out(TypeFunc::Parms);
*** 792,801 **** --- 792,803 ---- if (use->is_CheckCastPP()) { if (cast != NULL) { return this; // more than 1 CheckCastPP } cast = use; + } else if (use->is_Phi()) { + return this; } } return cast; }
src/share/vm/opto/callnode.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File