-X (-W)
Category
Pragma equivalent
None.
Purpose
Passes one or more options to a component that is executed during compilation.
Syntax
(1) >>- -X--+-assembler----+------option--------------------------->< +-preprocessor-+ +-linker-------+ +-partitioner--+ +-wc2llvm------+ +-llvm2ptx-----+ +-ptxas--------+ '-nvcc---------'
- You must insert at least one space before option.
.-------. .-----------. V | V | >>- -W----+-@-+-+----,--option-+------------------------------->< +-a-+ +-b-+ +-c-+ +-C-+ +-d-+ +-I-+ +-L-+ +-l-+ +-n-+ +-p-+ +-s-+ +-w-+ '-x-'
Parameters
- option
- Any option that is valid for the component to which it is being
passed. Notes:
- You can find the NVVM-IR to PTX translator options in the libNVVM API section in the CUDA Toolkit documentation at http://docs.nvidia.com/cuda/libnvvm-api/group__compilation.html under nvvmCompileProgram.
- You can get a list of the PTX assembler options by running ptxas from the CUDA Toolkit with -h.
For -X, for details about the options for linking and assembling, see the GNU Compiler Collection online documentation at http://gcc.gnu.org/onlinedocs/.
The following table shows the correspondence between -X or -W parameters and the component names:
Parameter of -W | Parameter of -X | Description | Component name |
---|---|---|---|
@ | ptxas | The PTX assembler | ptxas |
a | assembler | The assembler | as |
b | The low-level optimizer | xlCcode | |
c, C | The C and C++ compiler front end | xlCentry | |
d | The disassembler | dis | |
I (uppercase i) | The high-level optimizer, compile step | ipa | |
L | The high-level optimizer, link step | ipa | |
l (lowercase L) | linker | The linker | ld |
n | nvcc | The NVIDIA C compiler, which is used as a device linker | nvcc |
p | preprocessor | The preprocessor | xlCentry |
s | partitioner | The XL intermediate language (W-Code) splitter | partitioner |
w | wc2llvm | The XL intermediate language (W-Code) to NVVM-IR translator | wc2llvm |
x | llvm2ptx | The NVVM-IR to PTX translator | llvm2ptx |
Usage
In the string following the -W option, use a comma as the separator for each option, and do not include any spaces. For the -X option, one space is needed before the option. If you need to include a character that is special to the shell in the option string, precede the character with a backslash. For example, if you use the -X or -W option in the configuration file, you can use the escape sequence backslash comma (\,) to represent a comma in the parameter string.
You do not need the -X or -W option to pass most options to the linker ld; unrecognized command-line options, except -q options, are passed to it automatically. Only linker options with the same letters as compiler options, such as -v or -S, strictly require -X or -W.
To use -W@, -Wn, -Ws, -Ww, -Wx, or their respective -X equivalents, you must specify the -qoffload option.
Predefined macros
None.
Examples
xlc -Xlinker -symbolic file.c
xlc -Xassembler -alh produces_warnings.s -Xlinker -s uses_many_symbols.c
xlc -Wa,-alh produces_warnings.s -Wl,-s uses_many_symbols.c