[llvm] [SPIR-V] Rename internal command line flags for optimization level and mtriple used when passing options into the translate API call (PR #123975)
Vyacheslav Levytskyy via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 22 11:23:21 PST 2025
https://github.com/VyacheslavLevytskyy updated https://github.com/llvm/llvm-project/pull/123975
>From ef4f9ddacd7274700cd9281df2b6307bd45b0b4a Mon Sep 17 00:00:00 2001
From: "Levytskyy, Vyacheslav" <vyacheslav.levytskyy at intel.com>
Date: Wed, 22 Jan 2025 10:11:18 -0800
Subject: [PATCH 1/3] rename internal command line options
---
llvm/lib/Target/SPIRV/SPIRVAPI.cpp | 5 +++--
llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp | 4 ++--
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/llvm/lib/Target/SPIRV/SPIRVAPI.cpp b/llvm/lib/Target/SPIRV/SPIRVAPI.cpp
index 4c806fd7c98882..138054ad1a074e 100644
--- a/llvm/lib/Target/SPIRV/SPIRVAPI.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVAPI.cpp
@@ -42,8 +42,9 @@ namespace {
// Mimic limited number of command line flags from llc to provide a better
// user experience when passing options into the translate API call.
-static cl::opt<char> SpvOptLevel(" O", cl::Hidden, cl::Prefix, cl::init('0'));
-static cl::opt<std::string> SpvTargetTriple(" mtriple", cl::Hidden,
+static cl::opt<char> SpvOptLevel("spv_O", cl::Hidden, cl::Prefix,
+ cl::init('0'));
+static cl::opt<std::string> SpvTargetTriple("spv_mtriple", cl::Hidden,
cl::init(""));
// Utility to accept options in a command line style.
diff --git a/llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp b/llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp
index 149db48c190a09..e9a0ac72e25769 100644
--- a/llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp
+++ b/llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp
@@ -80,7 +80,7 @@ TEST_F(SPIRVAPITest, checkTranslateOk) {
// Those command line arguments that overlap with registered by llc/codegen
// are to be started with the ' ' symbol.
std::vector<std::string> SetOfOpts[] = {
- {}, {"- mtriple=spirv32-unknown-unknown"}};
+ {}, {"-spv_mtriple=spirv32-unknown-unknown"}};
for (const auto &Opts : SetOfOpts) {
for (StringRef &Assembly : Assemblies) {
std::string Result, Error;
@@ -100,7 +100,7 @@ TEST_F(SPIRVAPITest, checkTranslateError) {
EXPECT_THAT(Error,
StartsWith("SPIRVTranslateModule: Unknown command line argument "
"'-mtriple=spirv32-unknown-unknown'"));
- Status = toSpirv(OkAssembly, Result, Error, {}, {"- O 5"});
+ Status = toSpirv(OkAssembly, Result, Error, {}, {"-spv_O 5"});
EXPECT_FALSE(Status);
EXPECT_TRUE(Result.empty());
EXPECT_EQ(Error, "Invalid optimization level!");
>From cfc33813a2a8f7e1ef804042c12bb32eb2fd4e19 Mon Sep 17 00:00:00 2001
From: "Levytskyy, Vyacheslav" <vyacheslav.levytskyy at intel.com>
Date: Wed, 22 Jan 2025 11:21:49 -0800
Subject: [PATCH 2/3] prettify names
---
llvm/lib/Target/SPIRV/SPIRVAPI.cpp | 18 ++++++++++--------
llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp | 4 ++--
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/llvm/lib/Target/SPIRV/SPIRVAPI.cpp b/llvm/lib/Target/SPIRV/SPIRVAPI.cpp
index 138054ad1a074e..ee8f201e3a4be6 100644
--- a/llvm/lib/Target/SPIRV/SPIRVAPI.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVAPI.cpp
@@ -42,10 +42,10 @@ namespace {
// Mimic limited number of command line flags from llc to provide a better
// user experience when passing options into the translate API call.
-static cl::opt<char> SpvOptLevel("spv_O", cl::Hidden, cl::Prefix,
- cl::init('0'));
-static cl::opt<std::string> SpvTargetTriple("spv_mtriple", cl::Hidden,
- cl::init(""));
+static cl::opt<char> SpirvOptLevel("spirv-O", cl::Hidden, cl::Prefix,
+ cl::init('0'));
+static cl::opt<std::string> SpirvTargetTriple("spirv-mtriple", cl::Hidden,
+ cl::init(""));
// Utility to accept options in a command line style.
void parseSPIRVCommandLineOptions(const std::vector<std::string> &Options,
@@ -53,8 +53,10 @@ void parseSPIRVCommandLineOptions(const std::vector<std::string> &Options,
static constexpr const char *Origin = "SPIRVTranslateModule";
if (!Options.empty()) {
std::vector<const char *> Argv(1, Origin);
- for (const auto &Arg : Options)
+ for (const auto &Arg : Options) {
Argv.push_back(Arg.c_str());
+ dbgs() << Arg << " ...\n";
+ }
cl::ParseCommandLineOptions(Argv.size(), Argv.data(), Origin, Errs);
}
}
@@ -95,7 +97,7 @@ SPIRVTranslateModule(Module *M, std::string &SpirvObj, std::string &ErrMsg,
}
llvm::CodeGenOptLevel OLevel;
- if (auto Level = CodeGenOpt::parseLevel(SpvOptLevel)) {
+ if (auto Level = CodeGenOpt::parseLevel(SpirvOptLevel)) {
OLevel = *Level;
} else {
ErrMsg = "Invalid optimization level!";
@@ -116,9 +118,9 @@ SPIRVTranslateModule(Module *M, std::string &SpirvObj, std::string &ErrMsg,
// SPIR-V-specific target initialization.
InitializeSPIRVTarget();
- Triple TargetTriple(SpvTargetTriple.empty()
+ Triple TargetTriple(SpirvTargetTriple.empty()
? M->getTargetTriple()
- : Triple::normalize(SpvTargetTriple));
+ : Triple::normalize(SpirvTargetTriple));
if (TargetTriple.getTriple().empty()) {
TargetTriple.setTriple(DefaultTriple);
M->setTargetTriple(DefaultTriple);
diff --git a/llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp b/llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp
index e9a0ac72e25769..f0b4a2f55c1519 100644
--- a/llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp
+++ b/llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp
@@ -80,7 +80,7 @@ TEST_F(SPIRVAPITest, checkTranslateOk) {
// Those command line arguments that overlap with registered by llc/codegen
// are to be started with the ' ' symbol.
std::vector<std::string> SetOfOpts[] = {
- {}, {"-spv_mtriple=spirv32-unknown-unknown"}};
+ {}, {"--spirv-mtriple=spirv32-unknown-unknown"}};
for (const auto &Opts : SetOfOpts) {
for (StringRef &Assembly : Assemblies) {
std::string Result, Error;
@@ -100,7 +100,7 @@ TEST_F(SPIRVAPITest, checkTranslateError) {
EXPECT_THAT(Error,
StartsWith("SPIRVTranslateModule: Unknown command line argument "
"'-mtriple=spirv32-unknown-unknown'"));
- Status = toSpirv(OkAssembly, Result, Error, {}, {"-spv_O 5"});
+ Status = toSpirv(OkAssembly, Result, Error, {}, {"--spirv-O 5"});
EXPECT_FALSE(Status);
EXPECT_TRUE(Result.empty());
EXPECT_EQ(Error, "Invalid optimization level!");
>From a249634a1da88e92afa89dcae101c8199a49e3be Mon Sep 17 00:00:00 2001
From: "Levytskyy, Vyacheslav" <vyacheslav.levytskyy at intel.com>
Date: Wed, 22 Jan 2025 11:23:08 -0800
Subject: [PATCH 3/3] remove ctrl print
---
llvm/lib/Target/SPIRV/SPIRVAPI.cpp | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/llvm/lib/Target/SPIRV/SPIRVAPI.cpp b/llvm/lib/Target/SPIRV/SPIRVAPI.cpp
index ee8f201e3a4be6..95c9b0e5200608 100644
--- a/llvm/lib/Target/SPIRV/SPIRVAPI.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVAPI.cpp
@@ -53,10 +53,8 @@ void parseSPIRVCommandLineOptions(const std::vector<std::string> &Options,
static constexpr const char *Origin = "SPIRVTranslateModule";
if (!Options.empty()) {
std::vector<const char *> Argv(1, Origin);
- for (const auto &Arg : Options) {
+ for (const auto &Arg : Options)
Argv.push_back(Arg.c_str());
- dbgs() << Arg << " ...\n";
- }
cl::ParseCommandLineOptions(Argv.size(), Argv.data(), Origin, Errs);
}
}
More information about the llvm-commits
mailing list