Specifies the target system for instruction set and optimization.
The value of t must be one of the following: native, generic, native64, generic64, system-name.
Each specific value for -xtarget expands into a specific set of values for the -xarch, -xchip, and -xcache options. Use the -xdryrun option to determine the expansion of -xtarget=native on a running system.
For example, -xtarget=sun4/15 is equivalent to: -xarch=v8a -xchip=micro -xcache=2/16/1.
The expansion of -xtarget for a specific host platform might not expand to the same -xarch, -xchip, or -xcache settings as -xtarget=native when compiling on that platform.
Flag |
Meaning |
---|---|
native |
Gets the best performance on the host system. The compiler generates code for the best performance on the host system. It determines the available architecture, chip, and cache properties of the machine on which the compiler is running. |
native64 |
Gets the best performance for 64-bit object binaries on the host system. The compiler generates 64-bit object binaries optimized for the host system. It determines the available 64-bit architecture, chip, and cache properties of the machine on which the compiler is running. |
generic |
This is the default value. Gets the best performance for generic architecture, chip, and cache. |
generic64 |
Sets the parameters for the best performance of 64-bit object binaries over most 64-bit platform architectures. |
system-name |
Gets the best performance for the specified system. Select a system name from the following lists for which represents the actual system you are targeting. |
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.
Compiling for 64-bit Solaris software on SPARC or UltraSPARC V9 is indicated by the -m64 option. If you specify -xtarget with a flag other than native64 or generic64, you must also specify the -m64 option as follows: -xtarget=ultra... -m64 otherwise the compiler uses a 32-bit memory model.
Table B–38 The -xtarget Expansions on SPARC
-xtarget= |
-xarch |
-xchip |
-xcache |
---|---|---|---|
generic |
generic |
generic |
generic |
cs6400 |
v8 |
super |
16/32/4:2048/64/1 |
entr150 |
v8 |
ultra |
16/32/1:512/64/1 |
entr2 |
v8plusa |
ultra |
16/32/1:512/64/1 |
entr2/1170 |
v8plusa |
ultra |
16/32/1:512/64/1 |
entr2/1200 |
v8plusa |
ultra |
16/32/1:512/64/1 |
entr2/2170 |
v8plusa |
ultra |
16/32/1:512/64/1 |
entr2/2200 |
v8plusa |
ultra |
16/32/1:512/64/1 |
entr3000 |
v8plusa |
ultra |
16/32/1:512/64/1 |
entr4000 |
v8plusa |
ultra |
16/32/1:512/64/1 |
entr5000 |
v8plusa |
ultra |
16/32/1:512/64/1 |
entr6000 |
v8plusa |
ultra |
16/32/1:512/64/1 |
sc2000 |
v8 |
super |
16/32/4:2048/64/1 |
solb6 |
v8 |
super |
16/32/4:1024/32/1 |
ss10 |
v8 |
super |
16/32/4 |
ss10/20 |
v8 |
super |
16/32/4 |
ss10/30 |
v8 |
super |
16/32/4 |
ss10/40 |
v8 |
super |
16/32/4 |
ss10/402 |
v8 |
super |
16/32/4 |
ss10/41 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/412 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/50 |
v8 |
super |
16/32/4 |
ss10/51 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/512 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/514 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/61 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/612 |
v8 |
super |
16/32/4:1024/32/1 |
ss10/71 |
v8 |
super2 |
16/32/4:1024/32/1 |
ss10/712 |
v8 |
super2 |
16/32/4:1024/32/1 |
ss10/hs11 |
v8 |
hyper |
256/64/1 |
ss10/hs12 |
v8 |
hyper |
256/64/1 |
ss10/hs14 |
v8 |
hyper |
256/64/1 |
ss10/hs21 |
v8 |
hyper |
256/64/1 |
ss10/hs22 |
v8 |
hyper |
256/64/1 |
ss1000 |
v8 |
super |
16/32/4:1024/32/1 |
ss20 |
v8 |
super |
16/32/4:1024/32/1 |
ss20/151 |
v8 |
hyper |
512/64/1 |
ss20/152 |
v8 |
hyper |
512/64/1 |
ss20/50 |
v8 |
super |
16/32/4 |
ss20/502 |
v8 |
super |
16/32/4 |
ss20/51 |
v8 |
super |
16/32/4:1024/32/1 |
ss20/512 |
v8 |
super |
16/32/4:1024/32/1 |
ss20/514 |
v8 |
super |
16/32/4:1024/32/1 |
ss20/61 |
v8 |
super |
16/32/4:1024/32/1 |
ss20/612 |
v8 |
super |
16/32/4:1024/32/1 |
ss20/71 |
v8 |
super2 |
16/32/4:1024/32/1 |
ss20/712 |
v8 |
super2 |
16/32/4:1024/32/1 |
ss20/hs11 |
v8 |
hyper |
256/64/1 |
ss20/hs12 |
v8 |
hyper |
256/64/1 |
ss20/hs14 |
v8 |
hyper |
256/64/1 |
ss20/hs21 |
v8 |
hyper |
256/64/1 |
ss20/hs22 |
v8 |
hyper |
256/64/1 |
ss4 |
v8a |
micro2 |
8/16/1 |
ss4/110 |
v8a |
micro2 |
8/16/1 |
ss4/85 |
v8a |
micro2 |
8/16/1 |
ss5 |
v8a |
micro2 |
8/16/1 |
ss5/110 |
v8a |
micro2 |
8/16/1 |
ss5/85 |
v8a |
micro2 |
8/16/1 |
ss600/41 |
v8 |
super |
16/32/4:1024/32/1 |
ss600/412 |
v8 |
super |
16/32/4:1024/32/1 |
ss600/51 |
v8 |
super |
16/32/4:1024/32/1 |
ss600/512 |
v8 |
super |
16/32/4:1024/32/1 |
ss600/514 |
v8 |
super |
16/32/4:1024/32/1 |
ss600/61 |
v8 |
super |
16/32/4:1024/32/1 |
ss600/612 |
v8 |
super |
16/32/4:1024/32/1 |
sslc |
v8a |
micro |
2/16/1 |
sslx |
v8a |
micro |
2/16/1 |
sslx2 |
v8a |
micro2 |
8/16/1 |
ssvyger |
v8a |
micro2 |
8/16/1 |
sun4/15 |
v8a |
micro |
2/16/1 |
sun4/30 |
v8a |
micro |
2/16/1 |
ultra |
v8plusa |
ultra |
16/32/1:512/64/1 |
ultra1/140 |
v8plusa |
ultra |
16/32/1:512/64/1 |
ultra1/170 |
v8plusa |
ultra |
16/32/1:512/64/1 |
ultra1/200 |
v8plusa |
ultra |
16/32/1:512/64/1 |
ultra2 |
v8plusa |
ultra2 |
16/32/1:512/64/1 |
ultra2/1170 |
v8plusa |
ultra |
16/32/1:512/64/1 |
ultra2/1200 |
v8plusa |
ultra |
16/32/1:1024/64/1 |
ultra2/1300 |
v8plusa |
ultra2 |
16/32/1:2048/64/1 |
ultra2/2170 |
v8plusa |
ultra |
16/32/1:512/64/1 |
ultra2/2200 |
v8plusa |
ultra |
16/32/1:1024/64/1 |
ultra2/2300 |
v8plusa |
ultra2 |
16/32/1:2048/64/1 |
ultra2e |
v8plusa |
ultra2e |
16/32/1:256/64/4 |
ultra2i |
v8plusa |
ultra2i |
16/32/1:512/64/1 |
ultra3 |
v8plusa |
ultra3 |
64/32/4:8192/512/1 |
ultra3cu |
v8plusa |
ultra3cu |
64/32/4:8192/512/2 |
ultra3i |
v8plusa |
ultra3i |
64/32/4:1024/64/4 |
ultra4 |
v8plusa |
ultra4 |
64/32/4:8192/128/2 |
ultra4plus |
v8plusa |
ultra4plus |
64/32/4:2048/64/4/2:32768/64/4 |
ultraT1 |
v8plusa |
ultraT1 |
8/16/4/4:3072/64/12/32 |
ultraT2 |
sparcvis2 |
ultraT2 |
8/16/4:4096/64/16 |
sparc64vi |
sparcfmaf |
sparc64vi |
128/64/2:5120/64/10 |
See B.2.74 -xcache[=c] for more information on the cache properties of the UltraSPARC IVplus, UltraSPARC T1, and UltraSPARC T2 chips. |
Compiling for 64-bit Solaris software on 64-bit x86 platforms is indicated by the -m64 option. If you specify -xtarget with a flag other than native64 or generic64, you must also specify the -m64 option as follows: -xtarget=opteron ... -m64 otherwise the compiler uses a 32-bit memory model.
Table B–39 The -xtarget Expansions on x86
-xtarget= |
-xarch |
-xchip |
-xcache |
---|---|---|---|
generic |
generic |
generic |
generic |
opteron |
sse2 |
opteron |
64/64/2:1024/64/16 |
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 |