This bug (which I just filed) is an ICE in the -ftree-loop-linear code. It's expecting the
ssa-trees for different index variables in nested loops to refer to different user variables.
In this case the different user variables have gotten coalesced by copyrename2; this
happens only because they're inline copies:


 /* Never attempt to coalesce 2 user variables unless one is an inline
     variable.  */
  if (!ign1 && !ign2)
    {
      if (DECL_FROM_INLINE (root2))
        ign2 = true;
      else if (DECL_FROM_INLINE (root1))
        ign1 = true;
      else
        {
          if (debug)
            fprintf (debug, " : 2 different USER vars. No coalesce.\n");
          return;
        }
    }

Is tree-loop-linear correct to have this expectation?
What's the reason for not, in general, coalescing user variables? If it's a correctness
issue the above is insufficient; but no other phase seems to mind.




Reply via email to