From 0b43b24d3f8cecb33fb6a8a674075289581397ac Mon Sep 17 00:00:00 2001 From: "Yaxun (Sam) Liu" Date: Tue, 7 May 2019 06:29:40 -0400 Subject: [PATCH] Add documentation for supported clang options (#1065) * Add documentation for supported clang options * Fix typo --- hipamd/docs/markdown/clang_options.md | 606 ++++++++++++++++++ hipamd/docs/markdown/clang_options.txt | 606 ++++++++++++++++++ hipamd/docs/markdown/gen_clang_option_doc.sh | 75 +++ hipamd/docs/markdown/hip_programming_guide.md | 2 + 4 files changed, 1289 insertions(+) create mode 100644 hipamd/docs/markdown/clang_options.md create mode 100644 hipamd/docs/markdown/clang_options.txt create mode 100755 hipamd/docs/markdown/gen_clang_option_doc.sh diff --git a/hipamd/docs/markdown/clang_options.md b/hipamd/docs/markdown/clang_options.md new file mode 100644 index 0000000000..7c2538426c --- /dev/null +++ b/hipamd/docs/markdown/clang_options.md @@ -0,0 +1,606 @@ +# Support of Clang options + Clang versiion: clang version 9.0.0 (https://github.com/llvm-mirror/clang.git 50988b3ea26e892a74a2848e5a06b96f2472a05c) (https://github.com/RadeonOpenCompute/llvm.git 6483275d3d7603784c30e08927f2b315dfb95639) + +|Option|Support|Description| +|-------|------|-------| +|`-###`|Supported|`Print (but do not run) the commands to run for this compilation`| +|`--analyzer-output `|Supported|`Static analyzer report output format (html\|plist\|plist-multi-file\|plist-html\|text).`| +|`--analyze`|Supported|`Run the static analyzer`| +|`-arcmt-migrate-emit-errors`|Unsupported|`Emit ARC errors even if the migrator can fix them`| +|`-arcmt-migrate-report-output `|Unsupported|`Output path for the plist report`| +|`-B `|Supported|`Add to search path for binaries and object files used implicitly`| +|`-CC`|Supported|`Include comments from within macros in preprocessed output`| +|`-cfguard`|Supported|`Emit tables required for Windows Control Flow Guard.`| +|`-cl-denorms-are-zero`|Supported|`OpenCL only. Allow denormals to be flushed to zero.`| +|`-cl-fast-relaxed-math`|Supported|`OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__.`| +|`-cl-finite-math-only`|Supported|`OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.`| +|`-cl-fp32-correctly-rounded-divide-sqrt`|Supported|`OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.`| +|`-cl-kernel-arg-info`|Supported|`OpenCL only. Generate kernel argument metadata.`| +|`-cl-mad-enable`|Supported|`OpenCL only. Allow use of less precise MAD computations in the generated binary.`| +|`-cl-no-signed-zeros`|Supported|`OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.`| +|`-cl-opt-disable`|Supported|`OpenCL only. This option disables all optimizations. By default optimizations are enabled.`| +|`-cl-single-precision-constant`|Supported|`OpenCL only. Treat double precision floating-point constant as single precision constant.`| +|`-cl-std=`|Supported|`OpenCL language standard to compile for.`| +|`-cl-strict-aliasing`|Supported|`OpenCL only. This option is added for compatibility with OpenCL 1.0.`| +|`-cl-uniform-work-group-size`|Supported|`OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel`| +|`-cl-unsafe-math-optimizations`|Supported|`OpenCL only. Allow unsafe floating-point optimizations. Also implies -cl-no-signed-zeros and -cl-mad-enable.`| +|`--config `|Supported|`Specifies configuration file`| +|`--cuda-compile-host-device`|Supported|`Compile CUDA code for both host and device (default). Has no effect on non-CUDA compilations.`| +|`--cuda-device-only`|Supported|`Compile CUDA code for device only`| +|`--cuda-gpu-arch=`|Supported|`CUDA GPU architecture (e.g. sm_35). May be specified more than once.`| +|`--cuda-host-only`|Supported|`Compile CUDA code for host only. Has no effect on non-CUDA compilations.`| +|`--cuda-include-ptx=`|Unsupported|`Include PTX for the following GPU architecture (e.g. sm_35) or 'all'. May be specified more than once.`| +|`--cuda-noopt-device-debug`|Unsupported|`Enable device-side debug info generation. Disables ptxas optimizations.`| +|`--cuda-path-ignore-env`|Unsupported|`Ignore environment variables to detect CUDA installation`| +|`--cuda-path=`|Unsupported|`CUDA installation path`| +|`-cxx-isystem `|Supported|`Add directory to the C++ SYSTEM include search path`| +|`-C`|Supported|`Include comments in preprocessed output`| +|`-c`|Supported|`Only run preprocess, compile, and assemble steps`| +|`-dD`|Supported|`Print macro definitions in -E mode in addition to normal output`| +|`-dependency-dot `|Supported|`Filename to write DOT-formatted header dependencies to`| +|`-dependency-file `|Supported|`Filename (or -) to write dependency output to`| +|`-dI`|Supported|`Print include directives in -E mode in addition to normal output`| +|`-dM`|Supported|`Print macro definitions in -E mode instead of normal output`| +|`-D `|Supported|`= Define to (or 1 if omitted)`| +|`-emit-ast`|Supported|`Emit Clang AST files for source inputs`| +|`-emit-llvm`|Supported|`Use the LLVM representation for assembler and object files`| +|`-enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang`|Supported|`Trivial automatic variable initialization to zero is only here for benchmarks, it'll eventually be removed, and I'm OK with that because I'm only using it to benchmark`| +|`-E`||`Only run the preprocessor`| +|`-faddrsig`|Supported|`Emit an address-significance table`| +|`-faligned-allocation`|Supported|`Enable C++17 aligned allocation functions`| +|`-fallow-editor-placeholders`|Supported|`Treat editor placeholders as valid source code`| +|`-fansi-escape-codes`|Supported|`Use ANSI escape codes for diagnostics`| +|`-fapple-kext`|Unsupported|`Use Apple's kernel extensions ABI`| +|`-fapple-pragma-pack`|Unsupported|`Enable Apple gcc-compatible #pragma pack handling`| +|`-fapplication-extension`|Unsupported|`Restrict code to those available for App Extensions`| +|`-fblocks`|Supported|`Enable the 'blocks' language feature`| +|`-fborland-extensions`|Unsupported|`Accept non-standard constructs supported by the Borland compiler`| +|`-fbuild-session-file=`|Supported|`Use the last modification time of as the build session timestamp`| +|`-fbuild-session-timestamp=