= {
{"o=<file>, output=<file>", "Writes the host LLVM IR to `<file>` instead of the default `<world>.ll`/`a.ll`; `<file>` may be `-` for stdout."},
{"o-dev=<file>, output-dev=<file>", "Writes the device LLVM IR to `<file>` instead of the default `<world>_dev.ll`/`a_dev.ll`; `<file>` may be `-` for stdout."},
{"rt=embed, rt=extern", "Like `ll`'s `rt`, but for the host module's C [runtime wrappers](@ref plugin_runtime) such as `@mim_cu_check`."},
{"embed, no-embed", "Embeds the compiled device binary into the host LLVM IR, or doesn't; the default is `embed` on Linux and `no-embed` elsewhere."},
{"no-ptx-embed", "When embedding: omits the PTX image from the fat binary (default: both PTX and CUBIN)."},
{"no-cubin-embed", "When embedding: omits the CUBIN image from the fat binary (default: both PTX and CUBIN)."},
{"sm=<SM>", "When embedding: compiles the device binary for compute capability `sm_<SM>`."},
{"libdevice=<path>", "When embedding and linking libdevice: uses the NVVM library at `<path>` instead of locating it via the CUDA paths."},
{"Xlink_llvm=<args>", "When embedding and linking libdevice: passes `<args>` to `link_llvm` (default: none)."},
{"Xopt=<args>", "When embedding and linking libdevice: passes `<args>` to `opt` (default: `-passes=\"default<O2>,nvvm-reflect\"`)."},
{"Xllc=<args>", "When embedding: passes `<args>` to `llc` (default: none)."},
{"Xptxas=<args>", "When embedding: passes `<args>` to `ptxas` (default: none); also passed to `fatbinary` via `--cmdline` when the PTX image is embedded."},
{"Xfatbinary=<args>", "When embedding: passes `<args>` to `fatbinary` (default: none)."},
}