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));