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] |

*From*: Ian Lance Taylor <iant at google dot com>*To*: Richard Guenther <richard dot guenther at gmail dot com>*Cc*: gcc-patches at gcc dot gnu dot org, gofrontend-dev at googlegroups dot com*Date*: Thu, 09 Feb 2012 09:32:44 -0800*Subject*: Re: Go patch committed: Build math library with -funsafe-math-optimizations*References*: <mcraa4tt8sx.fsf@dhcp-172-18-216-180.mtv.corp.google.com> <CAFiYyc0NpcqDvc20BmduUS-sur4ksxXV3_SSiEO3o5jwpqVg+g@mail.gmail.com>

Richard Guenther <richard.guenther@gmail.com> writes: > 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. Yes, that approach would make sense, but this doesn't seem like the right time to do it. The -funsafe-math-optimizations option does not permit arbitrary behaviour. It merely permits a set of optimizations which violate strict IEEE conformance. I believe the Go math library can be safe in the presence of those optimizations, because the library does explicit checks for NaN and infinity, where necessary, before it does the actual operation. The math library has a fairly extensive set of tests, including tests of exceptional conditions, and it passes the tests when using -funsafe-math-optimizations. Note that I'm only using -funsafe-math-optimizations on x86. Ian

**Follow-Ups**:**Re: Go patch committed: Build math library with -funsafe-math-optimizations***From:*Richard Guenther

**References**:**Go patch committed: Build math library with -funsafe-math-optimizations***From:*Ian Lance Taylor

**Re: Go patch committed: Build math library with -funsafe-math-optimizations***From:*Richard Guenther

Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|

Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |