Date: Tue, 06 Aug 2002 18:55:11 -0700 From: Peter Wemm <peter@wemm.org> To: Darren Pilgrim <dmp@pantherdragon.org> Cc: Matthew Dillon <dillon@apollo.backplane.com>, Dan Nelson <dnelson@allantgroup.com>, Terry Lambert <tlambert2@mindspring.com>, Jason Andresen <jandrese@mitre.org>, Dmitry Morozovsky <marck@rinet.ru>, hackers@FreeBSD.ORG Subject: Re: -fomit-frame-pointer for the world build Message-ID: <20020807015511.A1A092A7D6@canning.wemm.org> In-Reply-To: <3D50664F.71603B49@pantherdragon.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Darren Pilgrim wrote:
> Peter Wemm wrote:
> > Far more speed benefit can be had by setting -mcpu/-march/-mtune
> > *correctly* than things like -fomit-frame-pointer will do. For example, 32
> > bit multiply is REALLY slow on i386 (our default target until recently) so
> > gcc will try and "optimize" out multiplies by converting them to shift/add.
> > Of course, this turns out to usually be slower on pentium and above. :-]
>
> How do Intel's "Overdrive" processors fit in? I have one machine that
> has a Pentium Pro Overdrive processor. Do I set CPU=i686 or CPU=p2 in
> this case? Here's kernel line for the CPU:
>
> CPU: Overdrive Pentium II/Pentium II Xeon/Celeron (332.39-MHz 686-class CPU)
> Origin = "GenuineIntel" Id = 0x1631 Stepping = 1
> Features=0x183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV
,PAT,PSE36,MMX,FXSR>
>
> I would assume CPU=p2, but I also know that what's in the ceramic
> casing isn't a standard Pentium II.
The pentium pro, pentium 2 and pentium 3 are essentially the same cpu core
with a few different bells and whistles and different L1 and L2 cache
configurations. eg: pentium3 has got SSE, pentiumpro has got no MMX.
I'd say to call it a pentium2 since it has MMX.
`-mcpu=CPU-TYPE'
Tune to CPU-TYPE everything applicable about the generated code,
except for the ABI and the set of available instructions. The
choices for CPU-TYPE are `i386', `i486', `i586', `i686',
`pentium', `pentium-mmx', `pentiumpro', `pentium2', `pentium3',
`pentium4', `k6', `k6-2', `k6-3', `athlon', `athlon-tbird',
`athlon-4', `athlon-xp' and `athlon-mp'.
You can also add -msse, -msse2, -m3dnow to use those extensions. It would
appear that our bsd.cpu.mk file is out of date and is missing the newer
cpu types.
Also, while reading 'info gcc', I noticed there is the following
new option in 3.1:
`-momit-leaf-frame-pointer'
Don't keep the frame pointer in a register for leaf functions.
This avoids the instructions to save, set up and restore frame
pointers and makes an extra register available in leaf functions.
Cheers,
-Peter
--
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020807015511.A1A092A7D6>
