RFR(S): 8212673: jtreg/applications/runthese/RunThese30M.java fails in C2 with "assert(!had_error) failed: bad dominance"

Tobias Hartmann tobias.hartmann at oracle.com
Wed Oct 24 11:10:35 UTC 2018


Hi Roland,

this looks reasonable to me.

Best regards,
Tobias

On 24.10.18 11:14, Roland Westrelin wrote:
> 
> http://cr.openjdk.java.net/~roland/8212673/webrev.00/
> 
> In PhiNode::Ideal(): 
> 
>   Node* uin = unique_input(phase, false); 
>   if (uin == NULL && can_reshape) { 
>     uncasted = true; 
>     uin = unique_input(phase, true); 
>   } 
> 
> can find a unique input by looking trough cast. But code below: 
> 
>       if ((is_loop && !uin->eqv_uncast(in(LoopNode::EntryControl))) || 
>           (!is_loop && is_unsafe_data_reference(uin))) { 
> 
> eqv_uncast can fail because it looks through casts and load barriers if
> the unique input is a load barrier. This then causes a valid input to a
> Phi to be set to top.
> 
> I propose to backout JDK-8212603 and add calls to step_over_gc_barrier()
> to locking optimization code only instead (which was the motivation for
> JDK-8212603).
> 
> Roland.
> 


More information about the hotspot-compiler-dev mailing list