Skip to content

Conversation

@naveen-seth
Copy link
Contributor

@naveen-seth naveen-seth commented Nov 10, 2025

Reverts #163659 due to missing one reference clang/Driver/Options.h in clang/include/clang/Driver/Driver.h.

See #163659 (comment)

@llvmbot llvmbot added clang Clang issues not falling into any other category clang-tools-extra lldb backend:ARM backend:AArch64 backend:AMDGPU backend:Hexagon backend:MIPS backend:RISC-V backend:PowerPC backend:Sparc backend:SystemZ backend:X86 clangd clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' clang:frontend Language frontend issues, e.g. anything involving "Sema" llvm:mc Machine (object) code flang:driver flang Flang issues not falling into any other category backend:CSKY backend:SPIR-V backend:loongarch bazel "Peripheral" support tier build system: utils/bazel clang:openmp OpenMP related changes to Clang labels Nov 10, 2025
@llvmbot
Copy link
Member

llvmbot commented Nov 10, 2025

@llvm/pr-subscribers-backend-spir-v
@llvm/pr-subscribers-backend-sparc
@llvm/pr-subscribers-backend-risc-v
@llvm/pr-subscribers-flang-driver
@llvm/pr-subscribers-clang-driver

@llvm/pr-subscribers-clang

Author: Naveen Seth Hanig (naveen-seth)

Changes

Reverts llvm/llvm-project#163659 due to missing one reference clang/Driver/Options.h in clang/include/clang/Driver/Driver.h.

See #163659 (comment)


Patch is 188.19 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/167348.diff

118 Files Affected:

  • (modified) clang-tools-extra/clangd/CMakeLists.txt (-1)
  • (modified) clang-tools-extra/clangd/CompileCommands.cpp (+14-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/CMakeLists.txt (+1-1)
  • (modified) clang/docs/InternalsManual.rst (+4-4)
  • (modified) clang/docs/ReleaseNotes.rst (-3)
  • (modified) clang/include/clang/CMakeLists.txt (+1-1)
  • (renamed) clang/include/clang/Driver/CMakeLists.txt ()
  • (renamed) clang/include/clang/Driver/ClangOptionDocs.td ()
  • (modified) clang/include/clang/Driver/Driver.h (+1-1)
  • (renamed) clang/include/clang/Driver/OptionUtils.h (+3-3)
  • (renamed) clang/include/clang/Driver/Options.h (+11-9)
  • (renamed) clang/include/clang/Driver/Options.td ()
  • (modified) clang/include/clang/Frontend/Utils.h (+1-1)
  • (modified) clang/include/module.modulemap (-1)
  • (modified) clang/lib/CMakeLists.txt (-1)
  • (modified) clang/lib/Driver/CMakeLists.txt (+2-1)
  • (modified) clang/lib/Driver/Compilation.cpp (+1-1)
  • (modified) clang/lib/Driver/Driver.cpp (+1-1)
  • (renamed) clang/lib/Driver/DriverOptions.cpp (+10-9)
  • (renamed) clang/lib/Driver/OptionUtils.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-3)
  • (modified) clang/lib/Driver/ToolChains/AMDGPU.cpp (+12-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 (+3-2)
  • (modified) clang/lib/Driver/ToolChains/Arch/M68k.cpp (+8-8)
  • (modified) clang/lib/Driver/ToolChains/Arch/Mips.cpp (+3-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 (+5-5)
  • (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 (+7-6)
  • (modified) clang/lib/Driver/ToolChains/CommonArgs.cpp (+13-11)
  • (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 (+6-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)
  • (removed) clang/lib/Options/CMakeLists.txt (-18)
  • (modified) clang/lib/Tooling/CMakeLists.txt (-1)
  • (modified) clang/lib/Tooling/InterpolatingCompilationDatabase.cpp (+6-6)
  • (modified) clang/lib/Tooling/Tooling.cpp (+7-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 (+28-27)
  • (modified) clang/tools/driver/CMakeLists.txt (-1)
  • (modified) clang/tools/driver/cc1_main.cpp (+1-1)
  • (modified) clang/tools/driver/cc1as_main.cpp (+5-3)
  • (modified) clang/tools/driver/driver.cpp (+1-1)
  • (modified) clang/unittests/Driver/DXCModeTest.cpp (+2-2)
  • (modified) clang/www/OpenProjects.html (+1-1)
  • (modified) flang/docs/CMakeLists.txt (+1-1)
  • (modified) flang/docs/FlangDriver.md (+4-4)
  • (modified) flang/lib/Frontend/CMakeLists.txt (-1)
  • (modified) flang/lib/Frontend/CompilerInvocation.cpp (+291-256)
  • (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 --git a/clang-tools-extra/clangd/CMakeLists.txt b/clang-tools-extra/clangd/CMakeLists.txt
index d7ec853af862f..fb3f05329be21 100644
--- a/clang-tools-extra/clangd/CMakeLists.txt
+++ b/clang-tools-extra/clangd/CMakeLists.txt
@@ -165,7 +165,6 @@ 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 7990f2719e9a0..c1be93730129a 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 = getDriverOptTable();
+  auto &OptTable = clang::driver::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 ? options::CLOption
-                                     : options::ClangOption));
+      llvm::opt::Visibility(IsCLMode ? driver::options::CLOption
+                                     : driver::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(options::OPT_arch)) {
+  for (auto *Input : ArgList.filtered(driver::options::OPT_arch)) {
     ++ArchOptCount;
     for (auto I = 0U; I <= Input->getNumValues(); ++I)
       IndicesToDrop.push_back(Input->getIndex() + I);
@@ -262,12 +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(options::OPT_INPUT)) {
+  for (auto *Input : ArgList.filtered(driver::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(options::OPT__DASH_DASH)) {
+  if (auto *DashDash =
+          ArgList.getLastArgNoClaim(driver::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)
@@ -423,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(options::ClangOption))
+  if (Opt.hasVisibilityFlag(driver::options::ClangOption))
     Result |= DM_GCC;
-  if (Opt.hasVisibilityFlag(options::CC1Option))
+  if (Opt.hasVisibilityFlag(driver::options::CC1Option))
     Result |= DM_CC1;
-  if (Opt.hasVisibilityFlag(options::CLOption))
+  if (Opt.hasVisibilityFlag(driver::options::CLOption))
     Result |= DM_CL;
   return Result;
 }
@@ -441,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 = getDriverOptTable();
-    using DriverID = clang::options::ID;
+    auto &DriverTable = driver::getDriverOptTable();
+    using DriverID = clang::driver::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].
@@ -467,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/Options/Options.inc"
+#include "clang/Driver/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 a775b790a3147..eb5383c3ad44e 100644
--- a/clang-tools-extra/modularize/CMakeLists.txt
+++ b/clang-tools-extra/modularize/CMakeLists.txt
@@ -20,7 +20,6 @@ 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 d80d78c64c6e2..1345a6ef8f489 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::options;
+using namespace clang::driver::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 33966b44f719a..376ad0c7875bf 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::options;
+using namespace clang::driver::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 6978a6b2fe1b7..4dd84feac5df4 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 "clang/Options/Options.h"
+#include "CoverageChecker.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 da36582ee0234..1323adbc35269 100644
--- a/clang-tools-extra/pp-trace/CMakeLists.txt
+++ b/clang-tools-extra/pp-trace/CMakeLists.txt
@@ -14,7 +14,6 @@ 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 ba5a06a26830d..0b078c49a55b7 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/CMakeLists.txt b/clang/docs/CMakeLists.txt
index 9469a832adb62..1f06c040c96cb 100644
--- a/clang/docs/CMakeLists.txt
+++ b/clang/docs/CMakeLists.txt
@@ -132,7 +132,7 @@ if (LLVM_ENABLE_SPHINX)
     # Generated files
     gen_rst_file_from_td(AttributeReference.rst -gen-attr-docs ../include/clang/Basic/Attr.td "${docs_targets}")
     gen_rst_file_from_td(DiagnosticsReference.rst -gen-diag-docs ../include/clang/Basic/Diagnostic.td "${docs_targets}")
-    gen_rst_file_from_td(ClangCommandLineReference.rst -gen-opt-docs ../include/clang/Options/ClangOptionDocs.td "${docs_targets}")
+    gen_rst_file_from_td(ClangCommandLineReference.rst -gen-opt-docs ../include/clang/Driver/ClangOptionDocs.td "${docs_targets}")
 
     # Another generated file from a different source
     set(docs_tools_dir ${CMAKE_CURRENT_SOURCE_DIR}/tools)
diff --git a/clang/docs/InternalsManual.rst b/clang/docs/InternalsManual.rst
index a849d05eb7ae9..eff46ab46e1ca 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/Options/Options.td``. The information making up an
+the driver options in ``clang/Driver/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/Options/Options.td``. This is done by instantiating the
+``clang/include/clang/Driver/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/Options/Options.inc"
+  #include "clang/Driver/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/Options/Options.inc"
+  #include "clang/Driver/Options.inc"
   #undef LANG_OPTION_WITH_MARSHALLING
 
     // ...
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index fa78e7abd4d67..6b396e7ba63f3 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -79,9 +79,6 @@ Potentially Breaking Changes
     void foo(void) {
       return ({ 1;; });
     }
-- Downstream projects that previously linked only against ``clangDriver`` may
-  now (also) need to link against the new ``clangOptions`` library, since
-  options-related code has been moved out of the Driver into a separate library.
 
 C/C++ Language Potentially Breaking Changes
 -------------------------------------------
diff --git a/clang/include/clang/CMakeLists.txt b/clang/include/clang/CMakeLists.txt
index 77a44e4c48de5..47ac70cd21690 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(Options)
+add_subdirectory(Driver)
 add_subdirectory(Parse)
 add_subdirectory(Sema)
 add_subdirectory(Serialization)
diff --git a/clang/include/clang/Options/CMakeLists.txt b/clang/include/clang/Driver/CMakeLists.txt
similarity index 100%
rename from clang/include/clang/Options/CMakeLists.txt
rename to clang/include/clang/Driver/CMakeLists.txt
diff --git a/clang/include/clang/Options/ClangOptionDocs.td b/clang/include/clang/Driver/ClangOptionDocs.td
similarity index 100%
rename from clang/include/clang/Options/ClangOptionDocs.td
rename to clang/include/clang/Driver/ClangOptionDocs.td
diff --git a/clang/include/clang/Driver/Driver.h b/clang/include/clang/Driver/Driver.h
index aa86bffb802a4..b9b187ada8add 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/Options/OptionUtils.h b/clang/include/clang/Driver/OptionUtils.h
similarity index 94%
rename from clang/include/clang/Options/OptionUtils.h
rename to clang/include/clang/Driver/OptionUtils.h
index 83c48bd7d6843..922f536bf33ea 100644
--- a/clang/include/clang/Options/OptionUtils.h
+++ b/clang/include/clang/Driver/OptionUtils.h
@@ -10,8 +10,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_CLANG_OPTIONS_OPTIONUTILS_H
-#define LLVM_CLANG_OPTIONS_OPTIONUTILS_H
+#ifndef LLVM_CLANG_DRIVER_OPTIONUTILS_H
+#define LLVM_CLANG_DRIVER_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_OPTIONS_OPTIONUTILS_H
+#endif // LLVM_CLANG_DRIVER_OPTIONUTILS_H
diff --git a/clang/include/clang/Options/Options.h b/clang/include/clang/Driver/Options.h
similarity index 83%
rename from clang/include/clang/Options/Options.h
rename to clang/include/clang/Driver/Options.h
index ac98699001965..0797410e9940e 100644
--- a/clang/include/clang/Options/Options.h
+++ b/clang/include/clang/Driver/Options.h
@@ -6,13 +6,14 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_CLANG_OPTIONS_OPTIONS_H
-#define LLVM_CLANG_OPTIONS_OPTIONS_H
+#ifndef LLVM_CLANG_DRIVER_OPTIONS_H
+#define LLVM_CLANG_DRIVER_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
@@ -41,15 +42,16 @@ 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/Options/Options.inc"
-  LastOption
+#include "clang/Driver/Options.inc"
+    LastOption
 #undef OPTION
-};
-} // namespace options
+  };
+}
 
 const llvm::opt::OptTable &getDriverOptTable();
-} // namespace clang
+}
+}
 
-#endif // LLVM_CLANG_OPTIONS_OPTIONS_H
+#endif
diff --git a/clang/include/clang/Options/Options.td b/clang/include/clang/Driver/Options.td
similarity index 100%
rename from clang/include/clang/Options/Options.td
rename to clang/include/clang/Driver/Options.td
diff --git a/clang/include/clang/Frontend/Utils.h b/clang/include/clang/Frontend/Utils.h
index ed2703c76f18d..49fd920d1ec43 100644
--- a/clang/include/clang/Frontend/Utils.h
+++ b/clang/include/clang/Frontend/Utils.h
@@ -15,8 +15,8 @@
 
 #include "clang/Basic/Diagnostic.h"
 #include "clang/Basic/LLVM.h"
+#include "clang/Driver/OptionUtils.h"
 #include "clang/Frontend/DependencyOutputOptions.h"
-#include "clang/Options/OptionUtils.h"
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/IntrusiveRefCntPtr.h"
 #include "llvm/ADT/StringMap.h"
diff --git a/clang/include/module.modulemap b/clang/include/module.modulemap
index a11c8683c601e..c5535262ae38c 100644
--- a/clang/include/module.modulemap
+++ b/clang/include/module.modulemap
@@ -146,7 +146,6 @@ module Clang_Lex {
   module * { export * }
 }
 
-module Clang_Options { requires cplusplus umbrella "clang/Options" module * { export * } }
 module Clang_Parse { requires cplusplus umbrella "clang/Parse" module * { export * } }
 module Clang_Rewrite { requires cplusplus umbrella "clang/Rewrite/Core" module * { export * } }
 module Clang_RewriteFrontend { requires cplusplus umbrella "clang/Rewrite/Frontend" module * { export * } }
diff --git a/clang/lib/CMakeLists.txt b/clang/lib/CMakeLists.txt
index e90b009da606a..4f2218b583e41 100644
--- a/clang/lib/CMakeLists.txt
+++ b/clang/lib/CMakeLists.txt
@@ -13,7 +13,6 @@ 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 8052659e9836b..7c4f70b966c48 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -19,10 +19,12 @@ 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
@@ -97,6 +99,5 @@ 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 f8ca2a3d09407..4e300316ae9ba 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 9fd64d4aac514..a0b82cec9a372 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"
 #includ...
[truncated]

@llvmbot
Copy link
Member

llvmbot commented Nov 10, 2025

@llvm/pr-subscribers-backend-x86

Author: Naveen Seth Hanig (naveen-seth)

Changes

Reverts llvm/llvm-project#163659 due to missing one reference clang/Driver/Options.h in clang/include/clang/Driver/Driver.h.

See #163659 (comment)


Patch is 188.19 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/167348.diff

118 Files Affected:

  • (modified) clang-tools-extra/clangd/CMakeLists.txt (-1)
  • (modified) clang-tools-extra/clangd/CompileCommands.cpp (+14-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/CMakeLists.txt (+1-1)
  • (modified) clang/docs/InternalsManual.rst (+4-4)
  • (modified) clang/docs/ReleaseNotes.rst (-3)
  • (modified) clang/include/clang/CMakeLists.txt (+1-1)
  • (renamed) clang/include/clang/Driver/CMakeLists.txt ()
  • (renamed) clang/include/clang/Driver/ClangOptionDocs.td ()
  • (modified) clang/include/clang/Driver/Driver.h (+1-1)
  • (renamed) clang/include/clang/Driver/OptionUtils.h (+3-3)
  • (renamed) clang/include/clang/Driver/Options.h (+11-9)
  • (renamed) clang/include/clang/Driver/Options.td ()
  • (modified) clang/include/clang/Frontend/Utils.h (+1-1)
  • (modified) clang/include/module.modulemap (-1)
  • (modified) clang/lib/CMakeLists.txt (-1)
  • (modified) clang/lib/Driver/CMakeLists.txt (+2-1)
  • (modified) clang/lib/Driver/Compilation.cpp (+1-1)
  • (modified) clang/lib/Driver/Driver.cpp (+1-1)
  • (renamed) clang/lib/Driver/DriverOptions.cpp (+10-9)
  • (renamed) clang/lib/Driver/OptionUtils.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-3)
  • (modified) clang/lib/Driver/ToolChains/AMDGPU.cpp (+12-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 (+3-2)
  • (modified) clang/lib/Driver/ToolChains/Arch/M68k.cpp (+8-8)
  • (modified) clang/lib/Driver/ToolChains/Arch/Mips.cpp (+3-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 (+5-5)
  • (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 (+7-6)
  • (modified) clang/lib/Driver/ToolChains/CommonArgs.cpp (+13-11)
  • (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 (+6-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)
  • (removed) clang/lib/Options/CMakeLists.txt (-18)
  • (modified) clang/lib/Tooling/CMakeLists.txt (-1)
  • (modified) clang/lib/Tooling/InterpolatingCompilationDatabase.cpp (+6-6)
  • (modified) clang/lib/Tooling/Tooling.cpp (+7-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 (+28-27)
  • (modified) clang/tools/driver/CMakeLists.txt (-1)
  • (modified) clang/tools/driver/cc1_main.cpp (+1-1)
  • (modified) clang/tools/driver/cc1as_main.cpp (+5-3)
  • (modified) clang/tools/driver/driver.cpp (+1-1)
  • (modified) clang/unittests/Driver/DXCModeTest.cpp (+2-2)
  • (modified) clang/www/OpenProjects.html (+1-1)
  • (modified) flang/docs/CMakeLists.txt (+1-1)
  • (modified) flang/docs/FlangDriver.md (+4-4)
  • (modified) flang/lib/Frontend/CMakeLists.txt (-1)
  • (modified) flang/lib/Frontend/CompilerInvocation.cpp (+291-256)
  • (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 --git a/clang-tools-extra/clangd/CMakeLists.txt b/clang-tools-extra/clangd/CMakeLists.txt
index d7ec853af862f..fb3f05329be21 100644
--- a/clang-tools-extra/clangd/CMakeLists.txt
+++ b/clang-tools-extra/clangd/CMakeLists.txt
@@ -165,7 +165,6 @@ 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 7990f2719e9a0..c1be93730129a 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 = getDriverOptTable();
+  auto &OptTable = clang::driver::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 ? options::CLOption
-                                     : options::ClangOption));
+      llvm::opt::Visibility(IsCLMode ? driver::options::CLOption
+                                     : driver::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(options::OPT_arch)) {
+  for (auto *Input : ArgList.filtered(driver::options::OPT_arch)) {
     ++ArchOptCount;
     for (auto I = 0U; I <= Input->getNumValues(); ++I)
       IndicesToDrop.push_back(Input->getIndex() + I);
@@ -262,12 +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(options::OPT_INPUT)) {
+  for (auto *Input : ArgList.filtered(driver::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(options::OPT__DASH_DASH)) {
+  if (auto *DashDash =
+          ArgList.getLastArgNoClaim(driver::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)
@@ -423,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(options::ClangOption))
+  if (Opt.hasVisibilityFlag(driver::options::ClangOption))
     Result |= DM_GCC;
-  if (Opt.hasVisibilityFlag(options::CC1Option))
+  if (Opt.hasVisibilityFlag(driver::options::CC1Option))
     Result |= DM_CC1;
-  if (Opt.hasVisibilityFlag(options::CLOption))
+  if (Opt.hasVisibilityFlag(driver::options::CLOption))
     Result |= DM_CL;
   return Result;
 }
@@ -441,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 = getDriverOptTable();
-    using DriverID = clang::options::ID;
+    auto &DriverTable = driver::getDriverOptTable();
+    using DriverID = clang::driver::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].
@@ -467,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/Options/Options.inc"
+#include "clang/Driver/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 a775b790a3147..eb5383c3ad44e 100644
--- a/clang-tools-extra/modularize/CMakeLists.txt
+++ b/clang-tools-extra/modularize/CMakeLists.txt
@@ -20,7 +20,6 @@ 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 d80d78c64c6e2..1345a6ef8f489 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::options;
+using namespace clang::driver::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 33966b44f719a..376ad0c7875bf 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::options;
+using namespace clang::driver::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 6978a6b2fe1b7..4dd84feac5df4 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 "clang/Options/Options.h"
+#include "CoverageChecker.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 da36582ee0234..1323adbc35269 100644
--- a/clang-tools-extra/pp-trace/CMakeLists.txt
+++ b/clang-tools-extra/pp-trace/CMakeLists.txt
@@ -14,7 +14,6 @@ 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 ba5a06a26830d..0b078c49a55b7 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/CMakeLists.txt b/clang/docs/CMakeLists.txt
index 9469a832adb62..1f06c040c96cb 100644
--- a/clang/docs/CMakeLists.txt
+++ b/clang/docs/CMakeLists.txt
@@ -132,7 +132,7 @@ if (LLVM_ENABLE_SPHINX)
     # Generated files
     gen_rst_file_from_td(AttributeReference.rst -gen-attr-docs ../include/clang/Basic/Attr.td "${docs_targets}")
     gen_rst_file_from_td(DiagnosticsReference.rst -gen-diag-docs ../include/clang/Basic/Diagnostic.td "${docs_targets}")
-    gen_rst_file_from_td(ClangCommandLineReference.rst -gen-opt-docs ../include/clang/Options/ClangOptionDocs.td "${docs_targets}")
+    gen_rst_file_from_td(ClangCommandLineReference.rst -gen-opt-docs ../include/clang/Driver/ClangOptionDocs.td "${docs_targets}")
 
     # Another generated file from a different source
     set(docs_tools_dir ${CMAKE_CURRENT_SOURCE_DIR}/tools)
diff --git a/clang/docs/InternalsManual.rst b/clang/docs/InternalsManual.rst
index a849d05eb7ae9..eff46ab46e1ca 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/Options/Options.td``. The information making up an
+the driver options in ``clang/Driver/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/Options/Options.td``. This is done by instantiating the
+``clang/include/clang/Driver/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/Options/Options.inc"
+  #include "clang/Driver/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/Options/Options.inc"
+  #include "clang/Driver/Options.inc"
   #undef LANG_OPTION_WITH_MARSHALLING
 
     // ...
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index fa78e7abd4d67..6b396e7ba63f3 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -79,9 +79,6 @@ Potentially Breaking Changes
     void foo(void) {
       return ({ 1;; });
     }
-- Downstream projects that previously linked only against ``clangDriver`` may
-  now (also) need to link against the new ``clangOptions`` library, since
-  options-related code has been moved out of the Driver into a separate library.
 
 C/C++ Language Potentially Breaking Changes
 -------------------------------------------
diff --git a/clang/include/clang/CMakeLists.txt b/clang/include/clang/CMakeLists.txt
index 77a44e4c48de5..47ac70cd21690 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(Options)
+add_subdirectory(Driver)
 add_subdirectory(Parse)
 add_subdirectory(Sema)
 add_subdirectory(Serialization)
diff --git a/clang/include/clang/Options/CMakeLists.txt b/clang/include/clang/Driver/CMakeLists.txt
similarity index 100%
rename from clang/include/clang/Options/CMakeLists.txt
rename to clang/include/clang/Driver/CMakeLists.txt
diff --git a/clang/include/clang/Options/ClangOptionDocs.td b/clang/include/clang/Driver/ClangOptionDocs.td
similarity index 100%
rename from clang/include/clang/Options/ClangOptionDocs.td
rename to clang/include/clang/Driver/ClangOptionDocs.td
diff --git a/clang/include/clang/Driver/Driver.h b/clang/include/clang/Driver/Driver.h
index aa86bffb802a4..b9b187ada8add 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/Options/OptionUtils.h b/clang/include/clang/Driver/OptionUtils.h
similarity index 94%
rename from clang/include/clang/Options/OptionUtils.h
rename to clang/include/clang/Driver/OptionUtils.h
index 83c48bd7d6843..922f536bf33ea 100644
--- a/clang/include/clang/Options/OptionUtils.h
+++ b/clang/include/clang/Driver/OptionUtils.h
@@ -10,8 +10,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_CLANG_OPTIONS_OPTIONUTILS_H
-#define LLVM_CLANG_OPTIONS_OPTIONUTILS_H
+#ifndef LLVM_CLANG_DRIVER_OPTIONUTILS_H
+#define LLVM_CLANG_DRIVER_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_OPTIONS_OPTIONUTILS_H
+#endif // LLVM_CLANG_DRIVER_OPTIONUTILS_H
diff --git a/clang/include/clang/Options/Options.h b/clang/include/clang/Driver/Options.h
similarity index 83%
rename from clang/include/clang/Options/Options.h
rename to clang/include/clang/Driver/Options.h
index ac98699001965..0797410e9940e 100644
--- a/clang/include/clang/Options/Options.h
+++ b/clang/include/clang/Driver/Options.h
@@ -6,13 +6,14 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_CLANG_OPTIONS_OPTIONS_H
-#define LLVM_CLANG_OPTIONS_OPTIONS_H
+#ifndef LLVM_CLANG_DRIVER_OPTIONS_H
+#define LLVM_CLANG_DRIVER_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
@@ -41,15 +42,16 @@ 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/Options/Options.inc"
-  LastOption
+#include "clang/Driver/Options.inc"
+    LastOption
 #undef OPTION
-};
-} // namespace options
+  };
+}
 
 const llvm::opt::OptTable &getDriverOptTable();
-} // namespace clang
+}
+}
 
-#endif // LLVM_CLANG_OPTIONS_OPTIONS_H
+#endif
diff --git a/clang/include/clang/Options/Options.td b/clang/include/clang/Driver/Options.td
similarity index 100%
rename from clang/include/clang/Options/Options.td
rename to clang/include/clang/Driver/Options.td
diff --git a/clang/include/clang/Frontend/Utils.h b/clang/include/clang/Frontend/Utils.h
index ed2703c76f18d..49fd920d1ec43 100644
--- a/clang/include/clang/Frontend/Utils.h
+++ b/clang/include/clang/Frontend/Utils.h
@@ -15,8 +15,8 @@
 
 #include "clang/Basic/Diagnostic.h"
 #include "clang/Basic/LLVM.h"
+#include "clang/Driver/OptionUtils.h"
 #include "clang/Frontend/DependencyOutputOptions.h"
-#include "clang/Options/OptionUtils.h"
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/IntrusiveRefCntPtr.h"
 #include "llvm/ADT/StringMap.h"
diff --git a/clang/include/module.modulemap b/clang/include/module.modulemap
index a11c8683c601e..c5535262ae38c 100644
--- a/clang/include/module.modulemap
+++ b/clang/include/module.modulemap
@@ -146,7 +146,6 @@ module Clang_Lex {
   module * { export * }
 }
 
-module Clang_Options { requires cplusplus umbrella "clang/Options" module * { export * } }
 module Clang_Parse { requires cplusplus umbrella "clang/Parse" module * { export * } }
 module Clang_Rewrite { requires cplusplus umbrella "clang/Rewrite/Core" module * { export * } }
 module Clang_RewriteFrontend { requires cplusplus umbrella "clang/Rewrite/Frontend" module * { export * } }
diff --git a/clang/lib/CMakeLists.txt b/clang/lib/CMakeLists.txt
index e90b009da606a..4f2218b583e41 100644
--- a/clang/lib/CMakeLists.txt
+++ b/clang/lib/CMakeLists.txt
@@ -13,7 +13,6 @@ 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 8052659e9836b..7c4f70b966c48 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -19,10 +19,12 @@ 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
@@ -97,6 +99,5 @@ 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 f8ca2a3d09407..4e300316ae9ba 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 9fd64d4aac514..a0b82cec9a372 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"
 #includ...
[truncated]

@naveen-seth naveen-seth merged commit 6bad2d1 into main Nov 10, 2025
32 of 37 checks passed
@naveen-seth naveen-seth deleted the revert-163659-clangOptions branch November 10, 2025 17:27
ckoparkar added a commit to ckoparkar/llvm-project that referenced this pull request Nov 10, 2025
* main: (63 commits)
  [libc++] Inline vector::__append into resize (llvm#162086)
  [Flang][OpenMP] Move char box bounds generation for Maps to DirectiveCommons.h (llvm#165918)
  RuntimeLibcalls: Add entries for vector sincospi functions (llvm#166981)
  [X86] _mm_addsub_pd is not valid for constexpr (llvm#167363)
  [CIR] Re-land: Recognize constant aggregate initialization of auto vars (llvm#167033)
  [gn build] Port d2521f1
  [gn build] Port caed089
  [gn build] Port 315d705
  [gn build] Port 2345b7d
  [PowerPC] convert memmove to milicode call  .___memmove64[PR]  in 64-bit mode (llvm#167334)
  [HLSL] Add internal linkage attribute to resources (llvm#166844)
  AMDGPU: Update test after e95f6fa
  [bazel] Port llvm#166980: TLI/VectorLibrary refactor (llvm#167354)
  [libc++] Split macros related to hardening into their own header (llvm#167069)
  [libc++][NFC] Remove unused imports from generate_feature_test_macro_components.py (llvm#159591)
  [CIR][NFC] Add test for Complex imag with GUN extension (llvm#167215)
  [BOLT][AArch64] Add more heuristics on epilogue determination (llvm#167077)
  RegisterCoalescer: Enable terminal rule by default for AMDGPU (llvm#161621)
  Revert "[clang] Refactor option-related code from clangDriver into new clangOptions library" (llvm#167348)
  [libc++][docs] Update to refer to P3355R2 (llvm#167267)
  ...
naveen-seth added a commit to naveen-seth/llvm-project that referenced this pull request Nov 10, 2025
…w clangOptions library" (llvm#167348)

This relands llvm#167348.

The original PR was reverted due to a reported build failure, which
was  later diagnosed as a local issue in the developer’s checkout or
build state. See discussion here:
llvm#163659 (comment)

No additional changes have been made in this reland.
naveen-seth added a commit that referenced this pull request Nov 10, 2025
…w clangOptions library" (#167374)

This relands #167348.

The original PR was reverted due to a reported build failure, which was
later diagnosed as a local issue in the developer’s checkout or build
state. See discussion here:
#163659 (comment)

No additional changes have been made in this reland.
macurtis-amd pushed a commit to ROCm/llvm-project that referenced this pull request Nov 11, 2025
…w clangOptions library" (llvm#167374)

This relands llvm#167348.

The original PR was reverted due to a reported build failure, which was
later diagnosed as a local issue in the developer’s checkout or build
state. See discussion here:
llvm#163659 (comment)

No additional changes have been made in this reland.

(cherry picked from commit f63d33d)
macurtis-amd pushed a commit to ROCm/llvm-project that referenced this pull request Nov 11, 2025
…w clangOptions library" (llvm#167374)

This relands llvm#167348.

The original PR was reverted due to a reported build failure, which was
later diagnosed as a local issue in the developer’s checkout or build
state. See discussion here:
llvm#163659 (comment)

No additional changes have been made in this reland.

(cherry picked from commit f63d33d)
ronlieb pushed a commit to ROCm/llvm-project that referenced this pull request Nov 11, 2025
…w clangOptions library" (llvm#167374)

This relands llvm#167348.

The original PR was reverted due to a reported build failure, which was
later diagnosed as a local issue in the developer’s checkout or build
state. See discussion here:
llvm#163659 (comment)

No additional changes have been made in this reland.

(cherry picked from commit f63d33d)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend:AArch64 backend:AMDGPU backend:ARM backend:CSKY backend:Hexagon backend:loongarch backend:MIPS backend:PowerPC backend:RISC-V backend:Sparc backend:SPIR-V backend:SystemZ backend:X86 bazel "Peripheral" support tier build system: utils/bazel clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' clang:frontend Language frontend issues, e.g. anything involving "Sema" clang:openmp OpenMP related changes to Clang clang Clang issues not falling into any other category clang-tools-extra clangd flang:driver flang Flang issues not falling into any other category lldb llvm:mc Machine (object) code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants