[llvm] [llc] Move LLVMLlcDriver implementation into lib (PR #222840)

Anutosh Bhat via llvm-commits llvm-commits at lists.llvm.org
Sat Sep 12 19:18:10 PDT 2026


https://github.com/anutosh491 updated https://github.com/llvm/llvm-project/pull/222840

>From db2b07ab86de11a929fc8bfeb6748932460cb70b Mon Sep 17 00:00:00 2001
From: anutosh491 <andersonbhat491 at gmail.com>
Date: Fri, 11 Sep 2026 10:06:43 +0530
Subject: [PATCH] [llc] Move LLVMLlcDriver implementation into lib

---
 llvm/tools/llc/CMakeLists.txt                     | 15 ++-------------
 llvm/tools/llc/lib/CMakeLists.txt                 | 10 ++++++++++
 llvm/tools/llc/{ => lib}/NewPMDriver.cpp          |  0
 llvm/tools/llc/{ => lib}/NewPMDriver.h            |  0
 llvm/tools/llc/{ => lib}/llcdriver.cpp            |  0
 llvm/utils/gn/secondary/llvm/tools/llc/BUILD.gn   |  4 ++--
 utils/bazel/llvm-project-overlay/llvm/BUILD.bazel |  6 +++---
 7 files changed, 17 insertions(+), 18 deletions(-)
 create mode 100644 llvm/tools/llc/lib/CMakeLists.txt
 rename llvm/tools/llc/{ => lib}/NewPMDriver.cpp (100%)
 rename llvm/tools/llc/{ => lib}/NewPMDriver.h (100%)
 rename llvm/tools/llc/{ => lib}/llcdriver.cpp (100%)

diff --git a/llvm/tools/llc/CMakeLists.txt b/llvm/tools/llc/CMakeLists.txt
index e6f3cf0e1e2fa..34612260dc083 100644
--- a/llvm/tools/llc/CMakeLists.txt
+++ b/llvm/tools/llc/CMakeLists.txt
@@ -25,26 +25,15 @@ set(LLVM_LINK_COMPONENTS
   Vectorize
   )
 
-# Keep the command-line implementation in a separate library so other LLVM
-# tools can reuse the llc driver without compiling or rewriting llc.cpp.
-add_llvm_library(LLVMLlcDriver
-  STATIC
-  llcdriver.cpp
-  NewPMDriver.cpp
-
-  PARTIAL_SOURCES_INTENDED
-  DEPENDS
-  intrinsics_gen
-  )
-
 add_llvm_tool(llc
-  PARTIAL_SOURCES_INTENDED
   llc.cpp
 
   DEPENDS
   intrinsics_gen
   SUPPORT_PLUGINS
   )
+
+add_subdirectory(lib)
 target_link_libraries(llc PRIVATE LLVMLlcDriver)
 
 export_executable_symbols_for_plugins(llc)
diff --git a/llvm/tools/llc/lib/CMakeLists.txt b/llvm/tools/llc/lib/CMakeLists.txt
new file mode 100644
index 0000000000000..c8b742bbaf18a
--- /dev/null
+++ b/llvm/tools/llc/lib/CMakeLists.txt
@@ -0,0 +1,10 @@
+# Keep the command-line implementation in a separate library so other LLVM
+# tools can reuse the llc driver without compiling or rewriting llc.cpp.
+add_llvm_library(LLVMLlcDriver
+  STATIC
+  llcdriver.cpp
+  NewPMDriver.cpp
+
+  DEPENDS
+  intrinsics_gen
+  )
diff --git a/llvm/tools/llc/NewPMDriver.cpp b/llvm/tools/llc/lib/NewPMDriver.cpp
similarity index 100%
rename from llvm/tools/llc/NewPMDriver.cpp
rename to llvm/tools/llc/lib/NewPMDriver.cpp
diff --git a/llvm/tools/llc/NewPMDriver.h b/llvm/tools/llc/lib/NewPMDriver.h
similarity index 100%
rename from llvm/tools/llc/NewPMDriver.h
rename to llvm/tools/llc/lib/NewPMDriver.h
diff --git a/llvm/tools/llc/llcdriver.cpp b/llvm/tools/llc/lib/llcdriver.cpp
similarity index 100%
rename from llvm/tools/llc/llcdriver.cpp
rename to llvm/tools/llc/lib/llcdriver.cpp
diff --git a/llvm/utils/gn/secondary/llvm/tools/llc/BUILD.gn b/llvm/utils/gn/secondary/llvm/tools/llc/BUILD.gn
index 5eb8f0e1d8e0d..4c2fad321882e 100644
--- a/llvm/utils/gn/secondary/llvm/tools/llc/BUILD.gn
+++ b/llvm/utils/gn/secondary/llvm/tools/llc/BUILD.gn
@@ -20,9 +20,9 @@ executable("llc") {
     "//llvm/lib/Transforms/Vectorize",
   ]
   sources = [
-    "NewPMDriver.cpp",
+    "lib/NewPMDriver.cpp",
     "llc.cpp",
-    "llcdriver.cpp",
+    "lib/llcdriver.cpp",
   ]
 
   # Support plugins.
diff --git a/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel b/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
index 225c77c6775c1..b7765075c72fb 100644
--- a/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
@@ -4993,11 +4993,11 @@ llvm_driver_cc_binary(
 cc_library(
     name = "llc-driver",
     srcs = [
-        "tools/llc/NewPMDriver.cpp",
-        "tools/llc/llcdriver.cpp",
+        "tools/llc/lib/NewPMDriver.cpp",
+        "tools/llc/lib/llcdriver.cpp",
     ],
     hdrs = glob([
-        "tools/llc/*.h",
+        "tools/llc/lib/*.h",
     ]),
     copts = llvm_copts,
     deps = [



More information about the llvm-commits mailing list