processor type.

Jeremy Tregunna jtregunna at blurgle.ca
Mon Jan 10 11:26:11 PST 2005


On 10-Jan-05, at 11:07 AM, William H. Magill wrote:
<snip>
> However, I understand that the GCC compiler picked up (some?many?all)
> the Alpha optimization enhancements offered by Compaq shortly before
> the Intel/HP deal.

If this is the case, it doesn't do them very well, gcc is still dog 
slow optimizing compared to CCC.

> And I do know from long TRU64 experience that optimizing for a 
> particular
> EVx chip can make a big difference.
>
> The man page for the Dec C Compiler under 5.1A:
> Compaq C V6.3-028 on Compaq Tru64 UNIX V5.1 (Rev. 732)
> Compiler Driver V6.3-026 (sys) cc Driver
> states:
> (Note: There are two relevant options for ccc -arch and -tune.)
>
> -arch option
>       Specifies which version of the Alpha architecture to generate
>       instructions for. All Alpha processors implement a core set of 
> instruc-
>       tions and, in some cases, the following extensions: BWX 
> (byte/word-
>       manipulation extension), MVI (multimedia extension), FIX (square 
> root
>       and floating-point convert extension), and CIX (count 
> extension). (The
>       Alpha Architecture Reference Manual describes the extensions in
>       detail.)
>
>       The option specified by the -arch option determines which 
> instructions
>       the compiler can generate:
>
>       generic
>           Generate instructions that are appropriate for all Alpha 
> proces-
>           sors. This option is the default.
>
>       host
>           Generate instructions for the processor that the compiler is 
> run-
>           ning on (for example, EV6 instructions on an EV6 processor).
>
>      ev4,ev5
>           Generate instructions for the EV4 processor (21064, 21064A, 
> 21066,
>           and 21068 chips) and EV5 processor (some 21164 chips). (Note 
> that
>           chip number 21164 is used for both EV5 and EV56 processors.)
>
>           Applications compiled with this option will not incur any 
> emulation
>           overhead on any Alpha processor.
>
>       ev56
>           Generate instructions for EV56 processors (some 21164 chips).
>
>           This option permits the compiler to generate any EV4 
> instruction,
>           plus any instructions contained in the BWX extension.
>
>           Applications compiled with this option may incur emulation 
> overhead
>           on EV4 and EV5 processors.
>
>       ev6 Generate instructions for EV6 processors (21264 chips).
>
>           This option permits the compiler to generate any EV6 
> instruction,
>           plus any instructions contained in the following extensions: 
> BWX,
>           MVI, and FIX.
>
>           Applications compiled with this option may incur emulation 
> overhead
>           on EV4, EV5, EV56, and PCA56 processors.
>
>       ev67
>           Generate instructions for EV67 processors (21264A chips).
>
>           This option is the same as the ev6 option except that it 
> also per-
>           mits the compiler to generate any instructions contained in 
> the CIX
>           extension.
>
>           If your application uses CIX instructions, it may incur 
> emulation
>           overhead on all processors that are older than EV67.
>
>      pca56
>           Generate instructions for PCA56 processors (21164PC chips).
>
>           This option permits the compiler to generate any EV4 
> instruction,
>           plus any instructions contained in the BWX and MVI 
> extensions.
>
>           Applications compiled with this option may incur emulation 
> overhead
>           on EV4, EV5, and EV56 processors.
>
>       A program compiled with any of the options will run on any Alpha 
> pro-
>       cessor.  Beginning with DIGITAL UNIX V4.0 and continuing with 
> subse-
>       quent versions, the operating system kernel includes an 
> instruction
>       emulator. This capability allows any Alpha chip to execute and 
> produce
>       correct results from Alpha instructions--even if the some of the
>       instructions are not implemented on the chip. Applications using 
> emu-
>       lated instructions will run correctly, but may incur significant 
> emula-
>       tion overhead at run time.
>
>       The psrinfo -v command can be used to determine which type of 
> processor
>       is installed on any given Alpha system.
>
>       Note the following differences between the -arch evx and -tune 
> evx
>       options (where x designates a specific processor):
>
>         +  -arch evx implies -tune evx, but -tune evx does not imply 
> -arch
>            evx.
>
>         +  -arch evx can generate unguarded evx-specific instructions. 
>  If
>            you run that application on a pre-evx processor, those 
> instruc-
>            tions may get emulated (and emulated instructions can be up 
> to
>            1000 times slower than actual instructions).
>
>         +  -tune evx can generate evx-specific instructions, but those 
> are
>            always amask-guarded. That expands the code size but avoids
>            instruction emulation.
>
>         +  If you want the best performance possible on an evx 
> processor and
>            are not concerned about performance on earlier processors, 
> the
>            best choice would be -arch evx (which implies -tune evx).
>
>         +  If you want good performance on an evx processor but also 
> want the
>            application to run reasonably fast on earlier processors, 
> the best
>            choice would probably be -tune evx.
>
> ===============
> -tune option
>       Instructs the optimizer to tune the application for a specific 
> version
>       of the Alpha hardware. This will not prevent the application 
> from run-
>       ning correctly on other versions of Alpha but it may run more 
> slowly
>       than generically-tuned code on those versions.
>
>       The option argument can be one of the following, which selects 
> instruc-
>       tion tuning appropriate for the listed processor(s):
>
>       generic
>           All Alpha processors.  This is the default.
>
>       host
>           The processor on which the code is compiled.
>
>       ev4 The 21064, 21064A, and 21068 processors.
>
>       ev5,ev56
>           The 21164 processor.  (Both EV5 and EV56 are numbered 21164.)
>
>       ev6 The 21264 processor.
>
>       ev67
>           The 21264A processor.
>
>       See also the -arch option for an explanation of the differences 
> between
>       -tune and -arch.
>
>
> T.T.F.N.
> William H. Magill
> # Beige G3 [Rev A motherboard - 300 MHz 768 Meg] OS X 10.2.8
> # Flat-panel iMac (2.1) [800MHz - Super Drive - 768 Meg] OS X 10.3.7
> # PWS433a [Alpha 21164 Rev 7.2 (EV56)- 64 Meg] Tru64 5.1a
> # XP1000  [Alpha 21264-3 (EV6) - 256 meg] FreeBSD 5.3
> # XP1000  [Alpha 21264-A (EV 6.7) - 384 meg] FreeBSD 5.3
> magill at mcgillsociety.org
> magill at acm.org
> magill at mac.com
> whmagill at gmail.com
>
> _______________________________________________
> freebsd-alpha at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-alpha
> To unsubscribe, send any mail to 
> "freebsd-alpha-unsubscribe at freebsd.org"
>
> !DSPAM:41e2a80f10651789918842!
>
>
>


--
Jeremy Tregunna
jtregunna at blurgle.ca



More information about the freebsd-alpha mailing list