This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Move some flag_unsafe_math_optimizations using simplify and match
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: "Hurugalawadi, Naveen" <Naveen dot Hurugalawadi at caviumnetworks dot com>
- Date: Thu, 20 Aug 2015 10:20:31 +0200
- Subject: Re: Move some flag_unsafe_math_optimizations using simplify and match
- Authentication-results: sourceware.org; auth=none
- References: <SN2PR0701MB1024EC4AD2C9B654AE3F0E9A8E790 at SN2PR0701MB1024 dot namprd07 dot prod dot outlook dot com> <CAFiYyc1xhkUsnmaGeLg-8iufxWpgXSjgP_izamcX0bvm9KRRNQ at mail dot gmail dot com> <SN2PR0701MB1024A460F6FA7BC0FB386A588E670 at SN2PR0701MB1024 dot namprd07 dot prod dot outlook dot com> <CAFiYyc0CZ1ECw0wysk1xHkNrOBUnYcC8P22=HJ-Qk+cx0aR95Q at mail dot gmail dot com> <SN2PR0701MB10247452B48809F7CC92DFD08E660 at SN2PR0701MB1024 dot namprd07 dot prod dot outlook dot com> <alpine dot DEB dot 2 dot 20 dot 1508200726580 dot 1547 at laptop-mg dot saclay dot inria dot fr>
On Thu, Aug 20, 2015 at 7:38 AM, Marc Glisse <marc.glisse@inria.fr> wrote:
> On Thu, 20 Aug 2015, Hurugalawadi, Naveen wrote:
>
>> The following testcase does not generate "x" as needed.
>> ====================
>> double t (double x)
>> {
>> x = sqrt (x) * sqrt (x);
>> return x;
>> }
>> ====================
>
>
> With -fno-math-errno, we CSE the calls to sqrt, so I would expect this to
> match:
>
> (mult (SQRT@1 @0) @1)
>
> Without the flag, I expect that one will apply
>
> (simplify
> (mult (SQRT:s @0) (SQRT:s @1))
> (SQRT (mult @0 @1)))
>
> and then maybe we have something converting sqrt(x*x) to abs(x) or maybe
> not.
ICK. I'd rather have CSE still CSE the two calls by adding some
tricks regarding
to errno ...
> I wonder if all the unsafe math optimizations are really ok without
> -fno-math-errno...
Well, on GIMPLE they will preserve the original calls because of their
side-effects
setting errno... on GENERIC probably not.
Richard.
> --
> Marc Glisse