This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: weird optimization in sin+cos, x86 backend
On Tue, 14 Feb 2012, Christoph Lauter wrote:
> As a matter of course, we'd be more than happy to get your input (and even
> guidance w.r.t. copyright management and coding conventions) on and during
> that project.
* GNU projects do not automatically need copyright assignments to the FSF
(some do, some don't), but GCC and glibc are among the projects that do
require assignments and I've never heard of an assigning project changing
to non-assigning. So assigning the work to the FSF is certainly the safe
option for inclusion in GCC and glibc, although it may not be required.
(GCC does not necessarily require assignments for new runtime libraries;
see the Mission Statement. glibc has lots of existing non-assigned code
in libm, though new non-assigned code would need FSF approval.)
* The soft-fp license - LGPL+exception - is the safe option for licensing
code built for the target - code going in libm itself - although other
permissive licenses approved by the FSF would also be fine.
* Host-side code - generators - need to be free software; the GNU
convention would be GPLv3+ although other free software licenses should
also work (subject to FSF approval if this is a GNU project).
* The generators (for code in libm, test cases, etc.) must be fully usable
using only free software. For example, generators using Maple or
Mathematica would not be OK for a GNU libm project. The exact free
software licenses for languages and libraries used in the generators are
not so significant - as long as the licenses are suitably compatible for
whatever combinations are formed. I don't know what tools will be most
appropriate here (though it seems likely GNU MP and GNU MPFR would end up
involved somewhere even if code is not written directly in C using those C
libraries directly).
* Follow the GNU Coding Standards for both the generated code, and for
generators if those are written in C or C++ rather than some higher level
language. If using some higher level language, still follow the GNU
Coding Standards as far as they make sense (not for details of source code
formatting, but for such things as making programs support --help and
--version, for example).
> If (parts of) GNU or gcc could officially endorse it, we'd even be happier.
> This might also help to get the financing.
I suspect endorsement may be tricky in that normally a new GNU project
would I think be designated as such at a point where working code already
exists. But personally I think it's a very good idea to learn from what
was done with crlibm and more recent research and use that to produce
automatically generated versions of C99 libm functions suitable for use in
both GCC and glibc (fully namespace-clean, avoiding global state,
configurable as regards error handling, etc.), suitable for meeting a
range of speed and accuracy requirements, able to handle variations among
hardware architectures (for example, including variants of float and
double functions that work correctly with x87 in 64-bit precision mode
when the only type with real hardware operations is long double). And
certainly people can talk to RMS about the directions we'd like to follow
for libm development, where this involves such things as choice of
licensing and starting new GNU projects.
--
Joseph S. Myers
joseph@codesourcery.com
- References:
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- From: James Courtier-Dutton
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend