[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