https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120119
--- Comment #10 from Khem Raj <raj.khem at gmail dot com> --- @a(In reply to Ramana Radhakrishnan from comment #9) > (In reply to Andrew Pinski from comment #8) > > Cannot rename chain v30 (8) at insn 54 (mark_read) > > Creating chain v29 (13) at insn 54 > > Cannot rename chain v29 (13) at insn 30 (mark_read) > > Widening register in chain v29 (13) at insn 30 > > Cannot rename chain v30 (8) at insn 30 (mark_read) > > Failing basic block due to unhandled overlap > > Closing chain v29 (13) at insn 30 (terminate_dead, superset) > > Failing basic block due to unhandled overlap > > Failing basic block due to unhandled overlap > > Closing chain v28 (6) at insn 30 (terminate_write, superset) > > Creating chain v28 (14) at insn 30 > > failed > > > > ``` > > diff --git a/gcc/config/aarch64/cortex-a57-fma-steering.cc > > b/gcc/config/aarch64/cortex-a57-fma-steering.cc > > index fd6da66d855..2dc0fffed62 100644 > > --- a/gcc/config/aarch64/cortex-a57-fma-steering.cc > > +++ b/gcc/config/aarch64/cortex-a57-fma-steering.cc > > @@ -948,6 +948,9 @@ func_fma_steering::analyze () > > > > /* Search the chain where this instruction is (one of) the root. > > */ > > dest_op_info = insn_rr[INSN_UID (insn)].op_info; > > + /* Register rename could fail. */ > > + if (!dest_op_info) > > + continue; > > dest_regno = REGNO (SET_DEST (PATTERN (insn))); > > for (i = 0; i < dest_op_info->n_chains; i++) > > { > > > > ``` > > > > Fixes the issue. > > Looks reasonable from memory. Perhaps worth landing this after testing ? > any updates on this ? I can confirm this fixes the problem. > regards > Ramana