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: march question on pentium4


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


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