llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clangd Author: Naveen Seth Hanig (naveen-seth) <details> <summary>Changes</summary> The goal of this change is to remove dependencies on the Driver. This is part of a larger effort to support driver-managed builds for compilations using C++ named modules and/or Clang modules. It is required to eventually allow linking the dependency scanning tooling against the Driver without creating cyclic dependencies, which would cause build failures when dynamic linking is enabled. This PR is motivated by the following review comment: https://github.com/llvm/llvm-project/pull/152770#discussion_r2430756918 --- Patch is 181.82 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/163659.diff 114 Files Affected: - (modified) clang-tools-extra/clangd/CMakeLists.txt (+1) - (modified) clang-tools-extra/clangd/CompileCommands.cpp (+13-13) - (modified) clang-tools-extra/modularize/CMakeLists.txt (+1) - (modified) clang-tools-extra/modularize/CoverageChecker.cpp (+3-3) - (modified) clang-tools-extra/modularize/Modularize.cpp (+2-2) - (modified) clang-tools-extra/modularize/ModularizeUtilities.cpp (+3-3) - (modified) clang-tools-extra/pp-trace/CMakeLists.txt (+1) - (modified) clang-tools-extra/pp-trace/PPTrace.cpp (+1-1) - (modified) clang/docs/InternalsManual.rst (+4-4) - (modified) clang/include/clang/CMakeLists.txt (+1-1) - (modified) clang/include/clang/Driver/Driver.h (+1-1) - (modified) clang/include/clang/Frontend/Utils.h (+1-1) - (renamed) clang/include/clang/Options/CMakeLists.txt () - (renamed) clang/include/clang/Options/ClangOptionDocs.td (+1-1) - (renamed) clang/include/clang/Options/OptionUtils.h (+3-3) - (renamed) clang/include/clang/Options/Options.h (+8-10) - (renamed) clang/include/clang/Options/Options.td () - (modified) clang/lib/CMakeLists.txt (+1) - (modified) clang/lib/Driver/CMakeLists.txt (+1-2) - (modified) clang/lib/Driver/Compilation.cpp (+1-1) - (modified) clang/lib/Driver/Driver.cpp (+1-1) - (modified) clang/lib/Driver/SanitizerArgs.cpp (+1-1) - (modified) clang/lib/Driver/ToolChain.cpp (+3-3) - (modified) clang/lib/Driver/ToolChains/AIX.cpp (+3-2) - (modified) clang/lib/Driver/ToolChains/AMDGPU.cpp (+9-9) - (modified) clang/lib/Driver/ToolChains/AMDGPU.h (+1-1) - (modified) clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/AVR.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/Arch/AArch64.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/Arch/ARM.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/Arch/CSKY.cpp (+3-3) - (modified) clang/lib/Driver/ToolChains/Arch/LoongArch.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/Arch/M68k.cpp (+8-8) - (modified) clang/lib/Driver/ToolChains/Arch/Mips.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/Arch/PPC.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/Arch/RISCV.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/Arch/Sparc.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/Arch/SystemZ.cpp (+4-4) - (modified) clang/lib/Driver/ToolChains/Arch/VE.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/Arch/X86.cpp (+9-9) - (modified) clang/lib/Driver/ToolChains/BareMetal.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/CSKYToolChain.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/Clang.cpp (+6-6) - (modified) clang/lib/Driver/ToolChains/CommonArgs.cpp (+10-10) - (modified) clang/lib/Driver/ToolChains/CrossWindows.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/Cuda.cpp (+4-4) - (modified) clang/lib/Driver/ToolChains/Cygwin.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/Darwin.cpp (+3-3) - (modified) clang/lib/Driver/ToolChains/DragonFly.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/Flang.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/FreeBSD.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/Fuchsia.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/Gnu.cpp (+4-4) - (modified) clang/lib/Driver/ToolChains/HIPAMD.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/HIPSPV.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/HIPUtility.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/Hexagon.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/Hurd.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/Linux.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/MSP430.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/MSVC.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/Managarm.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/MinGW.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/MipsLinux.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/NetBSD.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/OHOS.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/OpenBSD.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/PPCFreeBSD.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/PPCLinux.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/PS4CPU.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/SPIRV.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/SYCL.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/Solaris.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/UEFI.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/VEToolchain.cpp (+3-3) - (modified) clang/lib/Driver/ToolChains/WebAssembly.cpp (+3-3) - (modified) clang/lib/Driver/ToolChains/XCore.cpp (+3-3) - (modified) clang/lib/Driver/ToolChains/ZOS.cpp (+1-1) - (modified) clang/lib/Driver/XRayArgs.cpp (+1-1) - (modified) clang/lib/Frontend/CMakeLists.txt (+1) - (modified) clang/lib/Frontend/CompilerInvocation.cpp (+27-27) - (modified) clang/lib/Frontend/CreateInvocationFromCommandLine.cpp (+3-3) - (modified) clang/lib/FrontendTool/CMakeLists.txt (+1) - (modified) clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp (+3-3) - (modified) clang/lib/Interpreter/Interpreter.cpp (+2-2) - (modified) clang/lib/Interpreter/InterpreterUtils.h (+1-1) - (added) clang/lib/Options/CMakeLists.txt (+18) - (renamed) clang/lib/Options/DriverOptions.cpp (+9-10) - (renamed) clang/lib/Options/OptionUtils.cpp (+1-1) - (modified) clang/lib/Tooling/CMakeLists.txt (+1) - (modified) clang/lib/Tooling/InterpolatingCompilationDatabase.cpp (+6-6) - (modified) clang/lib/Tooling/Tooling.cpp (+5-5) - (modified) clang/tools/clang-check/CMakeLists.txt (+1) - (modified) clang/tools/clang-check/ClangCheck.cpp (+2-2) - (modified) clang/tools/clang-installapi/CMakeLists.txt (+1) - (modified) clang/tools/clang-installapi/ClangInstallAPI.cpp (+2-2) - (modified) clang/tools/clang-installapi/Options.cpp (+24-26) - (modified) clang/tools/driver/CMakeLists.txt (+1) - (modified) clang/tools/driver/cc1_main.cpp (+1-1) - (modified) clang/tools/driver/cc1as_main.cpp (+3-4) - (modified) clang/tools/driver/driver.cpp (+1-1) - (modified) clang/unittests/Driver/DXCModeTest.cpp (+1-1) - (modified) clang/www/OpenProjects.html (+1-1) - (modified) flang/docs/FlangDriver.md (+4-4) - (modified) flang/lib/Frontend/CMakeLists.txt (+1) - (modified) flang/lib/Frontend/CompilerInvocation.cpp (+228-228) - (modified) flang/lib/FrontendTool/CMakeLists.txt (+1) - (modified) flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp (+3-3) - (modified) flang/tools/flang-driver/CMakeLists.txt (+1) - (modified) flang/tools/flang-driver/driver.cpp (+2-2) - (modified) lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp (+2-2) - (modified) llvm/include/llvm/MC/MCAsmInfo.h (+1-1) - (modified) llvm/include/llvm/Option/Arg.h (+1-1) - (modified) utils/bazel/llvm-project-overlay/clang/BUILD.bazel (+2-2) ``````````diff diff --git a/clang-tools-extra/clangd/CMakeLists.txt b/clang-tools-extra/clangd/CMakeLists.txt index fb3f05329be21..d7ec853af862f 100644 --- a/clang-tools-extra/clangd/CMakeLists.txt +++ b/clang-tools-extra/clangd/CMakeLists.txt @@ -165,6 +165,7 @@ clang_target_link_libraries(clangDaemon clangBasic clangDependencyScanning clangDriver + clangOptions clangFormat clangFrontend clangIndex diff --git a/clang-tools-extra/clangd/CompileCommands.cpp b/clang-tools-extra/clangd/CompileCommands.cpp index c1be93730129a..f5592b60a817a 100644 --- a/clang-tools-extra/clangd/CompileCommands.cpp +++ b/clang-tools-extra/clangd/CompileCommands.cpp @@ -11,8 +11,8 @@ #include "support/Logger.h" #include "support/Trace.h" #include "clang/Driver/Driver.h" -#include "clang/Driver/Options.h" #include "clang/Frontend/CompilerInvocation.h" +#include "clang/Options/Options.h" #include "clang/Tooling/CompilationDatabase.h" #include "clang/Tooling/Tooling.h" #include "llvm/ADT/ArrayRef.h" @@ -206,7 +206,7 @@ void CommandMangler::operator()(tooling::CompileCommand &Command, if (Cmd.empty()) return; - auto &OptTable = clang::driver::getDriverOptTable(); + auto &OptTable = getDriverOptTable(); // OriginalArgs needs to outlive ArgList. llvm::SmallVector<const char *, 16> OriginalArgs; OriginalArgs.reserve(Cmd.size()); @@ -222,8 +222,8 @@ void CommandMangler::operator()(tooling::CompileCommand &Command, llvm::opt::InputArgList ArgList; ArgList = OptTable.ParseArgs( llvm::ArrayRef(OriginalArgs).drop_front(), IgnoredCount, IgnoredCount, - llvm::opt::Visibility(IsCLMode ? driver::options::CLOption - : driver::options::ClangOption)); + llvm::opt::Visibility(IsCLMode ? options::CLOption + : options::ClangOption)); llvm::SmallVector<unsigned, 1> IndicesToDrop; // Having multiple architecture options (e.g. when building fat binaries) @@ -232,7 +232,7 @@ void CommandMangler::operator()(tooling::CompileCommand &Command, // As there are no signals to figure out which one user actually wants. They // can explicitly specify one through `CompileFlags.Add` if need be. unsigned ArchOptCount = 0; - for (auto *Input : ArgList.filtered(driver::options::OPT_arch)) { + for (auto *Input : ArgList.filtered(options::OPT_arch)) { ++ArchOptCount; for (auto I = 0U; I <= Input->getNumValues(); ++I) IndicesToDrop.push_back(Input->getIndex() + I); @@ -262,13 +262,13 @@ void CommandMangler::operator()(tooling::CompileCommand &Command, // explicitly at the end of the flags. This ensures modifications done in the // following steps apply in more cases (like setting -x, which only affects // inputs that come after it). - for (auto *Input : ArgList.filtered(driver::options::OPT_INPUT)) { + for (auto *Input : ArgList.filtered(options::OPT_INPUT)) { SawInput(Input->getValue(0)); IndicesToDrop.push_back(Input->getIndex()); } // Anything after `--` is also treated as input, drop them as well. if (auto *DashDash = - ArgList.getLastArgNoClaim(driver::options::OPT__DASH_DASH)) { + ArgList.getLastArgNoClaim(options::OPT__DASH_DASH)) { auto DashDashIndex = DashDash->getIndex() + 1; // +1 accounts for Cmd[0] // Another +1 so we don't treat the `--` itself as an input. for (unsigned I = DashDashIndex + 1; I < Cmd.size(); ++I) @@ -424,11 +424,11 @@ DriverMode getDriverMode(const std::vector<std::string> &Args) { // Returns the set of DriverModes where an option may be used. unsigned char getModes(const llvm::opt::Option &Opt) { unsigned char Result = DM_None; - if (Opt.hasVisibilityFlag(driver::options::ClangOption)) + if (Opt.hasVisibilityFlag(options::ClangOption)) Result |= DM_GCC; - if (Opt.hasVisibilityFlag(driver::options::CC1Option)) + if (Opt.hasVisibilityFlag(options::CC1Option)) Result |= DM_CC1; - if (Opt.hasVisibilityFlag(driver::options::CLOption)) + if (Opt.hasVisibilityFlag(options::CLOption)) Result |= DM_CL; return Result; } @@ -442,8 +442,8 @@ llvm::ArrayRef<ArgStripper::Rule> ArgStripper::rulesFor(llvm::StringRef Arg) { using TableTy = llvm::StringMap<llvm::SmallVector<Rule, 4>, llvm::BumpPtrAllocator>; static TableTy *Table = [] { - auto &DriverTable = driver::getDriverOptTable(); - using DriverID = clang::driver::options::ID; + auto &DriverTable = getDriverOptTable(); + using DriverID = clang::options::ID; // Collect sets of aliases, so we can treat -foo and -foo= as synonyms. // Conceptually a double-linked list: PrevAlias[I] -> I -> NextAlias[I]. @@ -468,7 +468,7 @@ llvm::ArrayRef<ArgStripper::Rule> ArgStripper::rulesFor(llvm::StringRef Arg) { FLAGS, VISIBILITY, PARAM, HELPTEXT, HELPTEXTSFORVARIANTS, \ METAVAR, VALUES, SUBCOMMANDIDS_OFFSET) \ {DriverID::OPT_##ID, DriverID::OPT_##ALIAS, ALIASARGS}, -#include "clang/Driver/Options.inc" +#include "clang/Options/Options.inc" #undef OPTION }; for (auto &E : AliasTable) diff --git a/clang-tools-extra/modularize/CMakeLists.txt b/clang-tools-extra/modularize/CMakeLists.txt index eb5383c3ad44e..a775b790a3147 100644 --- a/clang-tools-extra/modularize/CMakeLists.txt +++ b/clang-tools-extra/modularize/CMakeLists.txt @@ -20,6 +20,7 @@ clang_target_link_libraries(modularize clangAST clangBasic clangDriver + clangOptions clangFrontend clangLex clangSerialization diff --git a/clang-tools-extra/modularize/CoverageChecker.cpp b/clang-tools-extra/modularize/CoverageChecker.cpp index 1345a6ef8f489..d80d78c64c6e2 100644 --- a/clang-tools-extra/modularize/CoverageChecker.cpp +++ b/clang-tools-extra/modularize/CoverageChecker.cpp @@ -50,18 +50,18 @@ // //===----------------------------------------------------------------------===// +#include "CoverageChecker.h" #include "ModularizeUtilities.h" #include "clang/AST/ASTConsumer.h" -#include "CoverageChecker.h" #include "clang/AST/ASTContext.h" #include "clang/AST/RecursiveASTVisitor.h" #include "clang/Basic/SourceManager.h" -#include "clang/Driver/Options.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/FrontendAction.h" #include "clang/Frontend/FrontendActions.h" #include "clang/Lex/PPCallbacks.h" #include "clang/Lex/Preprocessor.h" +#include "clang/Options/Options.h" #include "clang/Tooling/CompilationDatabase.h" #include "clang/Tooling/Tooling.h" #include "llvm/Option/Option.h" @@ -73,7 +73,7 @@ using namespace Modularize; using namespace clang; using namespace clang::driver; -using namespace clang::driver::options; +using namespace clang::options; using namespace clang::tooling; namespace cl = llvm::cl; namespace sys = llvm::sys; diff --git a/clang-tools-extra/modularize/Modularize.cpp b/clang-tools-extra/modularize/Modularize.cpp index 376ad0c7875bf..33966b44f719a 100644 --- a/clang-tools-extra/modularize/Modularize.cpp +++ b/clang-tools-extra/modularize/Modularize.cpp @@ -231,11 +231,11 @@ #include "clang/AST/ASTContext.h" #include "clang/AST/RecursiveASTVisitor.h" #include "clang/Basic/SourceManager.h" -#include "clang/Driver/Options.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/FrontendAction.h" #include "clang/Frontend/FrontendActions.h" #include "clang/Lex/Preprocessor.h" +#include "clang/Options/Options.h" #include "clang/Tooling/CompilationDatabase.h" #include "clang/Tooling/Tooling.h" #include "llvm/Option/Arg.h" @@ -254,7 +254,7 @@ using namespace clang; using namespace clang::driver; -using namespace clang::driver::options; +using namespace clang::options; using namespace clang::tooling; using namespace llvm; using namespace llvm::opt; diff --git a/clang-tools-extra/modularize/ModularizeUtilities.cpp b/clang-tools-extra/modularize/ModularizeUtilities.cpp index 4dd84feac5df4..6978a6b2fe1b7 100644 --- a/clang-tools-extra/modularize/ModularizeUtilities.cpp +++ b/clang-tools-extra/modularize/ModularizeUtilities.cpp @@ -12,17 +12,17 @@ // //===----------------------------------------------------------------------===// +#include "ModularizeUtilities.h" +#include "CoverageChecker.h" #include "clang/Basic/SourceManager.h" -#include "clang/Driver/Options.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/FrontendActions.h" -#include "CoverageChecker.h" +#include "clang/Options/Options.h" #include "llvm/ADT/SmallString.h" #include "llvm/Support/FileUtilities.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Path.h" #include "llvm/Support/raw_ostream.h" -#include "ModularizeUtilities.h" using namespace clang; using namespace llvm; diff --git a/clang-tools-extra/pp-trace/CMakeLists.txt b/clang-tools-extra/pp-trace/CMakeLists.txt index 1323adbc35269..da36582ee0234 100644 --- a/clang-tools-extra/pp-trace/CMakeLists.txt +++ b/clang-tools-extra/pp-trace/CMakeLists.txt @@ -14,6 +14,7 @@ clang_target_link_libraries(pp-trace PRIVATE clangAST clangBasic + clangOptions clangFrontend clangLex clangSerialization diff --git a/clang-tools-extra/pp-trace/PPTrace.cpp b/clang-tools-extra/pp-trace/PPTrace.cpp index 0b078c49a55b7..ba5a06a26830d 100644 --- a/clang-tools-extra/pp-trace/PPTrace.cpp +++ b/clang-tools-extra/pp-trace/PPTrace.cpp @@ -28,11 +28,11 @@ #include "clang/AST/ASTConsumer.h" #include "clang/AST/ASTContext.h" #include "clang/Basic/SourceManager.h" -#include "clang/Driver/Options.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/FrontendAction.h" #include "clang/Frontend/FrontendActions.h" #include "clang/Lex/Preprocessor.h" +#include "clang/Options/Options.h" #include "clang/Tooling/Execution.h" #include "clang/Tooling/Tooling.h" #include "llvm/Option/Arg.h" diff --git a/clang/docs/InternalsManual.rst b/clang/docs/InternalsManual.rst index c677ddfa5ecc1..c77259f6122cd 100644 --- a/clang/docs/InternalsManual.rst +++ b/clang/docs/InternalsManual.rst @@ -667,7 +667,7 @@ Command Line Interface ---------------------- The command line interface of the Clang ``-cc1`` frontend is defined alongside -the driver options in ``clang/Driver/Options.td``. The information making up an +the driver options in ``clang/Options/Options.td``. The information making up an option definition includes its prefix and name (for example ``-std=``), form and position of the option value, help text, aliases and more. Each option may belong to a certain group and can be marked with zero or more flags. Options @@ -712,7 +712,7 @@ variable for the option value: } Next, declare the command line interface of the option in the tablegen file -``clang/include/clang/Driver/Options.td``. This is done by instantiating the +``clang/include/clang/Options/Options.td``. This is done by instantiating the ``Option`` class (defined in ``llvm/include/llvm/Option/OptParser.td``). The instance is typically created through one of the helper classes that encode the acceptable ways to specify the option value on the command line: @@ -906,7 +906,7 @@ command line: SHOULD_PARSE, KEYPATH, DEFAULT_VALUE, \ IMPLIED_CHECK, IMPLIED_VALUE, NORMALIZER, \ MERGER, TABLE_INDEX) - #include "clang/Driver/Options.inc" + #include "clang/Options/Options.inc" #undef LANG_OPTION_WITH_MARSHALLING // ... @@ -925,7 +925,7 @@ command line: GENERATE_OPTION_WITH_MARSHALLING( \ Args, SA, KIND, FLAGS, SPELLING, ALWAYS_EMIT, KEYPATH, DEFAULT_VALUE, \ IMPLIED_CHECK, IMPLIED_VALUE, DENORMALIZER, EXTRACTOR, TABLE_INDEX) - #include "clang/Driver/Options.inc" + #include "clang/Options/Options.inc" #undef LANG_OPTION_WITH_MARSHALLING // ... diff --git a/clang/include/clang/CMakeLists.txt b/clang/include/clang/CMakeLists.txt index 47ac70cd21690..77a44e4c48de5 100644 --- a/clang/include/clang/CMakeLists.txt +++ b/clang/include/clang/CMakeLists.txt @@ -3,7 +3,7 @@ add_subdirectory(Basic) if(CLANG_ENABLE_CIR) add_subdirectory(CIR) endif() -add_subdirectory(Driver) +add_subdirectory(Options) add_subdirectory(Parse) add_subdirectory(Sema) add_subdirectory(Serialization) diff --git a/clang/include/clang/Driver/Driver.h b/clang/include/clang/Driver/Driver.h index b9b187ada8add..aa86bffb802a4 100644 --- a/clang/include/clang/Driver/Driver.h +++ b/clang/include/clang/Driver/Driver.h @@ -15,11 +15,11 @@ #include "clang/Driver/Action.h" #include "clang/Driver/DriverDiagnostic.h" #include "clang/Driver/InputInfo.h" -#include "clang/Driver/Options.h" #include "clang/Driver/Phases.h" #include "clang/Driver/ToolChain.h" #include "clang/Driver/Types.h" #include "clang/Driver/Util.h" +#include "clang/Options/Options.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/STLFunctionalExtras.h" #include "llvm/ADT/StringMap.h" diff --git a/clang/include/clang/Frontend/Utils.h b/clang/include/clang/Frontend/Utils.h index 49fd920d1ec43..6961b8a234d18 100644 --- a/clang/include/clang/Frontend/Utils.h +++ b/clang/include/clang/Frontend/Utils.h @@ -15,7 +15,7 @@ #include "clang/Basic/Diagnostic.h" #include "clang/Basic/LLVM.h" -#include "clang/Driver/OptionUtils.h" +#include "clang/Options/OptionUtils.h" #include "clang/Frontend/DependencyOutputOptions.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/IntrusiveRefCntPtr.h" diff --git a/clang/include/clang/Driver/CMakeLists.txt b/clang/include/clang/Options/CMakeLists.txt similarity index 100% rename from clang/include/clang/Driver/CMakeLists.txt rename to clang/include/clang/Options/CMakeLists.txt diff --git a/clang/include/clang/Driver/ClangOptionDocs.td b/clang/include/clang/Options/ClangOptionDocs.td similarity index 98% rename from clang/include/clang/Driver/ClangOptionDocs.td rename to clang/include/clang/Options/ClangOptionDocs.td index dea6a7ccb12c9..c4da07306eb8e 100644 --- a/clang/include/clang/Driver/ClangOptionDocs.td +++ b/clang/include/clang/Options/ClangOptionDocs.td @@ -7,7 +7,7 @@ //===----------------------------------------------------------------------===// def GlobalDocumentation { - code Intro =[{.. + code Intro = [{.. ------------------------------------------------------------------- NOTE: This file is automatically generated by running clang-tblgen -gen-opt-docs. Do not edit this file by hand!! diff --git a/clang/include/clang/Driver/OptionUtils.h b/clang/include/clang/Options/OptionUtils.h similarity index 94% rename from clang/include/clang/Driver/OptionUtils.h rename to clang/include/clang/Options/OptionUtils.h index 922f536bf33ea..9b5312eb63fcb 100644 --- a/clang/include/clang/Driver/OptionUtils.h +++ b/clang/include/clang/Options/OptionUtils.h @@ -10,8 +10,8 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CLANG_DRIVER_OPTIONUTILS_H -#define LLVM_CLANG_DRIVER_OPTIONUTILS_H +#ifndef LLVM_CLANG_OPTIONUTILS_H +#define LLVM_CLANG_OPTIONUTILS_H #include "clang/Basic/Diagnostic.h" #include "clang/Basic/LLVM.h" @@ -55,4 +55,4 @@ inline uint64_t getLastArgUInt64Value(const llvm::opt::ArgList &Args, } // namespace clang -#endif // LLVM_CLANG_DRIVER_OPTIONUTILS_H +#endif // LLVM_CLANG_OPTIONUTILS_H diff --git a/clang/include/clang/Driver/Options.h b/clang/include/clang/Options/Options.h similarity index 86% rename from clang/include/clang/Driver/Options.h rename to clang/include/clang/Options/Options.h index 0797410e9940e..1097845b6e108 100644 --- a/clang/include/clang/Driver/Options.h +++ b/clang/include/clang/Options/Options.h @@ -6,14 +6,13 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CLANG_DRIVER_OPTIONS_H -#define LLVM_CLANG_DRIVER_OPTIONS_H +#ifndef LLVM_CLANG_OPTIONS_H +#define LLVM_CLANG_OPTIONS_H #include "llvm/Option/OptTable.h" #include "llvm/Option/Option.h" namespace clang { -namespace driver { namespace options { /// Flags specifically for clang options. Must not overlap with @@ -42,16 +41,15 @@ enum ClangVisibility { }; enum ID { - OPT_INVALID = 0, // This is not an option ID. + OPT_INVALID = 0, // This is not an option ID. #define OPTION(...) LLVM_MAKE_OPT_ID(__VA_ARGS__), -#include "clang/Driver/Options.inc" - LastOption +#include "clang/Options/Options.inc" + LastOption #undef OPTION - }; -} +}; +} // namespace options const llvm::opt::OptTable &getDriverOptTable(); -} -} +} // namespace clang #endif diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Options/Options.td similarity index 100% rename from clang/include/clang/Driver/Options.td rename to clang/include/clang/Options/Options.td diff --git a/clang/lib/CMakeLists.txt b/clang/lib/CMakeLists.txt index 4f2218b583e41..e90b009da606a 100644 --- a/clang/lib/CMakeLists.txt +++ b/clang/lib/CMakeLists.txt @@ -13,6 +13,7 @@ add_subdirectory(Edit) add_subdirectory(ExtractAPI) add_subdirectory(Rewrite) add_subdirectory(Driver) +add_subdirectory(Options) add_subdirectory(Serialization) add_subdirectory(Frontend) add_subdirectory(FrontendTool) diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt index 7c4f70b966c48..8052659e9836b 100644 --- a/clang/lib/Driver/CMakeLists.txt +++ b/clang/lib/Driver/CMakeLists.txt @@ -19,12 +19,10 @@ add_clang_library(clangDriver Compilation.cpp Distro.cpp Driver.cpp - DriverOptions.cpp Job.cpp Multilib.cpp MultilibBuilder.cpp OffloadBundler.cpp - OptionUtils.cpp Phases.cpp SanitizerArgs.cpp Tool.cpp @@ -99,5 +97,6 @@ add_clang_library(clangDriver LINK_LIBS clangBasic clangLex + clangOptions ${system_libs} ) diff --git a/clang/lib/Driver/Compilation.cpp b/clang/lib/Driver/Compilation.cpp index 4e300316ae9ba..f8ca2a3d09407 100644 --- a/clang/lib/Driver/Compilation.cpp +++ b/clang/lib/Driver/Compilation.cpp @@ -11,9 +11,9 @@ #include "clang/Driver/Action.h" #include "clang/Driver/Driver.h" #include "clang/Driver/Job.h" -#include "clang/Driver/Options.h" #include "clang/Driver/ToolChain.h" #include "clang/Driver/Util.h" +#include "clang/Options/Options.h" #include "llvm/Option/ArgList.h" #include "llvm/Option/OptSpecifier.h" #include "llvm/Option/Option.h" diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 40ea513e85427..d6c2aa8027ba3 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -60,13 +60,13 @@ #include "clang/Driver/Compilation.h" #include "clang/Driver/InputInfo.h" #include "clang/Driver/Job.h" -#include "clang/Driver/Options.h" #include "clang/Driver/Phases.h" #include "clang/Driver/SanitizerArgs.h" #include "clang/Driver/Tool.h" #include "clang/Driver/ToolChain.h" #include "clang/Driver/Types.h" #include "clang/Lex/DependencyDirectivesScanner.h" +#include "clang/Options/Options.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/SmallSet.h" diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index 5dd48f53b9069..420c4cddbc8dd 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -8,8 +8,8 @@ #include "clang/Driver/SanitizerArgs.h" #include "clang/Basic/Sanitizers.h" #include "clang/Driver/Driver.h" -#include "clang/Driver/Options.h" #include "clang/Driver/ToolChain.h" +#include "clang/Options/Options.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringSwitch.h" diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index 3d5cac62afe01..7c77870223449 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -21,9 +21,9 @@ #include "clang/Driver/Driver.h" #include "clang/Driver/InputInfo.h" #include "clang/Driver/Job.h" -#include "clang/Driver/Options.h" #include "clang/Driver/SanitizerArgs.h" #include "clang/Driver/XRayArgs.h" +#include "clang/Options/Options.h" #include "llvm/ADT/SmallString.h" #include "llvm/ADT/StringExtras.h" #include "llvm/ADT/StringRef.h" @@ -338,7 +338,7 @@ static void getRISCVMultilibFlags(const Driver &D, const llvm::Triple &Triple, Multilib::flags_list ToolChain::getMultilibFlags(const llvm::opt::ArgList &Args) const { - using namespace clang::driver::options; + using namespace clang::option... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/163659 _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
