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
|
|
|
|
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
|
|
|
|
|
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.