From 92cd5e4fc1b582c0db2c8a3cf8759f98ddda347c Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Sat, 2 Nov 2019 14:19:31 +0300 Subject: [PATCH] [HIPIFY] Introduce --cuda-gpu-arch as hipify-clang's option + Pass it to clang if specified [ROCm/hip commit: 02589264a027d4d0f1ea4bb0a69f935f91043365] --- projects/hip/hipify-clang/src/ArgParse.cpp | 8 ++++++++ projects/hip/hipify-clang/src/ArgParse.h | 1 + projects/hip/hipify-clang/src/main.cpp | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/projects/hip/hipify-clang/src/ArgParse.cpp b/projects/hip/hipify-clang/src/ArgParse.cpp index 5ce92dfdca..4f648c996f 100644 --- a/projects/hip/hipify-clang/src/ArgParse.cpp +++ b/projects/hip/hipify-clang/src/ArgParse.cpp @@ -138,4 +138,12 @@ cl::opt SkipExcludedPPConditionalBlocks("skip-excluded-preprocessor-condit cl::value_desc("skip-excluded-preprocessor-conditional-blocks"), cl::cat(ToolTemplateCategory)); +cl::opt CudaGpuArch("cuda-gpu-arch", + cl::desc("CUDA GPU architecture (e.g. sm_35);\nmay be specified more than once"), + cl::value_desc("value"), + cl::ZeroOrMore, + cl::Prefix, + cl::cat(ToolTemplateCategory)); + + cl::extrahelp CommonHelp(ct::CommonOptionsParser::HelpMessage); diff --git a/projects/hip/hipify-clang/src/ArgParse.h b/projects/hip/hipify-clang/src/ArgParse.h index 886a658d78..84053a036c 100644 --- a/projects/hip/hipify-clang/src/ArgParse.h +++ b/projects/hip/hipify-clang/src/ArgParse.h @@ -52,3 +52,4 @@ extern cl::extrahelp CommonHelp; extern cl::opt TranslateToRoc; extern cl::opt DashDash; extern cl::opt SkipExcludedPPConditionalBlocks; +extern cl::opt CudaGpuArch; diff --git a/projects/hip/hipify-clang/src/main.cpp b/projects/hip/hipify-clang/src/main.cpp index 27dcf0b1ac..3c7424fbca 100644 --- a/projects/hip/hipify-clang/src/main.cpp +++ b/projects/hip/hipify-clang/src/main.cpp @@ -225,6 +225,10 @@ int main(int argc, const char **argv) { if (llcompat::pragma_once_outside_header()) { Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-Wno-pragma-once-outside-header", ct::ArgumentInsertPosition::BEGIN)); } + if (!CudaGpuArch.empty()) { + std::string sCudaGpuArch = "--cuda-gpu-arch=" + CudaGpuArch; + Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster(sCudaGpuArch.c_str(), ct::ArgumentInsertPosition::BEGIN)); + } if (!MacroNames.empty()) { for (std::string s : MacroNames) { Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-D", ct::ArgumentInsertPosition::END));