< 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,11 +1111,11 @@
   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));
+                   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 >