[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