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 <[email protected]> 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 <[email protected]> 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 = _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
