< prev index next >
src/hotspot/share/c1/c1_LIRGenerator.cpp
Print this page
rev 52693 : 8214352: C1: Unnecessary "compilation bailout: block join failed" with JVMTI
Summary: Invalidate Phi functions for conflicting types and avoid bailout.
Reviewed-by:
*** 1111,1121 ****
assert(block()->next() == x, "ExceptionObject must be first instruction of block");
// no moves are created for phi functions at the begin of exception
// handlers, so assign operands manually here
for_each_phi_fun(block(), phi,
! operand_for_instruction(phi));
LIR_Opr thread_reg = getThreadPointer();
__ move_wide(new LIR_Address(thread_reg, in_bytes(JavaThread::exception_oop_offset()), T_OBJECT),
exceptionOopOpr());
__ move_wide(LIR_OprFact::oopConst(NULL),
--- 1111,1121 ----
assert(block()->next() == x, "ExceptionObject must be first instruction of block");
// no moves are created for phi functions at the begin of exception
// handlers, so assign operands manually here
for_each_phi_fun(block(), phi,
! if (!phi->is_illegal()) { operand_for_instruction(phi); });
LIR_Opr thread_reg = getThreadPointer();
__ move_wide(new LIR_Address(thread_reg, in_bytes(JavaThread::exception_oop_offset()), T_OBJECT),
exceptionOopOpr());
__ move_wide(LIR_OprFact::oopConst(NULL),
< prev index next >