This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: march question on pentium4
- From: Tim Prince <tprince at computer dot org>
- To: Joe Buck <Joe dot Buck at synopsys dot com>
- Cc: martin dot kahlert at infineon dot com, gcc at gcc dot gnu dot org
- Date: Sun, 1 Sep 2002 22:26:05 -0700
- Subject: Re: march question on pentium4
- References: <200208301908.MAA07862@atrus.synopsys.com>
- Reply-to: tprince at computer dot org
On Friday 30 August 2002 12:08, Joe Buck wrote:
> On Thursday 29 August 2002 23:04, Martin Kahlert wrote:
> > > Hi!
> > > I use gcc-3.2 release on a FreeBSD system running on a Pentium 4
> > > machine.
> > >
> > > My (integer based, no floating point at all) code shows a strange
> > > behaviour: It is faster when compiled with -march=pentium3 than
> > > with -march=pentium4. Is this a known issue or a problem that should be
> > > investigated further?
>
> Tim Prince writes:
> > If I am to speculate without an example, the pentium4 costs for shift
> > and multiply are set so high that the compiler will always use the
> > alternative of add sequences...
>
> It would be better, I think, to look at the actual example and determine
> if there are any outright errors in costs for the P4 or P3.
This is not a question of outright error. The point at which the switch
between shift (or multiply) and add sequences should be made depends on more
factors than the basic costs of the operations, and on the specific model of
the CPU. Extremely large code expansion in add sequences, even though it is
in agreement with the basic costs, will not produce the expected performance
benefit in practical context. Even though a P4 shift costs much more than 4
adds, in isolation, in practice it is seldom useful to use more than 3 adds
to replace a shift. The attempt to use the actual costs of the operations
may be the right way on a processor which has no out-of-order facility.
--
Tim Prince