This is the mail archive of the gcc@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: 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


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