From d5281a771a7c8508f5a313e97e11b6496638ad29 Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Mon, 14 Jan 2019 18:23:54 +0300 Subject: [PATCH 1/3] [HIPIFY] Introduce '-I' option as hipify-clang's one + '-I' might be set as hipify-clang option (before separator '--' or without specifying separator at all); + '-I' as a clang option might be specified as well (after options separator '--'). --- hipamd/hipify-clang/README.md | 1 - hipamd/hipify-clang/src/ArgParse.cpp | 7 +++++++ hipamd/hipify-clang/src/ArgParse.h | 1 + hipamd/hipify-clang/src/main.cpp | 6 ++++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/hipamd/hipify-clang/README.md b/hipamd/hipify-clang/README.md index 812500ad34..deb951efbb 100644 --- a/hipamd/hipify-clang/README.md +++ b/hipamd/hipify-clang/README.md @@ -321,7 +321,6 @@ For example: ./hipify-clang \ square.cu \ --cuda-path=/usr/local/cuda-8.0 \ - -- \ -I /usr/local/cuda-8.0/samples/common/inc ``` diff --git a/hipamd/hipify-clang/src/ArgParse.cpp b/hipamd/hipify-clang/src/ArgParse.cpp index 9696cb74aa..d63a328b5b 100644 --- a/hipamd/hipify-clang/src/ArgParse.cpp +++ b/hipamd/hipify-clang/src/ArgParse.cpp @@ -89,4 +89,11 @@ cl::opt DashDash("-", cl::value_desc("--"), cl::cat(ToolTemplateCategory)); +cl::list I("I", + cl::desc("Add directory to include search path"), + cl::value_desc("directory"), + cl::ZeroOrMore, + cl::Prefix, + cl::cat(ToolTemplateCategory)); + cl::extrahelp CommonHelp(ct::CommonOptionsParser::HelpMessage); diff --git a/hipamd/hipify-clang/src/ArgParse.h b/hipamd/hipify-clang/src/ArgParse.h index 97f172d812..222062bae4 100644 --- a/hipamd/hipify-clang/src/ArgParse.h +++ b/hipamd/hipify-clang/src/ArgParse.h @@ -33,6 +33,7 @@ extern cl::opt OutputFilename; extern cl::opt OutputDir; extern cl::opt TemporaryDir; extern cl::opt CudaPath; +extern cl::list I; extern cl::opt Inplace; extern cl::opt SaveTemps; extern cl::opt NoBackup; diff --git a/hipamd/hipify-clang/src/main.cpp b/hipamd/hipify-clang/src/main.cpp index 6df8ae9679..e219f73023 100644 --- a/hipamd/hipify-clang/src/main.cpp +++ b/hipamd/hipify-clang/src/main.cpp @@ -199,6 +199,12 @@ int main(int argc, const char **argv) { #if defined(HIPIFY_CLANG_RES) Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-resource-dir=" HIPIFY_CLANG_RES)); #endif + if (!I.empty()) { + for (std::string s : I) { + Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-I", ct::ArgumentInsertPosition::END)); + Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster(s.c_str(), ct::ArgumentInsertPosition::END)); + } + } Tool.appendArgumentsAdjuster(ct::getClangSyntaxOnlyAdjuster()); Statistics& currentStat = Statistics::current(); // Hipify _all_ the things! From 4b8fdda6512dae0c6f0d4966fe23fcda629f7efc Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Mon, 14 Jan 2019 19:34:42 +0300 Subject: [PATCH 2/3] [HIPIFY] Introduce '-D' option as hipify-clang's one + '-D' might be set as hipify-clang option (before separator '--' or without specifying separator at all); + '-D' as a clang option might be specified as well (after options separator '--'); + All defines specified as hipify-clang defines (before options separator '--') will be set after clang's ones and will redefine the same clang's ones. --- hipamd/hipify-clang/src/ArgParse.cpp | 9 ++++++++- hipamd/hipify-clang/src/ArgParse.h | 1 + hipamd/hipify-clang/src/main.cpp | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/hipamd/hipify-clang/src/ArgParse.cpp b/hipamd/hipify-clang/src/ArgParse.cpp index d63a328b5b..e81ada1ddc 100644 --- a/hipamd/hipify-clang/src/ArgParse.cpp +++ b/hipamd/hipify-clang/src/ArgParse.cpp @@ -85,7 +85,7 @@ cl::opt Examine("examine", cl::cat(ToolTemplateCategory)); cl::opt DashDash("-", - cl::desc("Separator between hipify-clang and clang options;\ndon't specify if there are no clang options."), + cl::desc("Separator between hipify-clang and clang options;\ndon't specify if there are no clang options"), cl::value_desc("--"), cl::cat(ToolTemplateCategory)); @@ -96,4 +96,11 @@ cl::list I("I", cl::Prefix, cl::cat(ToolTemplateCategory)); +cl::list D("D", + cl::desc("Define to or 1 if omitted"), + cl::value_desc("macro>= OutputDir; extern cl::opt TemporaryDir; extern cl::opt CudaPath; extern cl::list I; +extern cl::list D; extern cl::opt Inplace; extern cl::opt SaveTemps; extern cl::opt NoBackup; diff --git a/hipamd/hipify-clang/src/main.cpp b/hipamd/hipify-clang/src/main.cpp index e219f73023..db6c803c27 100644 --- a/hipamd/hipify-clang/src/main.cpp +++ b/hipamd/hipify-clang/src/main.cpp @@ -199,6 +199,12 @@ int main(int argc, const char **argv) { #if defined(HIPIFY_CLANG_RES) Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-resource-dir=" HIPIFY_CLANG_RES)); #endif + if (!D.empty()) { + for (std::string s : D) { + Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-D", ct::ArgumentInsertPosition::END)); + Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster(s.c_str(), ct::ArgumentInsertPosition::END)); + } + } if (!I.empty()) { for (std::string s : I) { Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-I", ct::ArgumentInsertPosition::END)); From e5e93a1088ff8c0a3ebd2a2577dd9f04e07e37ca Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Mon, 14 Jan 2019 21:19:34 +0300 Subject: [PATCH 3/3] [HIPIFY] rename variables as requested in review --- hipamd/hipify-clang/src/ArgParse.cpp | 4 ++-- hipamd/hipify-clang/src/ArgParse.h | 4 ++-- hipamd/hipify-clang/src/main.cpp | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hipamd/hipify-clang/src/ArgParse.cpp b/hipamd/hipify-clang/src/ArgParse.cpp index e81ada1ddc..3cc372adab 100644 --- a/hipamd/hipify-clang/src/ArgParse.cpp +++ b/hipamd/hipify-clang/src/ArgParse.cpp @@ -89,14 +89,14 @@ cl::opt DashDash("-", cl::value_desc("--"), cl::cat(ToolTemplateCategory)); -cl::list I("I", +cl::list IncludeDirs("I", cl::desc("Add directory to include search path"), cl::value_desc("directory"), cl::ZeroOrMore, cl::Prefix, cl::cat(ToolTemplateCategory)); -cl::list D("D", +cl::list MacroNames("D", cl::desc("Define to or 1 if omitted"), cl::value_desc("macro>= OutputFilename; extern cl::opt OutputDir; extern cl::opt TemporaryDir; extern cl::opt CudaPath; -extern cl::list I; -extern cl::list D; +extern cl::list IncludeDirs; +extern cl::list MacroNames; extern cl::opt Inplace; extern cl::opt SaveTemps; extern cl::opt NoBackup; diff --git a/hipamd/hipify-clang/src/main.cpp b/hipamd/hipify-clang/src/main.cpp index db6c803c27..d0fcc17e66 100644 --- a/hipamd/hipify-clang/src/main.cpp +++ b/hipamd/hipify-clang/src/main.cpp @@ -199,14 +199,14 @@ int main(int argc, const char **argv) { #if defined(HIPIFY_CLANG_RES) Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-resource-dir=" HIPIFY_CLANG_RES)); #endif - if (!D.empty()) { - for (std::string s : D) { + if (!MacroNames.empty()) { + for (std::string s : MacroNames) { Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-D", ct::ArgumentInsertPosition::END)); Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster(s.c_str(), ct::ArgumentInsertPosition::END)); } } - if (!I.empty()) { - for (std::string s : I) { + if (!IncludeDirs.empty()) { + for (std::string s : IncludeDirs) { Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-I", ct::ArgumentInsertPosition::END)); Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster(s.c_str(), ct::ArgumentInsertPosition::END)); }