RFR: ZGC: C2: Don't split loadbarriers past self referencing phi nodes
nils.eliasson at oracle.com
Tue May 15 09:08:46 UTC 2018
I track this issue with JDK-8203215 "IdealLoopTree::split_outer_loop
leaves phi-nodes with only one input"
It is out on review on hotspot-compiler-dev list.
On 2018-05-14 16:25, Nils Eliasson wrote:
> On 2018-05-04 17:37, Roland Westrelin wrote:
>> Hi Nils,
>>> I found a case when we are trying to split a loadbarrier past a phi
>>> nodes which has one input that is itself. This is a workaround to just
>>> skip those. Later we might want to try to remove these nodes earlier in
>>> loop optimizations, but that is an upstream issue.
>> I would have thought that PhiNode::Ideal() gets rid of them. AFAICT,
>> that call would trigger that:
>> Node* uin = unique_input(phase, false);
>> So I suppose the cycle is created by some other transformation during
>> loop opts before the compiler has a chance to run a pass of IGVN?
> Found it. IdealLoopTree::split_outer_loop, during beautify_loops,
> moves a phi to an outer loop and replaces the old in with self.
>> Looks ok to me.
More information about the zgc-dev