public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Scott Robert Ladd <coyote@coyotegulch.com>
To: Roger Sayle <roger@eyesopen.com>
Cc: gcc@gcc.gnu.org
Subject: Re: GCC viciously beaten by ICC in trig test!
Date: Mon, 15 Mar 2004 02:41:00 -0000	[thread overview]
Message-ID: <40551459.8050909@coyotegulch.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0403141713460.12909-100000@www.eyesopen.com>

Roger Sayle wrote:
> Consider the following:
> 
> #include <math.h>
> 
> double doit(double a) { return sin(a) * sin(a); }
> 
> 
> Compiling with gcc -O2 -ffast-math on Linux generates x86 code that's
>  significantly slower than Intel's compiler output.  However,
> commenting out the "#include <math.h>" corrects the situation and GCC
> can then generate *exactly* the same sequence as icc.

Wonderful! This is *exactly* the insight I was looking for...

> The issue is that glibc's headers provide inline implementations for
> sin and cos, and thereby override all of GCC's internal builtin
> processing.

I should have thought of this; I've had some past problems with glibc
headers causing problems in my code.

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

Sometimes, I wonder if GCC should ship its own Standard C library, just
as it ships a Standard C++ template library. However, I suspect the
suggesting such a move might be a bit controversial... ;)

-- 
Scott Robert Ladd
Coyote Gulch Productions (http://www.coyotegulch.com)
Software Invention for High-Performance Computing

  parent reply	other threads:[~2004-03-15  2:41 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-14 23:40 Scott Robert Ladd
2004-03-14 23:49 ` Gabriel Dos Reis
2004-03-15  1:47   ` Scott Robert Ladd
2004-03-15  0:11 ` Paolo Carlini
2004-03-15  1:47   ` Scott Robert Ladd
2004-03-15  2:07     ` Daniel Berlin
2004-03-15  2:30       ` Scott Robert Ladd
2004-03-15  2:31         ` Daniel Berlin
2004-03-15  2:38           ` Scott Robert Ladd
2004-03-15 10:00             ` Sebastian Pop
2004-03-15  0:12 ` GCC beaten by ICC in stupid " Andrew Pinski
2004-03-15  0:32   ` Paolo Carlini
2004-03-15  1:31   ` Scott Robert Ladd
2004-03-15  2:36   ` Scott Robert Ladd
2004-03-15 11:25   ` Paolo Carlini
2004-03-15 11:31     ` Paolo Carlini
2004-03-15 13:29     ` Zdenek Dvorak
2004-03-15 13:42       ` Paolo Carlini
2004-03-15 13:51         ` Zdenek Dvorak
2004-03-15 13:55           ` Paolo Carlini
2004-03-15 14:00             ` Zdenek Dvorak
2004-03-15 14:05           ` Joseph S. Myers
2004-03-15 14:13             ` Paolo Carlini
2004-03-15 14:18               ` Zdenek Dvorak
2004-03-15 14:29                 ` Segher Boessenkool
2004-03-15 14:28               ` Joseph S. Myers
2004-03-15  1:55 ` GCC viciously beaten by ICC in " Roger Sayle
2004-03-15  2:22   ` Dan Nicolaescu
2004-03-15 12:05     ` Stelios Xanthakis
2004-03-15 18:22       ` Dan Nicolaescu
2004-03-15  2:41   ` Scott Robert Ladd [this message]
2004-03-15  3:05     ` Gabriel Dos Reis
2004-03-15 14:47       ` Segher Boessenkool
2004-03-15 17:44         ` Geert Bosch
2004-03-15 17:46           ` Geert Bosch
2004-03-15  2:41   ` Kaveh R. Ghazi
2004-03-15  6:06     ` Andreas Jaeger
2004-03-15  8:57       ` Gabriel Dos Reis
2004-03-15  3:01   ` Gabriel Dos Reis
2004-03-15  4:06     ` Scott Robert Ladd
2004-03-15  5:15   ` James Morrison
2004-03-15  8:20     ` Jakub Jelinek
2004-03-15 18:13       ` Joe Buck
2004-03-16 13:31         ` Jakub Jelinek
2004-03-15  7:42   ` Ranjit Mathew
2004-03-15 19:00   ` Toon Moene
2004-03-15 19:44     ` Laurent GUERBY
2004-03-15  3:19 Stephan T. Lavavej
2004-03-15  3:29 ` Gabriel Dos Reis
2004-03-15 12:40   ` Scott Robert Ladd
2004-03-15 12:53     ` Gabriel Dos Reis
2004-03-15 13:37       ` Scott Robert Ladd
2004-03-15 15:11     ` Ian Lance Taylor
2004-03-15 16:25       ` Stephan T. Lavavej
2004-03-15 16:40         ` Jakub Jelinek
2004-03-15 16:46         ` Ian Lance Taylor
2004-03-15 16:56           ` Paolo Carlini
2004-03-15 17:10             ` Gabriel Dos Reis
2004-03-15 17:15               ` Paolo Carlini
2004-03-15 17:58                 ` Gabriel Dos Reis
2004-03-15 16:59           ` Gabriel Dos Reis
2004-03-15 17:28             ` Ian Lance Taylor
2004-03-15 17:47               ` Gabriel Dos Reis
2004-03-15 17:52               ` Joe Buck
2004-03-15 17:53               ` Phil Edwards
2004-03-15 17:45     ` Joe Buck
2004-03-15 19:50       ` Scott Robert Ladd
2004-03-16  1:00     ` Zack Weinberg
2004-03-17  0:07       ` Kai Henningsen
2004-03-16 23:12   ` Kai Henningsen
2004-03-17  3:00     ` Ian Lance Taylor
2004-03-15 17:42 ` Joe Buck
2004-03-17  0:31 Stephan T. Lavavej
2004-03-17  3:30 ` Ian Lance Taylor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=40551459.8050909@coyotegulch.com \
    --to=coyote@coyotegulch.com \
    --cc=gcc@gcc.gnu.org \
    --cc=roger@eyesopen.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).