On 29/01/2020 08:24, Richard Biener wrote:
On Tue, Jan 28, 2020 at 5:53 PM Andrew Stubbs <a...@codesourcery.com> wrote:

This patch fixes an ICE compiling fast-math-pr55281.c for amdgcn.

The problem is that an "iv" is created in which both base and step are
pointer types,

How did you get a POINTER_TYPE step?  That's where the issue lies
I think.

It can come from "find_inv_vars_cb":

  set_iv (idata, op, op, build_int_cst (TREE_TYPE (op), 0), true);

whenever "op" has a pointer type.

Similarly for "get_iv":

  set_iv (data, var, var, build_int_cst (type, 0), true);

whenever "var" has a pointer type.

In this particular case, I traced the origin back to the second one, I think (but it's somewhat hard to unpick).

I could change one or both of those, but I don't understand enough about the consequences of that to be sure it's the right thing to do. I can confirm that converting the step at this point does appear to have the desired effect in this instance.

At least at the point of writing it to gimple I can determine what is definitely malformed.

Andrew

Reply via email to