jhuber6 created this revision. jhuber6 added reviewers: jdoerfert, tianshilei1992, JonChesterfield, ye-luo. Herald added subscribers: kosarev, mattd, gchakrabarti, asavonic, kerbowa, tpr, dstuttard, yaxunl, jvesely, kzhuravl. Herald added a project: All. jhuber6 requested review of this revision. Herald added subscribers: cfe-commits, wdng, jholewinski. Herald added a project: clang.
Summray: These clang tools should print some basic help and version messages so they are less opaque. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D145944 Files: clang/tools/amdgpu-arch/AMDGPUArch.cpp clang/tools/amdgpu-arch/CMakeLists.txt clang/tools/nvptx-arch/CMakeLists.txt clang/tools/nvptx-arch/NVPTXArch.cpp
Index: clang/tools/nvptx-arch/NVPTXArch.cpp =================================================================== --- clang/tools/nvptx-arch/NVPTXArch.cpp +++ clang/tools/nvptx-arch/NVPTXArch.cpp @@ -11,12 +11,25 @@ // //===----------------------------------------------------------------------===// +#include "clang/Basic/Version.h" +#include "llvm/Support/CommandLine.h" #include "llvm/Support/DynamicLibrary.h" #include "llvm/Support/Error.h" #include <cstdint> #include <cstdio> #include <memory> +using namespace llvm; + +static cl::opt<bool> Help("h", cl::desc("Alias for -help"), cl::Hidden); + +static void PrintVersion(raw_ostream &OS) { + OS << clang::getClangToolFullVersion("nvptx-arch") << '\n'; +} +// Mark all our options with this category, everything else (except for -version +// and -help) will be hidden. +static cl::OptionCategory NVPTXArchCategory("nvptx-arch options"); + #if DYNAMIC_CUDA typedef enum cudaError_enum { CUDA_SUCCESS = 0, @@ -79,6 +92,16 @@ } int main(int argc, char *argv[]) { + cl::HideUnrelatedOptions(NVPTXArchCategory); + + cl::SetVersionPrinter(PrintVersion); + cl::ParseCommandLineOptions( + argc, argv, + "A tool to detect the presence of NVIDIA devices on the system. \n\n" + "The tool will output each detected GPU architecture separated by a\n" + "newline character. If multiple GPUs of the same architecture are found\n" + "a string will be printed for each\n"); + // Attempt to load the NVPTX driver runtime. if (llvm::Error Err = loadCUDA()) { logAllUnhandledErrors(std::move(Err), llvm::errs()); Index: clang/tools/nvptx-arch/CMakeLists.txt =================================================================== --- clang/tools/nvptx-arch/CMakeLists.txt +++ clang/tools/nvptx-arch/CMakeLists.txt @@ -14,6 +14,7 @@ # If we found the CUDA library directly we just dynamically link against it. if(CUDAToolkit_FOUND AND NOT (LLVM_BUILD_32_BITS OR CMAKE_SIZEOF_VOID_P EQUAL 4)) target_link_libraries(nvptx-arch PRIVATE CUDA::cuda_driver) + clang_target_link_libraries(nvptx-arch PRIVATE clangBasic) else() target_compile_definitions(nvptx-arch PRIVATE "DYNAMIC_CUDA") endif() Index: clang/tools/amdgpu-arch/CMakeLists.txt =================================================================== --- clang/tools/amdgpu-arch/CMakeLists.txt +++ clang/tools/amdgpu-arch/CMakeLists.txt @@ -15,6 +15,7 @@ if(hsa-runtime64_FOUND AND NOT (LLVM_BUILD_32_BITS OR CMAKE_SIZEOF_VOID_P EQUAL 4)) set_target_properties(amdgpu-arch PROPERTIES INSTALL_RPATH_USE_LINK_PATH ON) target_link_libraries(amdgpu-arch PRIVATE hsa-runtime64::hsa-runtime64) + clang_target_link_libraries(amdgpu-arch PRIVATE clangBasic) else() target_compile_definitions(amdgpu-arch PRIVATE "DYNAMIC_HSA") endif() Index: clang/tools/amdgpu-arch/AMDGPUArch.cpp =================================================================== --- clang/tools/amdgpu-arch/AMDGPUArch.cpp +++ clang/tools/amdgpu-arch/AMDGPUArch.cpp @@ -11,12 +11,25 @@ // //===----------------------------------------------------------------------===// +#include "clang/Basic/Version.h" +#include "llvm/Support/CommandLine.h" #include "llvm/Support/DynamicLibrary.h" #include "llvm/Support/Error.h" #include <memory> #include <string> #include <vector> +using namespace llvm; + +static cl::opt<bool> Help("h", cl::desc("Alias for -help"), cl::Hidden); + +// Mark all our options with this category. +static cl::OptionCategory AMDGPUArchCategory("amdgpu-arch options"); + +static void PrintVersion(raw_ostream &OS) { + OS << clang::getClangToolFullVersion("amdgpu-arch") << '\n'; +} + #if DYNAMIC_HSA typedef enum { HSA_STATUS_SUCCESS = 0x0, @@ -102,6 +115,16 @@ } int main(int argc, char *argv[]) { + cl::HideUnrelatedOptions(AMDGPUArchCategory); + + cl::SetVersionPrinter(PrintVersion); + cl::ParseCommandLineOptions( + argc, argv, + "A tool to detect the presence of AMDGPU devices on the system. \n\n" + "The tool will output each detected GPU architecture separated by a\n" + "newline character. If multiple GPUs of the same architecture are found\n" + "a string will be printed for each\n"); + // Attempt to load the HSA runtime. if (llvm::Error Err = loadHSA()) { logAllUnhandledErrors(std::move(Err), llvm::errs());
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits