https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106688

--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #4)
> Oh yes out of ssa used the wrong coalescing:
> Coalesce list: (24)buf_24 & (33)_33 [map: 9, 16] : Success -> 9
> 
> Just by accident.

It's not by accident but triggered by

  # buf_25 = PHI <_33(6), buf_6(D)(2)>
  # size_27 = PHI <size_12(6), size_7(D)(2)>
  _10 = foo (buf_25, size_27); [tail call]
  return _10;

the main issue is that we're not good at performing the right coalescing
at RA time, esp. around IVs and sequences we want to if-convert.

We could see to avoid coalescing vars defined in different loop levels,
good heuristics are always welcome.

Reply via email to