xref: /openbsd-src/gnu/llvm/clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td (revision 12c855180aad702bbcca06e0398d774beeafb155)
1*12c85518Srobertinclude "llvm/Option/OptParser.td"
2*12c85518Srobert
3*12c85518Srobertdef WrapperOnlyOption : OptionFlag;
4*12c85518Srobertdef DeviceOnlyOption : OptionFlag;
5*12c85518Srobert
6*12c85518Srobertdef help : Flag<["--"], "help">,
7*12c85518Srobert  HelpText<"Display available options (--help-hidden for more)">;
8*12c85518Srobert
9*12c85518Srobertdef help_hidden : Flag<["--"], "help-hidden">,
10*12c85518Srobert  HelpText<"Display all available options">;
11*12c85518Srobert
12*12c85518Srobert// Flags for the linker wrapper.
13*12c85518Srobertdef linker_path_EQ : Joined<["--"], "linker-path=">,
14*12c85518Srobert  Flags<[WrapperOnlyOption]>, MetaVarName<"<path>">,
15*12c85518Srobert  HelpText<"The linker executable to invoke">;
16*12c85518Srobertdef cuda_path_EQ : Joined<["--"], "cuda-path=">,
17*12c85518Srobert  Flags<[WrapperOnlyOption]>, MetaVarName<"<dir>">,
18*12c85518Srobert  HelpText<"Set the system CUDA path">;
19*12c85518Srobertdef host_triple_EQ : Joined<["--"], "host-triple=">,
20*12c85518Srobert  Flags<[WrapperOnlyOption]>, MetaVarName<"<triple>">,
21*12c85518Srobert  HelpText<"Triple to use for the host compilation">;
22*12c85518Srobertdef opt_level : Joined<["--"], "opt-level=">,
23*12c85518Srobert  Flags<[WrapperOnlyOption]>, MetaVarName<"<O0, O1, O2, or O3>">,
24*12c85518Srobert  HelpText<"Optimization level for LTO">;
25*12c85518Srobertdef bitcode_library_EQ : Joined<["--"], "bitcode-library=">,
26*12c85518Srobert  Flags<[WrapperOnlyOption]>, MetaVarName<"<kind>-<triple>-<arch>=<path>">,
27*12c85518Srobert  HelpText<"Extra bitcode library to link">;
28*12c85518Srobertdef device_linker_args_EQ : Joined<["--"], "device-linker=">,
29*12c85518Srobert  Flags<[WrapperOnlyOption]>, MetaVarName<"<value> or <triple>=<value>">,
30*12c85518Srobert  HelpText<"Arguments to pass to the device linker invocation">;
31*12c85518Srobertdef dry_run : Flag<["--"], "dry-run">,
32*12c85518Srobert  Flags<[WrapperOnlyOption]>,
33*12c85518Srobert  HelpText<"Print program arguments without running">;
34*12c85518Srobertdef verbose : Flag<["--"], "wrapper-verbose">,
35*12c85518Srobert  Flags<[WrapperOnlyOption]>, HelpText<"Verbose output from tools">;
36*12c85518Srobertdef embed_bitcode : Flag<["--"], "embed-bitcode">,
37*12c85518Srobert  Flags<[WrapperOnlyOption]>, HelpText<"Embed linked bitcode in the module">;
38*12c85518Srobertdef debug : Flag<["--"], "device-debug">, Flags<[WrapperOnlyOption]>,
39*12c85518Srobert  HelpText<"Use debugging">;
40*12c85518Srobertdef ptxas_arg : Joined<["--"], "ptxas-arg=">,
41*12c85518Srobert  Flags<[WrapperOnlyOption]>,
42*12c85518Srobert  HelpText<"Argument to pass to the 'ptxas' invocation">;
43*12c85518Srobertdef pass_remarks_EQ : Joined<["--"], "pass-remarks=">,
44*12c85518Srobert  Flags<[WrapperOnlyOption]>, HelpText<"Pass remarks for LTO">;
45*12c85518Srobertdef pass_remarks_missed_EQ : Joined<["--"], "pass-remarks-missed=">,
46*12c85518Srobert  Flags<[WrapperOnlyOption]>, HelpText<"Pass remarks for LTO">;
47*12c85518Srobertdef pass_remarks_analysis_EQ : Joined<["--"], "pass-remarks-analysis=">,
48*12c85518Srobert  Flags<[WrapperOnlyOption]>, HelpText<"Pass remarks for LTO">;
49*12c85518Srobertdef print_wrapped_module : Flag<["--"], "print-wrapped-module">,
50*12c85518Srobert  Flags<[WrapperOnlyOption]>,
51*12c85518Srobert  HelpText<"Print the wrapped module's IR for testing">;
52*12c85518Srobertdef save_temps : Flag<["--"], "save-temps">,
53*12c85518Srobert  Flags<[WrapperOnlyOption]>, HelpText<"Save intermediate results">;
54*12c85518Srobert
55*12c85518Srobertdef wrapper_time_trace_eq : Joined<["--"], "wrapper-time-trace=">,
56*12c85518Srobert  Flags<[WrapperOnlyOption]>, MetaVarName<"<file>">,
57*12c85518Srobert  HelpText<"Enable time-trace and write the output to <file>">;
58*12c85518Srobertdef wrapper_time_trace_granularity : Joined<["--"], "wrapper-time-trace-granularity=">,
59*12c85518Srobert  Flags<[WrapperOnlyOption]>, MetaVarName<"<number>">,
60*12c85518Srobert  HelpText<"Set the granularity of time-trace updates">;
61*12c85518Srobert
62*12c85518Srobertdef wrapper_jobs : Joined<["--"], "wrapper-jobs=">,
63*12c85518Srobert  Flags<[WrapperOnlyOption]>, MetaVarName<"<number>">,
64*12c85518Srobert  HelpText<"Sets the number of parallel jobs to use for device linking">;
65*12c85518Srobert
66*12c85518Srobert// Flags passed to the device linker.
67*12c85518Srobertdef arch_EQ : Joined<["--"], "arch=">,
68*12c85518Srobert  Flags<[DeviceOnlyOption, HelpHidden]>, MetaVarName<"<arch>">,
69*12c85518Srobert  HelpText<"The device subarchitecture">;
70*12c85518Srobertdef triple_EQ : Joined<["--"], "triple=">,
71*12c85518Srobert  Flags<[DeviceOnlyOption, HelpHidden]>, MetaVarName<"<triple>">,
72*12c85518Srobert  HelpText<"The device target triple">;
73*12c85518Srobertdef whole_program : Flag<["--"], "whole-program">,
74*12c85518Srobert  Flags<[DeviceOnlyOption, HelpHidden]>,
75*12c85518Srobert  HelpText<"LTO has visibility of all input files">;
76*12c85518Srobertdef linker_arg_EQ : Joined<["--"], "linker-arg=">,
77*12c85518Srobert  Flags<[DeviceOnlyOption, HelpHidden]>,
78*12c85518Srobert  HelpText<"An extra argument to be passed to the linker">;
79*12c85518Srobert
80*12c85518Srobert// Separator between the linker wrapper and host linker flags.
81*12c85518Srobertdef separator : Flag<["--"], "">, Flags<[WrapperOnlyOption]>,
82*12c85518Srobert  HelpText<"The separator for the wrapped linker arguments">;
83*12c85518Srobert
84*12c85518Srobert// Arguments for the LLVM backend.
85*12c85518Srobertdef mllvm : Separate<["-"], "mllvm">, Flags<[WrapperOnlyOption]>,
86*12c85518Srobert  MetaVarName<"<arg>">, HelpText<"Arguments passed to the LLVM invocation">;
87*12c85518Srobertdef offload_opt_eq_minus : Joined<["--", "-"], "offload-opt=-">, Flags<[HelpHidden, WrapperOnlyOption]>,
88*12c85518Srobert  HelpText<"Options passed to LLVM">;
89*12c85518Srobert
90*12c85518Srobert// Standard linker flags also used by the linker wrapper.
91*12c85518Srobertdef sysroot_EQ : Joined<["--"], "sysroot">, HelpText<"Set the system root">;
92*12c85518Srobert
93*12c85518Srobertdef o : JoinedOrSeparate<["-"], "o">, MetaVarName<"<path>">,
94*12c85518Srobert  HelpText<"Path to file to write output">;
95*12c85518Srobertdef output_EQ : Joined<["--"], "output=">, Alias<o>, Flags<[HelpHidden]>,
96*12c85518Srobert  HelpText<"Alias for -o">;
97*12c85518Srobertdef output : Separate<["--"], "output">, Alias<o>, Flags<[HelpHidden]>,
98*12c85518Srobert  HelpText<"Alias for -o">;
99*12c85518Srobert
100*12c85518Srobertdef library_path : JoinedOrSeparate<["-"], "L">, MetaVarName<"<dir>">,
101*12c85518Srobert  HelpText<"Add <dir> to the library search path">;
102*12c85518Srobertdef library_path_S : Separate<["--", "-"], "library-path">, Flags<[HelpHidden]>,
103*12c85518Srobert  Alias<library_path>;
104*12c85518Srobertdef library_path_EQ : Joined<["--", "-"], "library-path=">, Flags<[HelpHidden]>,
105*12c85518Srobert  Alias<library_path>;
106*12c85518Srobert
107*12c85518Srobertdef library : JoinedOrSeparate<["-"], "l">, MetaVarName<"<libname>">,
108*12c85518Srobert  HelpText<"Search for library <libname>">;
109*12c85518Srobertdef library_S : Separate<["--", "-"], "library">, Flags<[HelpHidden]>,
110*12c85518Srobert  Alias<library_path>;
111*12c85518Srobertdef library_EQ : Joined<["--", "-"], "library=">, Flags<[HelpHidden]>,
112*12c85518Srobert  Alias<library_path>;
113*12c85518Srobert
114*12c85518Srobertdef as_needed : Flag<["--", "-"], "as-needed">;
115*12c85518Srobertdef no_as_needed : Flag<["--", "-"], "no-as-needed">;
116*12c85518Srobert
117*12c85518Srobertdef rpath : Separate<["--", "-"], "rpath">;
118*12c85518Srobertdef rpath_EQ : Joined<["--", "-"], "rpath=">, Flags<[HelpHidden]>, Alias<rpath>;
119*12c85518Srobert
120*12c85518Srobertdef dynamic_linker : Separate<["--", "-"], "dynamic-linker">;
121*12c85518Srobertdef dynamic_linker_EQ : Joined<["--", "-"], "dynamic-linker=">, Alias<dynamic_linker>;
122*12c85518Srobert
123*12c85518Srobertdef v : Flag<["--", "-"], "v">, HelpText<"Display the version number and exit">;
124*12c85518Srobertdef version : Flag<["--", "-"], "version">, Flags<[HelpHidden]>, Alias<v>;
125