This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH]: PR29335 use MPFR for builtin sincos


On 11/2/06, Kaveh R. GHAZI <ghazi@caip.rutgers.edu> wrote:
On Wed, 1 Nov 2006, Roger Sayle wrote:

> On Wed, 1 Nov 2006, Kaveh R. GHAZI wrote:
> > Is there any other testcase you would like me to try or can I install
> > the patch?
>
> The patch is OK for mainline.  It would also be nice if you could
> turn the sincos(zero,&s,&c) test case into something suitable for
> GCC's dejagnu testsuite and check that in.  And just for good luck
> perhaps something like:
>
> void foo(double x)
> {
>   double s, c;
>
>   if (x == 0.0)
>   {
>     sincos(x,&s,&c);
>     /* Check s and c.  */
>   }
> }
>
> However these new test cases can be committed as a follow-up patch.
> We've no reason to believe the tree-ssa passes can't handle the new
> non-gimple (*sp=X, *cp=Y) idiom that sincos folding can now produce,
> but it does no harm as to make sure things don't break in future.
>
> [I'll admit that I'm a bit curious as to which pass actually performs
> the simplification you tested for, but it'll be easy enough for me
> to investigate this for myself once your patch goes in. :-)]

Sure I'll add some tests in a bit. Two notes:

1.  In the case above, the simplification occurs only with both -O1 (or
    higher) and -ffast-math.  I'm not sure why -ffast-math is necessary.

2.  The simplification is not dependent on sincos or the pointer
    parameters.  E.g. if you replace sincos with sin(x) the same set of
    flags are necessary to enable the simplification.

I believe this is just dom or one of the propagators being overly careful with not doing expression contraction (and so violating IEEE) without -funsafe-math-optimizations.

Care to open a bugreport for this?

Richard.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]