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

--- Comment #25 from Alexander Monakov <amonakov at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #24)
> As of the patch it looks good, I wonder if we want to check for OPTIMIZE_BOTH
> though since at least when no extra negations are required the contraction
> should also be a win when optimizing for size?

Makes sense, I'll change that (current target hooks always return true for
fma).

> Also I wondered about the PROP_gimple_any check - do we get into the
> gimplification langhook after lowering?  I see we are not resetting the
> langhook after lowering (only in free-lang-data, but that only runs with
> LTO).

Yes, that surprised me. I caught it when analyzing ICE on slp-50.c testcase.

> We probably at least should gate the langhook invocation in the gimplifier
> with what you added in the patch or specify whether the gimplifier is
> invoked from the middle-end via the gimplifier context.

Perhaps. I'll add a comment that we want to handle -ffp-contract=on strictly
during initial gimplification, to hash this out further on gcc-patches, if
necessary.  

> If we go for c-family only the genericize entry could be another place to
> handle this.

That seems less convenient to me. Is IFN_FMA representable as a tree?

> Did you run into any of NON_LVALUE / C_MAYBE_CONST wrappings of the
> multiplication btw?

No, I'm not familiar with those, so I didn't try to construct corresponding
testcases.

Reply via email to