Oracle® Solaris Studio 12.4: Fortran User's Guide

Exit Print View

Updated: March 2015
 
 

3.4.179 –xtarget=t

Specify the target platform for the instruction set and optimization.

t must be one of: native, native64, generic, generic64, platform–name.

The -xtarget option permits a quick and easy specification of the -xarch, -xchip, and -xcache combinations that occur on real platforms. The only meaning of -xtarget is in its expansion.

The performance of some programs may benefit by providing the compiler with an accurate description of the target computer hardware. When program performance is critical, the proper specification of the target hardware could be very important. This is especially true when running on the newer SPARC processors. However, for most programs and older SPARC processors, the performance gain is negligible and a generic specification is sufficient.

The actual expansion of -xtarget values can change from release to release. You can always determine the expansion that the compiler will use with the -dryrun flag:

demo% f95 -dryrun -xtarget=ultra4plus
###     command line files and options (expanded):
### -dryrun -xarch=sparcvis 
    -xcache=64/32/4/1:2048/64/4/2:32768/64/4/2 -xchip=ultra4plus

Note that the —xtarget expansion for a particular named platform might not be the same as —xtarget=native on that same platform.

3.4.179.1 Generic and Native Platforms

native

Optimize performance for the host platform (32–bits).

Expands to —m32 —xarch=native —xchip=native —xcache=native

native64

Obsolete. Use —xtarget=native —m64 instead.

generic

Get the best performance for most 32–bit platforms.

This is the default and expands to: -m32 -xarch=generic -xchip=generic -xcache=generic

generic64

Obsolete. Use -xtarget=generic -m64 instead.

platform–name

Get the best performance for the specified platform listed below.

3.4.179.2 SPARC Platforms

The following table gives a list of the commonly used system platform names accepted by the compiler.

Table 3-21  Expansions of Commonly Used -xtarget System Platforms
-xtarget= platform-name
-xarch
-xchip
-xcache
sparc64vi
sparcfmaf
sparc64vi
128/64/2:5120/64/10
sparc64vii
sparcima
sparc64vii
64/64/2:5120/256/10
sparc64viiplus
sparcima
sparc64viiplus
64/64/2:11264/256/11
sparc64x
sparcace
sparc64x
64/128/4/2:24576/128/24/32
sparc64xplus
sparcaceplus
sparc64xplus
64/128/4/2:24576/128/24/32
ultra
sparcvis
ultra
16/32/1:512/64/1
ultra1/140
sparcvis
ultra
16/32/1:512/64/1
ultra1/170
sparcvis
ultra
16/32/1:512/64/1
ultra1/200
sparcvis
ultra
16/32/1:512/64/1
ultra2
sparcvis
ultra2
16/32/1:512/64/1
ultra2/1170
sparcvis
ultra
16/32/1:512/64/1
ultra2/1200
sparcvis
ultra
16/32/1:1024/64/1
ultra2/1300
sparcvis
ultra2
16/32/1:2048/64/1
ultra2/2170
sparcvis
ultra
16/32/1:512/64/1
ultra2/2200
sparcvis
ultra
16/32/1:1024/64/1
ultra2/2300
sparcvis
ultra2
16/32/1:2048/64/1
ultra2e
sparcvis
ultra2e
16/32/1:256/64/4
ultra2i
sparcvis
ultra2i
16/32/1:512/64/1
ultra3
sparcvis2
ultra3
64/32/4:8192/512/1
ultra3cu
sparcvis2
ultra3cu
64/32/4:8192/512/2
ultra3i
sparcvis2
ultra3i
64/32/4:1024/64/4
ultra4
sparcvis2
ultra4
64/32/4:8192/128/2
ultra4plus
sparcvis2
ultra4plus
64/32/4/1:2048/64/4/2:32768/64/4/2
ultraT1
sparc
ultraT1
8/16/4/4:3072/64/12/32
ultraT2
sparcvis2
ultraT2
8/16/4:4096/64/16
ultraT2plus
sparcvis2
ultraT2plus
8/16/4:4096/64/16
ultraT3
sparcvis3
ultraT3
8/16/4:6144/64/24
T3
sparcvis3
T3
8/16/4:6144/64/24
T4
sparc4
T4
16/32/4:128/32/8:4096/64/16
T5
sparc4
T5
16/32/4/8:128/32/8/8:8192/64/16/128
T7
sparc5
T7
16/32/4/8:256/64/8/16:8192/64/8/32
M5
sparc4
M5
16/32/4/8:128/32/8/8:49152/64/12/48
M6
sparc4
M6
16/32/4/8:128/32/8/8:49152/64/12/96
M7
sparc5
M7
16/32/4/8:256/64/8/16:8192/64/8/32

Note -  The following SPARC -xtarget values are obsolete and may be removed in a future release: ultra, ultra1/140, ultra1/170, ultra1/200, ultra2, ultra2e, ultra2i, ultra2/1170, ultra2/1200, ultra2/1300, ultra2/2170, ultra2/2200, ultra2/2300, ultra3, ultra3cu, ultra3i, ultra4, and ultra4plus.

Compiling for a 64-bit Solaris OS on 64–bit enabled platforms is indicated by the -m64 flag. If -xtarget is specified, -m64 must appear after the -xtarget flag, as in:

-xtarget=ultra2   ...   -m64

otherwise the default 32–bit memory model will be used.

3.4.179.3 x86 Platforms

The valid -xtarget platform names for x86 systems and their expansions are shown in the following table.

Table 3-22  -xtarget Values on x86 Platforms
-xtarget=
-xarch
-xchip
-xcache
pentium
386
pentium
generic
pentium_pro
pentium_pro
pentium_pro
generic
pentium3
sse
pentium3
16/32/4:256/32/4
pentium4
sse2
pentium4
8/64/4:256/128/8
opteron
sse2a
opteron
64/64/2:1024/64/16
woodcrest
ssse3
core2
32/64/8:4096/64/16
barcelona
amdsse4a
amdfam10
64/64/2:512/64/16
penryn
sse4_1
penryn
2/64/8:6144/64/24
nehalem
sse4_2
nehalem
32/64/8:256/64/8:8192/64/16
westmere
aes
westmere
32/64/8:256/64/8:30720/64/24
sandybridge
avx
sandybridge
32/64/8/2:256/64/8/2:20480/64/20/16
ivybridge
avx_i
ivybridge
32/64/8/2:256/64/8/2:20480/64/20/16
haswell
avx2
haswell
32/64/8/2:256/64/8/2:20480/64/20/16

Compiling for 64-bit Solaris OS on 64-bit enabled x86 platform is indicated by the -m64 flag. For example, compiling with -xtarget=opteron is not necessary or sufficient. If -xtarget is specified, the -m64 option must appear after the -xtarget flag, as in:

-xtarget=opteron -m64

otherwise the compilation will be 32-bit x86.