This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC viciously beaten by ICC in trig test!
Andreas Jaeger <aj@suse.de> writes:
| "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu> writes:
|
| > > The issue is that glibc's headers provide inline implementations for
| > > sin and cos, and thereby override all of GCC's internal builtin
| > > processing. Once this is done, there's nothing tree-ssa, the
| > > middle-end or the i386 can do to improve the code. If GCC is to have
| > > a hope of using "sincos" or SSE2 specific instruction sequences, the
| > > "best intentions" of glibc's headers (will) have to be neutralized
| > > first. Perhaps fixincludes :>
| >
| >
| > Or you can pass -D__NO_INLINE__ on the command line. I'm of the
| > opinion that we should add that to GCC's specs for all glibc systems.
| >
| > We already do something analogous during bootstrap for GCC itself to
| > disable all of the glibc string inlines. I don't see why the rest of
| > the world has to suffer through them when these things belong in the
| > compiler anyway.
|
| If all functions that glibc's header provide are implemented in GCC
| (remember there was a time GCC didn't include any of these
| optimizations and only glibc did), then I propose to get even rid of
| them in glibc.
Agreed. However, GCC emits native instructions which may be bogus for
some of them -- where Glibc do actual computations. So when removing
the inlines from Glibc, we should be cautious about some of the native
instructions.
-- Gaby