[clang] [clang][driver] Rename ClangExecutable and getClangProgramPath (NFC) (PR #200814)
Kelvin Li via cfe-commits
cfe-commits at lists.llvm.org
Mon Jun 1 06:32:28 PDT 2026
https://github.com/kkwli updated https://github.com/llvm/llvm-project/pull/200814
>From 046ac93e7a56e886eaf22c58820c577b72d5e590 Mon Sep 17 00:00:00 2001
From: Kelvin Li <kli at ca.ibm.com>
Date: Mon, 1 Jun 2026 09:16:17 -0400
Subject: [PATCH 1/2] [clang][driver] Rename ClangExecutable and
getClangProgramPath (NFC)
This patch is to rename ClangExecutable to DriverExecutable and
getClangProgramPath to getDriverProgramPath. This makes the name
more neutral and less confusing when used in flang.
---
clang/include/clang/Driver/Driver.h | 12 ++++++------
clang/lib/Driver/Driver.cpp | 12 ++++++------
clang/lib/Driver/ModulesDriver.cpp | 2 +-
clang/lib/Driver/ToolChains/AIX.cpp | 2 +-
clang/lib/Driver/ToolChains/AMDGPU.cpp | 2 +-
clang/lib/Driver/ToolChains/Clang.cpp | 10 +++++-----
clang/lib/Driver/ToolChains/CommonArgs.cpp | 4 ++--
clang/lib/Driver/ToolChains/Darwin.cpp | 2 +-
clang/lib/Driver/ToolChains/HIPAMD.cpp | 2 +-
clang/lib/Driver/ToolChains/HIPUtility.cpp | 2 +-
clang/lib/Tooling/CompilationDatabase.cpp | 2 +-
clang/unittests/Driver/ToolChainTest.cpp | 8 ++++----
12 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/clang/include/clang/Driver/Driver.h b/clang/include/clang/Driver/Driver.h
index 5490e06b6f3f3..eda53a4249feb 100644
--- a/clang/include/clang/Driver/Driver.h
+++ b/clang/include/clang/Driver/Driver.h
@@ -179,8 +179,8 @@ class Driver {
/// command line.
std::string Dir;
- /// The original path to the clang executable.
- std::string ClangExecutable;
+ /// The original path to the driver executable.
+ std::string DriverExecutable;
/// Target and driver mode components extracted from clang executable name.
ParsedClangName ClangNameParts;
@@ -400,7 +400,7 @@ class Driver {
SmallString<128> &CrashDiagDir);
public:
- Driver(StringRef ClangExecutable, StringRef TargetTriple,
+ Driver(StringRef DriverExecutable, StringRef TargetTriple,
DiagnosticsEngine &Diags, std::string Title = "clang LLVM compiler",
IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS = nullptr);
@@ -437,9 +437,9 @@ class Driver {
std::string getTargetTriple() const { return TargetTriple; }
- /// Get the path to the main clang executable.
- const char *getClangProgramPath() const {
- return ClangExecutable.c_str();
+ /// Get the path to the main driver executable.
+ const char *getDriverProgramPath() const {
+ return DriverExecutable.c_str();
}
StringRef getPreferredLinker() const { return PreferredLinker; }
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 82e8977648b92..ffa6383643fe1 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -175,14 +175,14 @@ std::string CUIDOptions::getCUID(StringRef InputFile,
}
return CUID;
}
-Driver::Driver(StringRef ClangExecutable, StringRef TargetTriple,
+Driver::Driver(StringRef DriverExecutable, StringRef TargetTriple,
DiagnosticsEngine &Diags, std::string Title,
IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS)
: Diags(Diags), VFS(std::move(VFS)), Mode(GCCMode),
SaveTemps(SaveTempsNone), BitcodeEmbed(EmbedNone),
Offload(OffloadHostDevice), CXX20HeaderType(HeaderMode_None),
ModulesModeCXX20(false), LTOMode(LTOK_None),
- ClangExecutable(ClangExecutable), SysRoot(DEFAULT_SYSROOT),
+ DriverExecutable(DriverExecutable), SysRoot(DEFAULT_SYSROOT),
DriverTitle(Title), CCCPrintBindings(false), CCPrintOptions(false),
CCLogDiagnostics(false), CCGenDiagnostics(false),
CCPrintProcessStats(false), CCPrintInternalStats(false),
@@ -193,8 +193,8 @@ Driver::Driver(StringRef ClangExecutable, StringRef TargetTriple,
if (!this->VFS)
this->VFS = llvm::vfs::getRealFileSystem();
- Name = std::string(llvm::sys::path::filename(ClangExecutable));
- Dir = std::string(llvm::sys::path::parent_path(ClangExecutable));
+ Name = std::string(llvm::sys::path::filename(DriverExecutable));
+ Dir = std::string(llvm::sys::path::parent_path(DriverExecutable));
if ((!SysRoot.empty()) && llvm::sys::path::is_relative(SysRoot)) {
// Prepend InstalledDir if SysRoot is relative
@@ -222,7 +222,7 @@ Driver::Driver(StringRef ClangExecutable, StringRef TargetTriple,
#endif
// Compute the path to the resource directory.
- ResourceDir = GetResourcesPath(ClangExecutable);
+ ResourceDir = GetResourcesPath(DriverExecutable);
}
void Driver::setDriverMode(StringRef Value) {
@@ -1488,7 +1488,7 @@ Compilation *Driver::BuildCompilation(ArrayRef<const char *> ArgList) {
// We look for the driver mode option early, because the mode can affect
// how other options are parsed.
- auto DriverMode = getDriverMode(ClangExecutable, ArgList.slice(1));
+ auto DriverMode = getDriverMode(DriverExecutable, ArgList.slice(1));
if (!DriverMode.empty())
setDriverMode(DriverMode);
diff --git a/clang/lib/Driver/ModulesDriver.cpp b/clang/lib/Driver/ModulesDriver.cpp
index e0a4503857871..f0f312769fab1 100644
--- a/clang/lib/Driver/ModulesDriver.cpp
+++ b/clang/lib/Driver/ModulesDriver.cpp
@@ -1294,7 +1294,7 @@ createClangModulePrecompileJob(Compilation &C, const Command &ImportingJob,
const auto &D = C.getDriver();
return std::make_unique<Command>(
*PA, ImportingJob.getCreator(), ResponseFileSupport::AtFileUTF8(),
- D.getClangProgramPath(), JobArgs,
+ D.getDriverProgramPath(), JobArgs,
/*Inputs=*/ArrayRef<InputInfo>{},
/*Outputs=*/ArrayRef<InputInfo>{}, D.getPrependArg());
}
diff --git a/clang/lib/Driver/ToolChains/AIX.cpp b/clang/lib/Driver/ToolChains/AIX.cpp
index 01b2c8ec18a35..87a2859dad7a9 100644
--- a/clang/lib/Driver/ToolChains/AIX.cpp
+++ b/clang/lib/Driver/ToolChains/AIX.cpp
@@ -250,7 +250,7 @@ void aix::Linker::ConstructJob(Compilation &C, const JobAction &JA,
if (Args.hasArg(options::OPT_shared) && !hasExportListLinkerOpts(CmdArgs)) {
const char *CreateExportListExec = Args.MakeArgString(
- path::parent_path(ToolChain.getDriver().ClangExecutable) +
+ path::parent_path(ToolChain.getDriver().DriverExecutable) +
"/llvm-nm");
ArgStringList CreateExportCmdArgs;
diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp
index 55c94823376b0..7988d787d861f 100644
--- a/clang/lib/Driver/ToolChains/AMDGPU.cpp
+++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp
@@ -249,7 +249,7 @@ RocmInstallationDetector::getInstallationPathCandidates() {
// Deduce ROCm path by the real path of the invoked clang, resolving symbolic
// link of clang itself.
llvm::SmallString<256> RealClangPath;
- llvm::sys::fs::real_path(D.getClangProgramPath(), RealClangPath);
+ llvm::sys::fs::real_path(D.getDriverProgramPath(), RealClangPath);
auto ParentPath = llvm::sys::path::parent_path(RealClangPath);
if (ParentPath != InstallDir)
ROCmSearchDirs.emplace_back(DeduceROCmPath(ParentPath));
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 7657afb14f077..7fa1210a187dd 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -2323,7 +2323,7 @@ void Clang::DumpCompilationDatabase(Compilation &C, StringRef Filename,
CDB << ", \"file\": \"" << escape(Input.getFilename()) << "\"";
if (Output.isFilename())
CDB << ", \"output\": \"" << escape(Output.getFilename()) << "\"";
- CDB << ", \"arguments\": [\"" << escape(D.ClangExecutable) << "\"";
+ CDB << ", \"arguments\": [\"" << escape(D.DriverExecutable) << "\"";
SmallString<128> Buf;
Buf = "-x";
Buf += types::getTypeName(Input.getType());
@@ -5552,7 +5552,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
}
C.addCommand(std::make_unique<Command>(
- JA, *this, ResponseFileSupport::AtFileUTF8(), D.getClangProgramPath(),
+ JA, *this, ResponseFileSupport::AtFileUTF8(), D.getDriverProgramPath(),
CmdArgs, Inputs, Output, D.getPrependArg()));
return;
}
@@ -8072,7 +8072,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
Args.AddAllArgs(CmdArgs, options::OPT_undef);
- const char *Exec = D.getClangProgramPath();
+ const char *Exec = D.getDriverProgramPath();
// Optionally embed the -cc1 level arguments into the debug info or a
// section, for build analysis.
@@ -9126,7 +9126,7 @@ void ClangAs::ConstructJob(Compilation &C, const JobAction &JA,
Arg->render(Args, OriginalArgs);
SmallString<256> Flags;
- const char *Exec = getToolChain().getDriver().getClangProgramPath();
+ const char *Exec = getToolChain().getDriver().getDriverProgramPath();
escapeSpacesAndBackslashes(Exec, Flags);
for (const char *OriginalArg : OriginalArgs) {
SmallString<128> EscapedArg;
@@ -9259,7 +9259,7 @@ void ClangAs::ConstructJob(Compilation &C, const JobAction &JA,
assert(Input.isFilename() && "Invalid input.");
CmdArgs.push_back(Input.getFilename());
- const char *Exec = getToolChain().getDriver().getClangProgramPath();
+ const char *Exec = getToolChain().getDriver().getDriverProgramPath();
if (D.CC1Main && !D.CCGenDiagnostics) {
// Invoke cc1as directly in this process.
C.addCommand(std::make_unique<CC1Command>(
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index d0dab119fa6d8..28ef424fea79e 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -981,7 +981,7 @@ void tools::addDTLTOOptions(const ToolChain &ToolChain, const ArgList &Args,
Args.MakeArgString("--thinlto-distributor=" + Twine(A->getValue())));
const Driver &D = ToolChain.getDriver();
CmdArgs.push_back(Args.MakeArgString("--thinlto-remote-compiler=" +
- Twine(D.getClangProgramPath())));
+ Twine(D.getDriverProgramPath())));
if (auto *PA = D.getPrependArg())
CmdArgs.push_back(Args.MakeArgString(
"--thinlto-remote-compiler-prepend-arg=" + Twine(PA)));
@@ -3315,7 +3315,7 @@ void tools::escapeSpacesAndBackslashes(const char *Arg,
const char *tools::renderEscapedCommandLine(const ToolChain &TC,
const llvm::opt::ArgList &Args) {
const Driver &D = TC.getDriver();
- const char *Exec = D.getClangProgramPath();
+ const char *Exec = D.getDriverProgramPath();
llvm::opt::ArgStringList OriginalArgs;
for (const auto &Arg : Args)
diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp
index 103bc4ec7613f..1fead29838aec 100644
--- a/clang/lib/Driver/ToolChains/Darwin.cpp
+++ b/clang/lib/Driver/ToolChains/Darwin.cpp
@@ -1384,7 +1384,7 @@ void DarwinClang::AddLinkARCArgs(const ArgList &Args,
runtime.hasSubscripting())
return;
- SmallString<128> P(getDriver().ClangExecutable);
+ SmallString<128> P(getDriver().DriverExecutable);
llvm::sys::path::remove_filename(P); // 'clang'
llvm::sys::path::remove_filename(P); // 'bin'
llvm::sys::path::append(P, "lib", "arc");
diff --git a/clang/lib/Driver/ToolChains/HIPAMD.cpp b/clang/lib/Driver/ToolChains/HIPAMD.cpp
index 98be4861276f8..24f8c04b1e487 100644
--- a/clang/lib/Driver/ToolChains/HIPAMD.cpp
+++ b/clang/lib/Driver/ToolChains/HIPAMD.cpp
@@ -180,7 +180,7 @@ void AMDGCN::Linker::constructLinkAndEmitSpirvCommand(
Output.getFilename()});
const Driver &Driver = getToolChain().getDriver();
- const char *Exec = Driver.getClangProgramPath();
+ const char *Exec = Driver.getDriverProgramPath();
C.addCommand(std::make_unique<Command>(
JA, *this, ResponseFileSupport::None(), Exec, CmdArgs, LinkedBCFile,
Output, Driver.getPrependArg()));
diff --git a/clang/lib/Driver/ToolChains/HIPUtility.cpp b/clang/lib/Driver/ToolChains/HIPUtility.cpp
index 51e1ba1866009..e7fc61114a72a 100644
--- a/clang/lib/Driver/ToolChains/HIPUtility.cpp
+++ b/clang/lib/Driver/ToolChains/HIPUtility.cpp
@@ -482,7 +482,7 @@ void HIP::constructGenerateObjFileFromHIPFatBinary(
"-x", "assembler",
ObjinFile, "-c"};
C.addCommand(std::make_unique<Command>(JA, T, ResponseFileSupport::None(),
- D.getClangProgramPath(), ClangArgs,
+ D.getDriverProgramPath(), ClangArgs,
Inputs, Output, D.getPrependArg()));
}
diff --git a/clang/lib/Tooling/CompilationDatabase.cpp b/clang/lib/Tooling/CompilationDatabase.cpp
index 4070bb81c6f74..51079b4dcd543 100644
--- a/clang/lib/Tooling/CompilationDatabase.cpp
+++ b/clang/lib/Tooling/CompilationDatabase.cpp
@@ -247,7 +247,7 @@ static bool stripPositionalArgs(std::vector<const char *> Args,
// The clang executable path isn't required since the jobs the driver builds
// will not be executed.
std::unique_ptr<driver::Driver> NewDriver(new driver::Driver(
- /* ClangExecutable= */ "", llvm::sys::getDefaultTargetTriple(),
+ /* DriverExecutable= */ "", llvm::sys::getDefaultTargetTriple(),
Diagnostics));
NewDriver->setCheckInputsExist(false);
diff --git a/clang/unittests/Driver/ToolChainTest.cpp b/clang/unittests/Driver/ToolChainTest.cpp
index cc594e8ad18db..ef45fb4eb2280 100644
--- a/clang/unittests/Driver/ToolChainTest.cpp
+++ b/clang/unittests/Driver/ToolChainTest.cpp
@@ -925,12 +925,12 @@ TEST(ToolChainTest, NestedConfigFile) {
FS->addFile("/home/test/bin/platform.cfg", 0,
llvm::MemoryBuffer::getMemBuffer("--sysroot=/platform-bin\n"));
- SmallString<128> ClangExecutable("/home/test/bin/clang");
- FS->makeAbsolute(ClangExecutable);
+ SmallString<128> DriverExecutable("/home/test/bin/clang");
+ FS->makeAbsolute(DriverExecutable);
// User file is absent - use system definitions.
{
- Driver TheDriver(ClangExecutable, "arm-linux-gnueabi", Diags,
+ Driver TheDriver(DriverExecutable, "arm-linux-gnueabi", Diags,
"clang LLVM compiler", FS);
std::unique_ptr<Compilation> C(TheDriver.BuildCompilation(
{"/home/test/bin/clang", "--config", "root.cfg",
@@ -944,7 +944,7 @@ TEST(ToolChainTest, NestedConfigFile) {
FS->addFile("/home/test/sdk/platform.cfg", 0,
llvm::MemoryBuffer::getMemBuffer("--sysroot=/platform-user\n"));
{
- Driver TheDriver(ClangExecutable, "arm-linux-gnueabi", Diags,
+ Driver TheDriver(DriverExecutable, "arm-linux-gnueabi", Diags,
"clang LLVM compiler", FS);
std::unique_ptr<Compilation> C(TheDriver.BuildCompilation(
{"/home/test/bin/clang", "--config", "root.cfg",
>From 4460d0e6404aeac7bba40437c1492a5581cce325 Mon Sep 17 00:00:00 2001
From: Kelvin Li <kli at ca.ibm.com>
Date: Mon, 1 Jun 2026 09:30:44 -0400
Subject: [PATCH 2/2] fix format
---
clang/include/clang/Driver/Driver.h | 4 +---
clang/lib/Driver/ToolChains/AIX.cpp | 3 +--
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/clang/include/clang/Driver/Driver.h b/clang/include/clang/Driver/Driver.h
index eda53a4249feb..02a821bbfd6da 100644
--- a/clang/include/clang/Driver/Driver.h
+++ b/clang/include/clang/Driver/Driver.h
@@ -438,9 +438,7 @@ class Driver {
std::string getTargetTriple() const { return TargetTriple; }
/// Get the path to the main driver executable.
- const char *getDriverProgramPath() const {
- return DriverExecutable.c_str();
- }
+ const char *getDriverProgramPath() const { return DriverExecutable.c_str(); }
StringRef getPreferredLinker() const { return PreferredLinker; }
void setPreferredLinker(std::string Value) {
diff --git a/clang/lib/Driver/ToolChains/AIX.cpp b/clang/lib/Driver/ToolChains/AIX.cpp
index 87a2859dad7a9..f90b74385977a 100644
--- a/clang/lib/Driver/ToolChains/AIX.cpp
+++ b/clang/lib/Driver/ToolChains/AIX.cpp
@@ -250,8 +250,7 @@ void aix::Linker::ConstructJob(Compilation &C, const JobAction &JA,
if (Args.hasArg(options::OPT_shared) && !hasExportListLinkerOpts(CmdArgs)) {
const char *CreateExportListExec = Args.MakeArgString(
- path::parent_path(ToolChain.getDriver().DriverExecutable) +
- "/llvm-nm");
+ path::parent_path(ToolChain.getDriver().DriverExecutable) + "/llvm-nm");
ArgStringList CreateExportCmdArgs;
std::string CreateExportListPath =
More information about the cfe-commits
mailing list