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: Go patch committed: Build math library with -funsafe-math-optimizations


On Wed, Feb 8, 2012 at 8:38 PM, Ian Lance Taylor <iant@google.com> wrote:
> The master Go math library uses assembler code on 386 processors to take
> advantage of 387 instructions. ?This patch lets gccgo do the same thing,
> by compiling the math library with -funsafe-math-optimizations. ?I also
> pass -mfancy-math-387, although that is the default. ?It would not be
> appropriate to compile all Go code with -funsafe-math-optimizations, of
> course, but the math library is designed to handle it.

Huh ... I'd rather not do that if I were you.  Instead I'd say we lack a
machine specific flag to enable the fancy-x87-math patterns which
then -funsafe-math-optimizations should enable.  The x87 math
routines are the only thing you are after, right?  No math-library
can be _safe_ against -funsafe-math-optimizations I believe.

Richard.

> The compiler currently rewrites calls to, e.g., acos to call acosl
> instead when using excess precision. ?This also enables the use of
> assembler routines on 387. ?I tweaked the compiler to only do this when
> optimizing, which is probably how it should have been done anyhow. ?(At
> some point this code will move into the gcc interface out of the
> frontend proper.)
>
> With this change the math library no longer refers to functions like
> acosl on 386 systems--the operations are done inline using 387
> instructions--which should address some portability problems.
>
> Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu (32-bit
> and 64-bit mode). ?Committed to mainline.
>
> Ian
>


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