processor type.

Bernd Walter ticso at cicely12.cicely.de
Fri Jan 14 00:53:46 PST 2005


On Fri, Jan 14, 2005 at 08:43:37AM +0100, Wilko Bulte wrote:
> On Thu, Jan 13, 2005 at 04:26:51PM -0800, David O'Brien wrote..
> > On Mon, Jan 10, 2005 at 08:16:06AM -0500, David Gilbert wrote:
> > > I see in the compiler lines crawling by that gcc is asked to optimize
> > > for 'EV5' while being compatible with 'EV4'.  My Alpha is an EV4 ---
> > > I'm wondering if I would see better performance with a different flag
> > > there, but the gcc manual doesn't even acknowledge the existance of
> > > the options that are in use, let alone the available options.
> > 
> > It doens't???
> > 
> > >From /usr/share/mk/bsd.cpu.mk:
> >     . elif ${MACHINE_ARCH} == "alpha"
> >     _CPUCFLAGS = -mcpu=ev4 -mtune=ev5
> > 
> > http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/DEC-Alpha-Options.html#DEC-Alpha-Options
> > clearly tells:
> > 
> > -mcpu=cpu_type
> >     Set the instruction set and instruction scheduling parameters for
> >     machine type cpu_type. You can specify either the EV style name or
> >     the corresponding chip number. GCC supports scheduling parameters for
> >     the EV4, EV5 and EV6 family of processors.
> > 
> > -mtune=cpu_type
> >     Set only the instruction scheduling parameters for machine type
> >     cpu_type. The instruction set is not changed.
> > 
> > 
> > That said, you should remove the -mtune=ev5 or change it to -mtune=ev4.
> > My guess is you won't notice a difference, but this this change will
> > produce the best code for your machine.
> 
> Any idea how drastic -mtune=ev6 would change things on a DS10 (to name
> a random box ;-) ?

Theoretically -mtune=ev6 could make a noticeable difference, but using
BWX gets you way more than mtune.
It could make thing slower on older systems and you still want to do a
complete recompile on ev56 and up systems.
I don't see any real win for ev6 users.

> Am I correct in assuming that -mcpu=ev4 will result in not using the BWX
> etc of the newer CPUs?  And that -mcpu=ev6 will result in code that does
> not run on anything older than EV6 due to missing instructions etc?

ev56 is the first BWX implementation and pca56 brings some multimedia
related instructions - don't think that ev6 has new instructions.
BWX instructions are emulated for userland tools, so ev56 compiled
applications should work on any alpha, but ev6 may not.
However the kernel and bootcode strictly needs to stay with common
instructions and emulation of BWX is naturaly much slower than running
code without them.

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd at bwct.de                                  info at bwct.de



More information about the freebsd-alpha mailing list