[Lldb-commits] [clang] [clang-tools-extra] [flang] [lldb] [llvm] Revert "[clang] Refactor option-related code from clangDriver into new clangOptions library" (PR #167348)
Naveen Seth Hanig via lldb-commits
lldb-commits at lists.llvm.org
Mon Nov 10 09:23:58 PST 2025
https://github.com/naveen-seth created https://github.com/llvm/llvm-project/pull/167348
Reverts llvm/llvm-project#163659
This reverts #163659 due to missing one reference clang/Driver/Options.h in clang/include/clang/Driver/Driver.h.
See https://github.com/llvm/llvm-project/pull/163659#issuecomment-3512979187
>From 21daa8f1a241964dbb102f3abeb47baf81257bcd Mon Sep 17 00:00:00 2001
From: Naveen Seth Hanig <naveen.hanig at outlook.com>
Date: Mon, 10 Nov 2025 18:20:47 +0100
Subject: [PATCH] =?UTF-8?q?Revert=20"[clang]=20Refactor=20option-related?=
=?UTF-8?q?=20code=20from=20clangDriver=20into=20new=20clangO=E2=80=A6"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit 9a783b63e647d95e001f55464a9bc7fa0c3929c3.
---
clang-tools-extra/clangd/CMakeLists.txt | 1 -
clang-tools-extra/clangd/CompileCommands.cpp | 27 +-
clang-tools-extra/modularize/CMakeLists.txt | 1 -
.../modularize/CoverageChecker.cpp | 6 +-
clang-tools-extra/modularize/Modularize.cpp | 4 +-
.../modularize/ModularizeUtilities.cpp | 6 +-
clang-tools-extra/pp-trace/CMakeLists.txt | 1 -
clang-tools-extra/pp-trace/PPTrace.cpp | 2 +-
clang/docs/CMakeLists.txt | 2 +-
clang/docs/InternalsManual.rst | 8 +-
clang/docs/ReleaseNotes.rst | 3 -
clang/include/clang/CMakeLists.txt | 2 +-
.../clang/{Options => Driver}/CMakeLists.txt | 0
.../{Options => Driver}/ClangOptionDocs.td | 0
clang/include/clang/Driver/Driver.h | 2 +-
.../clang/{Options => Driver}/OptionUtils.h | 6 +-
.../clang/{Options => Driver}/Options.h | 20 +-
.../clang/{Options => Driver}/Options.td | 0
clang/include/clang/Frontend/Utils.h | 2 +-
clang/include/module.modulemap | 1 -
clang/lib/CMakeLists.txt | 1 -
clang/lib/Driver/CMakeLists.txt | 3 +-
clang/lib/Driver/Compilation.cpp | 2 +-
clang/lib/Driver/Driver.cpp | 2 +-
.../lib/{Options => Driver}/DriverOptions.cpp | 19 +-
clang/lib/{Options => Driver}/OptionUtils.cpp | 2 +-
clang/lib/Driver/SanitizerArgs.cpp | 2 +-
clang/lib/Driver/ToolChain.cpp | 6 +-
clang/lib/Driver/ToolChains/AIX.cpp | 6 +-
clang/lib/Driver/ToolChains/AMDGPU.cpp | 21 +-
clang/lib/Driver/ToolChains/AMDGPU.h | 2 +-
clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp | 2 +-
clang/lib/Driver/ToolChains/AVR.cpp | 2 +-
clang/lib/Driver/ToolChains/Arch/AArch64.cpp | 4 +-
clang/lib/Driver/ToolChains/Arch/ARM.cpp | 4 +-
clang/lib/Driver/ToolChains/Arch/CSKY.cpp | 6 +-
.../lib/Driver/ToolChains/Arch/LoongArch.cpp | 5 +-
clang/lib/Driver/ToolChains/Arch/M68k.cpp | 16 +-
clang/lib/Driver/ToolChains/Arch/Mips.cpp | 5 +-
clang/lib/Driver/ToolChains/Arch/PPC.cpp | 2 +-
clang/lib/Driver/ToolChains/Arch/RISCV.cpp | 2 +-
clang/lib/Driver/ToolChains/Arch/Sparc.cpp | 4 +-
clang/lib/Driver/ToolChains/Arch/SystemZ.cpp | 10 +-
clang/lib/Driver/ToolChains/Arch/VE.cpp | 2 +-
clang/lib/Driver/ToolChains/Arch/X86.cpp | 18 +-
clang/lib/Driver/ToolChains/BareMetal.cpp | 4 +-
clang/lib/Driver/ToolChains/CSKYToolChain.cpp | 2 +-
clang/lib/Driver/ToolChains/Clang.cpp | 13 +-
clang/lib/Driver/ToolChains/CommonArgs.cpp | 24 +-
clang/lib/Driver/ToolChains/CrossWindows.cpp | 2 +-
clang/lib/Driver/ToolChains/Cuda.cpp | 8 +-
clang/lib/Driver/ToolChains/Cygwin.cpp | 4 +-
clang/lib/Driver/ToolChains/Darwin.cpp | 6 +-
clang/lib/Driver/ToolChains/DragonFly.cpp | 4 +-
clang/lib/Driver/ToolChains/Flang.cpp | 4 +-
clang/lib/Driver/ToolChains/FreeBSD.cpp | 4 +-
clang/lib/Driver/ToolChains/Fuchsia.cpp | 4 +-
clang/lib/Driver/ToolChains/Gnu.cpp | 10 +-
clang/lib/Driver/ToolChains/HIPAMD.cpp | 2 +-
clang/lib/Driver/ToolChains/HIPSPV.cpp | 4 +-
clang/lib/Driver/ToolChains/HIPUtility.cpp | 2 +-
clang/lib/Driver/ToolChains/Hexagon.cpp | 2 +-
clang/lib/Driver/ToolChains/Hurd.cpp | 4 +-
clang/lib/Driver/ToolChains/Linux.cpp | 4 +-
clang/lib/Driver/ToolChains/MSP430.cpp | 2 +-
clang/lib/Driver/ToolChains/MSVC.cpp | 2 +-
clang/lib/Driver/ToolChains/Managarm.cpp | 4 +-
clang/lib/Driver/ToolChains/MinGW.cpp | 2 +-
clang/lib/Driver/ToolChains/MipsLinux.cpp | 4 +-
clang/lib/Driver/ToolChains/NetBSD.cpp | 4 +-
clang/lib/Driver/ToolChains/OHOS.cpp | 4 +-
clang/lib/Driver/ToolChains/OpenBSD.cpp | 4 +-
clang/lib/Driver/ToolChains/PPCFreeBSD.cpp | 4 +-
clang/lib/Driver/ToolChains/PPCLinux.cpp | 4 +-
clang/lib/Driver/ToolChains/PS4CPU.cpp | 2 +-
clang/lib/Driver/ToolChains/SPIRV.cpp | 2 +-
clang/lib/Driver/ToolChains/SYCL.cpp | 2 +-
clang/lib/Driver/ToolChains/Solaris.cpp | 4 +-
clang/lib/Driver/ToolChains/UEFI.cpp | 2 +-
clang/lib/Driver/ToolChains/VEToolchain.cpp | 6 +-
clang/lib/Driver/ToolChains/WebAssembly.cpp | 6 +-
clang/lib/Driver/ToolChains/XCore.cpp | 6 +-
clang/lib/Driver/ToolChains/ZOS.cpp | 2 +-
clang/lib/Driver/XRayArgs.cpp | 2 +-
clang/lib/Frontend/CMakeLists.txt | 1 -
clang/lib/Frontend/CompilerInvocation.cpp | 54 +-
.../CreateInvocationFromCommandLine.cpp | 6 +-
clang/lib/FrontendTool/CMakeLists.txt | 1 -
.../ExecuteCompilerInvocation.cpp | 6 +-
clang/lib/Interpreter/Interpreter.cpp | 4 +-
clang/lib/Interpreter/InterpreterUtils.h | 2 +-
clang/lib/Options/CMakeLists.txt | 18 -
clang/lib/Tooling/CMakeLists.txt | 1 -
.../InterpolatingCompilationDatabase.cpp | 12 +-
clang/lib/Tooling/Tooling.cpp | 12 +-
clang/tools/clang-check/CMakeLists.txt | 1 -
clang/tools/clang-check/ClangCheck.cpp | 4 +-
clang/tools/clang-installapi/CMakeLists.txt | 1 -
.../clang-installapi/ClangInstallAPI.cpp | 4 +-
clang/tools/clang-installapi/Options.cpp | 55 +-
clang/tools/driver/CMakeLists.txt | 1 -
clang/tools/driver/cc1_main.cpp | 2 +-
clang/tools/driver/cc1as_main.cpp | 8 +-
clang/tools/driver/driver.cpp | 2 +-
clang/unittests/Driver/DXCModeTest.cpp | 4 +-
clang/www/OpenProjects.html | 2 +-
flang/docs/CMakeLists.txt | 2 +-
flang/docs/FlangDriver.md | 8 +-
flang/lib/Frontend/CMakeLists.txt | 1 -
flang/lib/Frontend/CompilerInvocation.cpp | 547 ++++++++++--------
flang/lib/FrontendTool/CMakeLists.txt | 1 -
.../ExecuteCompilerInvocation.cpp | 6 +-
flang/tools/flang-driver/CMakeLists.txt | 1 -
flang/tools/flang-driver/driver.cpp | 4 +-
.../Platform/MacOSX/PlatformDarwin.cpp | 4 +-
llvm/include/llvm/MC/MCAsmInfo.h | 2 +-
llvm/include/llvm/Option/Arg.h | 2 +-
.../llvm-project-overlay/clang/BUILD.bazel | 4 +-
118 files changed, 610 insertions(+), 590 deletions(-)
rename clang/include/clang/{Options => Driver}/CMakeLists.txt (100%)
rename clang/include/clang/{Options => Driver}/ClangOptionDocs.td (100%)
rename clang/include/clang/{Options => Driver}/OptionUtils.h (94%)
rename clang/include/clang/{Options => Driver}/Options.h (83%)
rename clang/include/clang/{Options => Driver}/Options.td (100%)
rename clang/lib/{Options => Driver}/DriverOptions.cpp (76%)
rename clang/lib/{Options => Driver}/OptionUtils.cpp (97%)
delete mode 100644 clang/lib/Options/CMakeLists.txt
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"
#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/Options/DriverOptions.cpp b/clang/lib/Driver/DriverOptions.cpp
similarity index 76%
rename from clang/lib/Options/DriverOptions.cpp
rename to clang/lib/Driver/DriverOptions.cpp
index d91e9291fb2f6..cde1f8989935b 100644
--- a/clang/lib/Options/DriverOptions.cpp
+++ b/clang/lib/Driver/DriverOptions.cpp
@@ -6,32 +6,33 @@
//
//===----------------------------------------------------------------------===//
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/OptTable.h"
#include <cassert>
-using namespace clang::options;
+using namespace clang::driver;
+using namespace clang::driver::options;
using namespace llvm::opt;
#define OPTTABLE_STR_TABLE_CODE
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef OPTTABLE_STR_TABLE_CODE
#define OPTTABLE_VALUES_CODE
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef OPTTABLE_VALUES_CODE
#define OPTTABLE_PREFIXES_TABLE_CODE
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef OPTTABLE_PREFIXES_TABLE_CODE
#define OPTTABLE_PREFIXES_UNION_CODE
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef OPTTABLE_PREFIXES_UNION_CODE
static constexpr OptTable::Info InfoTable[] = {
#define OPTION(...) LLVM_CONSTRUCT_OPT_INFO(__VA_ARGS__),
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef OPTION
};
@@ -43,9 +44,9 @@ class DriverOptTable : public PrecomputedOptTable {
: PrecomputedOptTable(OptionStrTable, OptionPrefixesTable, InfoTable,
OptionPrefixesUnion) {}
};
-} // anonymous namespace
+}
-const llvm::opt::OptTable &clang::getDriverOptTable() {
+const llvm::opt::OptTable &clang::driver::getDriverOptTable() {
static DriverOptTable Table;
return Table;
}
diff --git a/clang/lib/Options/OptionUtils.cpp b/clang/lib/Driver/OptionUtils.cpp
similarity index 97%
rename from clang/lib/Options/OptionUtils.cpp
rename to clang/lib/Driver/OptionUtils.cpp
index fcafd3c83c6b3..1f36ffc03cab3 100644
--- a/clang/lib/Options/OptionUtils.cpp
+++ b/clang/lib/Driver/OptionUtils.cpp
@@ -6,9 +6,9 @@
//
//===----------------------------------------------------------------------===//
-#include "clang/Options/OptionUtils.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/DiagnosticDriver.h"
+#include "clang/Driver/OptionUtils.h"
#include "llvm/Option/ArgList.h"
using namespace clang;
diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp
index 420c4cddbc8dd..5dd48f53b9069 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 5ff7d83946137..7f70f1c444eb9 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::options;
+ using namespace clang::driver::options;
std::vector<std::string> Result;
const llvm::Triple Triple(ComputeEffectiveClangTriple(Args));
@@ -1805,7 +1805,7 @@ void ToolChain::TranslateXarchArgs(
unsigned Index = BaseArgs.MakeIndex(A->getValue(ValuePos));
unsigned Prev = Index;
std::unique_ptr<llvm::opt::Arg> XarchArg(Opts.ParseOneArg(
- Args, Index, llvm::opt::Visibility(options::ClangOption)));
+ Args, Index, llvm::opt::Visibility(clang::driver::options::ClangOption)));
// If the argument parsing failed or more than one argument was
// consumed, the -Xarch_ argument's parameter tried to consume
diff --git a/clang/lib/Driver/ToolChains/AIX.cpp b/clang/lib/Driver/ToolChains/AIX.cpp
index a8acf9cfc44c9..066b59305fe3f 100644
--- a/clang/lib/Driver/ToolChains/AIX.cpp
+++ b/clang/lib/Driver/ToolChains/AIX.cpp
@@ -9,8 +9,8 @@
#include "AIX.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Option/ArgList.h"
#include "llvm/ProfileData/InstrProf.h"
@@ -19,7 +19,6 @@
#include <set>
using AIX = clang::driver::toolchains::AIX;
-using namespace clang;
using namespace clang::driver;
using namespace clang::driver::tools;
using namespace clang::driver::toolchains;
@@ -168,7 +167,8 @@ void aix::Linker::ConstructJob(Compilation &C, const JobAction &JA,
Args.hasArg(options::OPT_coverage))
CmdArgs.push_back("-bdbg:namedsects:ss");
- if (Arg *A = Args.getLastArg(options::OPT_mxcoff_build_id_EQ)) {
+ if (Arg *A =
+ Args.getLastArg(clang::driver::options::OPT_mxcoff_build_id_EQ)) {
StringRef BuildId = A->getValue();
if (BuildId[0] != '0' || BuildId[1] != 'x' ||
BuildId.find_if_not(llvm::isHexDigit, 2) != StringRef::npos)
diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp
index 9dc2c6ce39ae4..1a243fef9532d 100644
--- a/clang/lib/Driver/ToolChains/AMDGPU.cpp
+++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp
@@ -12,8 +12,8 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/InputInfo.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/Error.h"
@@ -323,24 +323,27 @@ RocmInstallationDetector::RocmInstallationDetector(
const llvm::opt::ArgList &Args, bool DetectHIPRuntime, bool DetectDeviceLib)
: D(D) {
Verbose = Args.hasArg(options::OPT_v);
- RocmPathArg = Args.getLastArgValue(options::OPT_rocm_path_EQ);
- PrintROCmSearchDirs = Args.hasArg(options::OPT_print_rocm_search_dirs);
+ RocmPathArg = Args.getLastArgValue(clang::driver::options::OPT_rocm_path_EQ);
+ PrintROCmSearchDirs =
+ Args.hasArg(clang::driver::options::OPT_print_rocm_search_dirs);
RocmDeviceLibPathArg =
- Args.getAllArgValues(options::OPT_rocm_device_lib_path_EQ);
- HIPPathArg = Args.getLastArgValue(options::OPT_hip_path_EQ);
- HIPStdParPathArg = Args.getLastArgValue(options::OPT_hipstdpar_path_EQ);
+ Args.getAllArgValues(clang::driver::options::OPT_rocm_device_lib_path_EQ);
+ HIPPathArg = Args.getLastArgValue(clang::driver::options::OPT_hip_path_EQ);
+ HIPStdParPathArg =
+ Args.getLastArgValue(clang::driver::options::OPT_hipstdpar_path_EQ);
HasHIPStdParLibrary =
!HIPStdParPathArg.empty() && D.getVFS().exists(HIPStdParPathArg +
"/hipstdpar_lib.hpp");
HIPRocThrustPathArg =
- Args.getLastArgValue(options::OPT_hipstdpar_thrust_path_EQ);
+ Args.getLastArgValue(clang::driver::options::OPT_hipstdpar_thrust_path_EQ);
HasRocThrustLibrary = !HIPRocThrustPathArg.empty() &&
D.getVFS().exists(HIPRocThrustPathArg + "/thrust");
- HIPRocPrimPathArg = Args.getLastArgValue(options::OPT_hipstdpar_prim_path_EQ);
+ HIPRocPrimPathArg =
+ Args.getLastArgValue(clang::driver::options::OPT_hipstdpar_prim_path_EQ);
HasRocPrimLibrary = !HIPRocPrimPathArg.empty() &&
D.getVFS().exists(HIPRocPrimPathArg + "/rocprim");
- if (auto *A = Args.getLastArg(options::OPT_hip_version_EQ)) {
+ if (auto *A = Args.getLastArg(clang::driver::options::OPT_hip_version_EQ)) {
HIPVersionArg = A->getValue();
unsigned Major = ~0U;
unsigned Minor = ~0U;
diff --git a/clang/lib/Driver/ToolChains/AMDGPU.h b/clang/lib/Driver/ToolChains/AMDGPU.h
index 7b999c311154f..e90a5736911e4 100644
--- a/clang/lib/Driver/ToolChains/AMDGPU.h
+++ b/clang/lib/Driver/ToolChains/AMDGPU.h
@@ -11,9 +11,9 @@
#include "Gnu.h"
#include "clang/Basic/TargetID.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/Tool.h"
#include "clang/Driver/ToolChain.h"
-#include "clang/Options/Options.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/TargetParser/TargetParser.h"
diff --git a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
index e14bc574d139a..2b41d54a9eb73 100644
--- a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
+++ b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
@@ -10,8 +10,8 @@
#include "AMDGPU.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/Tool.h"
-#include "clang/Options/Options.h"
#include "llvm/ADT/STLExtras.h"
using namespace clang::driver;
diff --git a/clang/lib/Driver/ToolChains/AVR.cpp b/clang/lib/Driver/ToolChains/AVR.cpp
index 588255dc5a0cd..731076d9754a9 100644
--- a/clang/lib/Driver/ToolChains/AVR.cpp
+++ b/clang/lib/Driver/ToolChains/AVR.cpp
@@ -10,7 +10,7 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/InputInfo.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
diff --git a/clang/lib/Driver/ToolChains/Arch/AArch64.cpp b/clang/lib/Driver/ToolChains/Arch/AArch64.cpp
index d6fb2a57539ed..e8d5e38a9064f 100644
--- a/clang/lib/Driver/ToolChains/Arch/AArch64.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/AArch64.cpp
@@ -9,7 +9,7 @@
#include "AArch64.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/TargetParser/AArch64TargetParser.h"
#include "llvm/TargetParser/Host.h"
@@ -222,7 +222,7 @@ void aarch64::getAArch64TargetFeatures(const Driver &D,
// Default to 'A' profile if the architecture is not specified.
success = getAArch64ArchFeaturesFromMarch(D, "armv8-a", Args, Extensions);
- if (success && (A = Args.getLastArg(options::OPT_mtune_EQ)))
+ if (success && (A = Args.getLastArg(clang::driver::options::OPT_mtune_EQ)))
success =
getAArch64MicroArchFeaturesFromMtune(D, A->getValue(), Args, Features);
else if (success && (A = Args.getLastArg(options::OPT_mcpu_EQ)))
diff --git a/clang/lib/Driver/ToolChains/Arch/ARM.cpp b/clang/lib/Driver/ToolChains/Arch/ARM.cpp
index 55eb2dcf7ddf4..61beb0455147d 100644
--- a/clang/lib/Driver/ToolChains/Arch/ARM.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/ARM.cpp
@@ -8,7 +8,7 @@
#include "ARM.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Option/ArgList.h"
#include "llvm/TargetParser/ARMTargetParser.h"
@@ -74,7 +74,7 @@ bool arm::isARMEABIBareMetal(const llvm::Triple &Triple) {
// Get Arch/CPU from args.
void arm::getARMArchCPUFromArgs(const ArgList &Args, llvm::StringRef &Arch,
llvm::StringRef &CPU, bool FromAs) {
- if (const Arg *A = Args.getLastArg(options::OPT_mcpu_EQ))
+ if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mcpu_EQ))
CPU = A->getValue();
if (const Arg *A = Args.getLastArg(options::OPT_march_EQ))
Arch = A->getValue();
diff --git a/clang/lib/Driver/ToolChains/Arch/CSKY.cpp b/clang/lib/Driver/ToolChains/Arch/CSKY.cpp
index 65f6534e4d038..2fd2c72147f5b 100644
--- a/clang/lib/Driver/ToolChains/Arch/CSKY.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/CSKY.cpp
@@ -8,7 +8,7 @@
#include "CSKY.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Option/ArgList.h"
#include "llvm/TargetParser/CSKYTargetParser.h"
@@ -33,7 +33,7 @@ csky::getCSKYArchName(const Driver &D, const ArgList &Args,
return std::optional<llvm::StringRef>(A->getValue());
}
- if (const Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) {
+ if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mcpu_EQ)) {
llvm::CSKY::ArchKind ArchKind = llvm::CSKY::parseCPUArch(A->getValue());
if (ArchKind == llvm::CSKY::ArchKind::INVALID) {
D.Diag(clang::diag::err_drv_clang_unsupported) << A->getAsString(Args);
@@ -126,7 +126,7 @@ void csky::getCSKYTargetFeatures(const Driver &D, const llvm::Triple &Triple,
archName = A->getValue();
}
- if (const Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) {
+ if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mcpu_EQ)) {
llvm::CSKY::ArchKind Kind = llvm::CSKY::parseCPUArch(A->getValue());
if (Kind == llvm::CSKY::ArchKind::INVALID) {
D.Diag(clang::diag::err_drv_clang_unsupported) << A->getAsString(Args);
diff --git a/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp b/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
index da084bdabaee3..156ea03045569 100644
--- a/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
@@ -11,7 +11,7 @@
#include "clang/Basic/DiagnosticDriver.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/TargetParser/Host.h"
#include "llvm/TargetParser/LoongArchTargetParser.h"
@@ -130,7 +130,8 @@ void loongarch::getLoongArchTargetFeatures(const Driver &D,
const ArgList &Args,
std::vector<StringRef> &Features) {
// Enable the `lsx` feature on 64-bit LoongArch by default.
- if (Triple.isLoongArch64() && (!Args.hasArgNoClaim(options::OPT_march_EQ)))
+ if (Triple.isLoongArch64() &&
+ (!Args.hasArgNoClaim(clang::driver::options::OPT_march_EQ)))
Features.push_back("+lsx");
// -mrelax is default, unless -mno-relax is specified.
diff --git a/clang/lib/Driver/ToolChains/Arch/M68k.cpp b/clang/lib/Driver/ToolChains/Arch/M68k.cpp
index a620597f10475..708ec84a37cfb 100644
--- a/clang/lib/Driver/ToolChains/Arch/M68k.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/M68k.cpp
@@ -8,7 +8,7 @@
#include "M68k.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/Regex.h"
@@ -21,7 +21,7 @@ using namespace llvm::opt;
/// getM68kTargetCPU - Get the (LLVM) name of the 68000 cpu we are targeting.
std::string m68k::getM68kTargetCPU(const ArgList &Args) {
- if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) {
+ if (Arg *A = Args.getLastArg(clang::driver::options::OPT_mcpu_EQ)) {
// The canonical CPU name is captalize. However, we allow
// starting with lower case or numbers only
StringRef CPUName = A->getValue();
@@ -45,17 +45,17 @@ std::string m68k::getM68kTargetCPU(const ArgList &Args) {
.Default(CPUName.str());
}
// FIXME: Throw error when multiple sub-architecture flag exist
- if (Args.hasArg(options::OPT_m68000))
+ if (Args.hasArg(clang::driver::options::OPT_m68000))
return "M68000";
- if (Args.hasArg(options::OPT_m68010))
+ if (Args.hasArg(clang::driver::options::OPT_m68010))
return "M68010";
- if (Args.hasArg(options::OPT_m68020))
+ if (Args.hasArg(clang::driver::options::OPT_m68020))
return "M68020";
- if (Args.hasArg(options::OPT_m68030))
+ if (Args.hasArg(clang::driver::options::OPT_m68030))
return "M68030";
- if (Args.hasArg(options::OPT_m68040))
+ if (Args.hasArg(clang::driver::options::OPT_m68040))
return "M68040";
- if (Args.hasArg(options::OPT_m68060))
+ if (Args.hasArg(clang::driver::options::OPT_m68060))
return "M68060";
return "";
diff --git a/clang/lib/Driver/ToolChains/Arch/Mips.cpp b/clang/lib/Driver/ToolChains/Arch/Mips.cpp
index 103aae7018fbf..8d7b85dbeed99 100644
--- a/clang/lib/Driver/ToolChains/Arch/Mips.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/Mips.cpp
@@ -9,7 +9,7 @@
#include "Mips.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Option/ArgList.h"
@@ -49,7 +49,8 @@ void mips::getMipsCPUAndABI(const ArgList &Args, const llvm::Triple &Triple,
DefMips64CPU = "mips3";
}
- if (Arg *A = Args.getLastArg(options::OPT_march_EQ, options::OPT_mcpu_EQ))
+ if (Arg *A = Args.getLastArg(clang::driver::options::OPT_march_EQ,
+ options::OPT_mcpu_EQ))
CPUName = A->getValue();
if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) {
diff --git a/clang/lib/Driver/ToolChains/Arch/PPC.cpp b/clang/lib/Driver/ToolChains/Arch/PPC.cpp
index 44afdd249fea5..361a68a892a8f 100644
--- a/clang/lib/Driver/ToolChains/Arch/PPC.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/PPC.cpp
@@ -9,7 +9,7 @@
#include "PPC.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Option/ArgList.h"
#include "llvm/TargetParser/Host.h"
diff --git a/clang/lib/Driver/ToolChains/Arch/RISCV.cpp b/clang/lib/Driver/ToolChains/Arch/RISCV.cpp
index 1dcce6d053a39..f2e79e71f93d4 100644
--- a/clang/lib/Driver/ToolChains/Arch/RISCV.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/RISCV.cpp
@@ -10,7 +10,7 @@
#include "../Clang.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/Error.h"
#include "llvm/TargetParser/Host.h"
diff --git a/clang/lib/Driver/ToolChains/Arch/Sparc.cpp b/clang/lib/Driver/ToolChains/Arch/Sparc.cpp
index 49256d80cbdf6..94a94f1e9c487 100644
--- a/clang/lib/Driver/ToolChains/Arch/Sparc.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/Sparc.cpp
@@ -8,7 +8,7 @@
#include "Sparc.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Option/ArgList.h"
#include "llvm/TargetParser/Host.h"
@@ -122,7 +122,7 @@ sparc::FloatABI sparc::getSparcFloatABI(const Driver &D,
std::string sparc::getSparcTargetCPU(const Driver &D, const ArgList &Args,
const llvm::Triple &Triple) {
- if (const Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) {
+ if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mcpu_EQ)) {
StringRef CPUName = A->getValue();
if (CPUName == "native") {
std::string CPU = std::string(llvm::sys::getHostCPUName());
diff --git a/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp b/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp
index 1ef6a725483e8..75b6afd925245 100644
--- a/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp
@@ -8,7 +8,7 @@
#include "SystemZ.h"
#include "clang/Config/config.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/TargetParser/Host.h"
@@ -25,9 +25,9 @@ systemz::FloatABI systemz::getSystemZFloatABI(const Driver &D,
D.Diag(diag::err_drv_unsupported_opt)
<< Args.getLastArg(options::OPT_mfloat_abi_EQ)->getAsString(Args);
- if (Arg *A =
- Args.getLastArg(options::OPT_msoft_float, options::OPT_mhard_float))
- if (A->getOption().matches(options::OPT_msoft_float))
+ if (Arg *A = Args.getLastArg(clang::driver::options::OPT_msoft_float,
+ options::OPT_mhard_float))
+ if (A->getOption().matches(clang::driver::options::OPT_msoft_float))
ABI = systemz::FloatABI::Soft;
return ABI;
@@ -35,7 +35,7 @@ systemz::FloatABI systemz::getSystemZFloatABI(const Driver &D,
std::string systemz::getSystemZTargetCPU(const ArgList &Args,
const llvm::Triple &T) {
- if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
+ if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_march_EQ)) {
llvm::StringRef CPUName = A->getValue();
if (CPUName == "native") {
diff --git a/clang/lib/Driver/ToolChains/Arch/VE.cpp b/clang/lib/Driver/ToolChains/Arch/VE.cpp
index c8353d7dc5f3a..adc0873586588 100644
--- a/clang/lib/Driver/ToolChains/Arch/VE.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/VE.cpp
@@ -8,7 +8,7 @@
#include "VE.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
using namespace clang::driver;
diff --git a/clang/lib/Driver/ToolChains/Arch/X86.cpp b/clang/lib/Driver/ToolChains/Arch/X86.cpp
index 092069b6ade56..1373905a5120e 100644
--- a/clang/lib/Driver/ToolChains/Arch/X86.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/X86.cpp
@@ -8,7 +8,7 @@
#include "X86.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/Option/ArgList.h"
@@ -21,7 +21,7 @@ using namespace llvm::opt;
std::string x86::getX86TargetCPU(const Driver &D, const ArgList &Args,
const llvm::Triple &Triple) {
- if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
+ if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_march_EQ)) {
StringRef CPU = A->getValue();
if (CPU != "native")
return std::string(CPU);
@@ -119,7 +119,7 @@ void x86::getX86TargetFeatures(const Driver &D, const llvm::Triple &Triple,
std::vector<StringRef> &Features) {
// Claim and report unsupported -mabi=. Note: we don't support "sysv_abi" or
// "ms_abi" as default function attributes.
- if (const Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) {
+ if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mabi_EQ)) {
StringRef DefaultAbi =
(Triple.isOSWindows() || Triple.isUEFI()) ? "ms" : "sysv";
if (A->getValue() != DefaultAbi)
@@ -128,7 +128,7 @@ void x86::getX86TargetFeatures(const Driver &D, const llvm::Triple &Triple,
}
// If -march=native, autodetect the feature list.
- if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
+ if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_march_EQ)) {
if (StringRef(A->getValue()) == "native") {
for (auto &F : llvm::sys::getHostCPUFeatures())
Features.push_back(
@@ -163,7 +163,7 @@ void x86::getX86TargetFeatures(const Driver &D, const llvm::Triple &Triple,
// flags). This is a bit hacky but keeps existing usages working. We should
// consider deprecating this and instead warn if the user requests external
// retpoline thunks and *doesn't* request some form of retpolines.
- auto SpectreOpt = options::ID::OPT_INVALID;
+ auto SpectreOpt = clang::driver::options::ID::OPT_INVALID;
if (Args.hasArgNoClaim(options::OPT_mretpoline, options::OPT_mno_retpoline,
options::OPT_mspeculative_load_hardening,
options::OPT_mno_speculative_load_hardening)) {
@@ -189,7 +189,7 @@ void x86::getX86TargetFeatures(const Driver &D, const llvm::Triple &Triple,
SpectreOpt = options::OPT_mretpoline_external_thunk;
}
- auto LVIOpt = options::ID::OPT_INVALID;
+ auto LVIOpt = clang::driver::options::ID::OPT_INVALID;
if (Args.hasFlag(options::OPT_mlvi_hardening, options::OPT_mno_lvi_hardening,
false)) {
Features.push_back("+lvi-load-hardening");
@@ -207,7 +207,7 @@ void x86::getX86TargetFeatures(const Driver &D, const llvm::Triple &Triple,
<< D.getOpts().getOptionName(options::OPT_mlvi_hardening)
<< D.getOpts().getOptionName(options::OPT_m_seses);
- if (SpectreOpt != options::ID::OPT_INVALID)
+ if (SpectreOpt != clang::driver::options::ID::OPT_INVALID)
D.Diag(diag::err_drv_argument_not_allowed_with)
<< D.getOpts().getOptionName(SpectreOpt)
<< D.getOpts().getOptionName(options::OPT_m_seses);
@@ -219,8 +219,8 @@ void x86::getX86TargetFeatures(const Driver &D, const llvm::Triple &Triple,
}
}
- if (SpectreOpt != options::ID::OPT_INVALID &&
- LVIOpt != options::ID::OPT_INVALID) {
+ if (SpectreOpt != clang::driver::options::ID::OPT_INVALID &&
+ LVIOpt != clang::driver::options::ID::OPT_INVALID) {
D.Diag(diag::err_drv_argument_not_allowed_with)
<< D.getOpts().getOptionName(SpectreOpt)
<< D.getOpts().getOptionName(LVIOpt);
diff --git a/clang/lib/Driver/ToolChains/BareMetal.cpp b/clang/lib/Driver/ToolChains/BareMetal.cpp
index 8d598be9ffb0a..9b7f58c392885 100644
--- a/clang/lib/Driver/ToolChains/BareMetal.cpp
+++ b/clang/lib/Driver/ToolChains/BareMetal.cpp
@@ -18,7 +18,7 @@
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/MultilibBuilder.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/Path.h"
@@ -135,7 +135,7 @@ static std::string computeClangRuntimesSysRoot(const Driver &D,
bool BareMetal::initGCCInstallation(const llvm::Triple &Triple,
const llvm::opt::ArgList &Args) {
if (Args.getLastArg(options::OPT_gcc_toolchain) ||
- Args.getLastArg(clang::options::OPT_gcc_install_dir_EQ)) {
+ Args.getLastArg(clang::driver::options::OPT_gcc_install_dir_EQ)) {
GCCInstallation.init(Triple, Args);
return GCCInstallation.isValid();
}
diff --git a/clang/lib/Driver/ToolChains/CSKYToolChain.cpp b/clang/lib/Driver/ToolChains/CSKYToolChain.cpp
index c561d7d38da5b..e4db3307ee3aa 100644
--- a/clang/lib/Driver/ToolChains/CSKYToolChain.cpp
+++ b/clang/lib/Driver/ToolChains/CSKYToolChain.cpp
@@ -10,7 +10,7 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/InputInfo.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 2791b1e57877e..e20963ac288d8 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -29,10 +29,10 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Distro.h"
#include "clang/Driver/InputInfo.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
#include "clang/Driver/Types.h"
#include "clang/Driver/XRayArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/StringExtras.h"
@@ -65,7 +65,7 @@ using namespace clang;
using namespace llvm::opt;
static void CheckPreprocessingOptions(const Driver &D, const ArgList &Args) {
- if (Arg *A = Args.getLastArg(options::OPT_C, options::OPT_CC,
+ if (Arg *A = Args.getLastArg(clang::driver::options::OPT_C, options::OPT_CC,
options::OPT_fminimize_whitespace,
options::OPT_fno_minimize_whitespace,
options::OPT_fkeep_system_includes,
@@ -1661,7 +1661,7 @@ void Clang::AddAArch64TargetArgs(const ArgList &Args,
AddAAPCSVolatileBitfieldArgs(Args, CmdArgs);
- if (const Arg *A = Args.getLastArg(options::OPT_mtune_EQ)) {
+ if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mtune_EQ)) {
CmdArgs.push_back("-tune-cpu");
if (strcmp(A->getValue(), "native") == 0)
CmdArgs.push_back(Args.MakeArgString(llvm::sys::getHostCPUName()));
@@ -2067,7 +2067,7 @@ void Clang::AddSparcTargetArgs(const ArgList &Args,
CmdArgs.push_back("hard");
}
- if (const Arg *A = Args.getLastArg(options::OPT_mtune_EQ)) {
+ if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mtune_EQ)) {
StringRef Name = A->getValue();
std::string TuneCPU;
if (Name == "native")
@@ -2173,11 +2173,12 @@ void Clang::AddX86TargetArgs(const ArgList &Args,
// Default to "generic" unless -march is present or targetting the PS4/PS5.
std::string TuneCPU;
- if (!Args.hasArg(options::OPT_march_EQ) && !getToolChain().getTriple().isPS())
+ if (!Args.hasArg(clang::driver::options::OPT_march_EQ) &&
+ !getToolChain().getTriple().isPS())
TuneCPU = "generic";
// Override based on -mtune.
- if (const Arg *A = Args.getLastArg(options::OPT_mtune_EQ)) {
+ if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mtune_EQ)) {
StringRef Name = A->getValue();
if (Name == "native") {
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 9e3ca9f281195..ec8dcdc81db56 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -31,11 +31,11 @@
#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/ToolChain.h"
#include "clang/Driver/Util.h"
#include "clang/Driver/XRayArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallString.h"
@@ -69,7 +69,8 @@ using namespace llvm::opt;
static bool useFramePointerForTargetByDefault(const llvm::opt::ArgList &Args,
const llvm::Triple &Triple) {
- if (Args.hasArg(options::OPT_pg) && !Args.hasArg(options::OPT_mfentry))
+ if (Args.hasArg(clang::driver::options::OPT_pg) &&
+ !Args.hasArg(clang::driver::options::OPT_mfentry))
return true;
if (Triple.isAndroid())
@@ -248,16 +249,17 @@ getFramePointerKind(const llvm::opt::ArgList &Args,
// without requiring new frame records to be created.
bool DefaultFP = useFramePointerForTargetByDefault(Args, Triple);
- bool EnableFP = mustUseNonLeafFramePointerForTarget(Triple) ||
- Args.hasFlag(options::OPT_fno_omit_frame_pointer,
- options::OPT_fomit_frame_pointer, DefaultFP);
+ bool EnableFP =
+ mustUseNonLeafFramePointerForTarget(Triple) ||
+ Args.hasFlag(clang::driver::options::OPT_fno_omit_frame_pointer,
+ clang::driver::options::OPT_fomit_frame_pointer, DefaultFP);
bool DefaultLeafFP =
useLeafFramePointerForTargetByDefault(Triple) ||
(EnableFP && framePointerImpliesLeafFramePointer(Args, Triple));
- bool EnableLeafFP =
- Args.hasFlag(options::OPT_mno_omit_leaf_frame_pointer,
- options::OPT_momit_leaf_frame_pointer, DefaultLeafFP);
+ bool EnableLeafFP = Args.hasFlag(
+ clang::driver::options::OPT_mno_omit_leaf_frame_pointer,
+ clang::driver::options::OPT_momit_leaf_frame_pointer, DefaultLeafFP);
bool FPRegReserved = EnableFP || mustMaintainValidFrameChain(Args, Triple);
@@ -751,7 +753,7 @@ std::string tools::getCPUName(const Driver &D, const ArgList &Args,
case llvm::Triple::ppcle:
case llvm::Triple::ppc64:
case llvm::Triple::ppc64le:
- if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ))
+ if (Arg *A = Args.getLastArg(clang::driver::options::OPT_mcpu_EQ))
return std::string(
llvm::PPC::getNormalizedPPCTargetCPU(T, A->getValue()));
return std::string(llvm::PPC::getNormalizedPPCTargetCPU(T));
@@ -1731,7 +1733,7 @@ bool tools::addSanitizerRuntimes(const ToolChain &TC, const ArgList &Args,
if (SanArgs.needsFuzzerInterceptors())
addSanitizerRuntime(TC, Args, CmdArgs, "fuzzer_interceptors", false,
true);
- if (!Args.hasArg(options::OPT_nostdlibxx)) {
+ if (!Args.hasArg(clang::driver::options::OPT_nostdlibxx)) {
bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) &&
!Args.hasArg(options::OPT_static);
if (OnlyLibstdcxxStatic)
@@ -3383,7 +3385,7 @@ void tools::handleInterchangeLoopsArgs(const ArgList &Args,
// Otherwise, return an empty string and issue a diagnosic message if needed.
StringRef tools::parseMPreferVectorWidthOption(clang::DiagnosticsEngine &Diags,
const llvm::opt::ArgList &Args) {
- Arg *A = Args.getLastArg(options::OPT_mprefer_vector_width_EQ);
+ Arg *A = Args.getLastArg(clang::driver::options::OPT_mprefer_vector_width_EQ);
if (!A)
return "";
diff --git a/clang/lib/Driver/ToolChains/CrossWindows.cpp b/clang/lib/Driver/ToolChains/CrossWindows.cpp
index 6df5315e8fff8..51c892fc91718 100644
--- a/clang/lib/Driver/ToolChains/CrossWindows.cpp
+++ b/clang/lib/Driver/ToolChains/CrossWindows.cpp
@@ -10,8 +10,8 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/Path.h"
diff --git a/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/lib/Driver/ToolChains/Cuda.cpp
index 6cc73ff5fc1f6..07201cc4676ac 100644
--- a/clang/lib/Driver/ToolChains/Cuda.cpp
+++ b/clang/lib/Driver/ToolChains/Cuda.cpp
@@ -14,7 +14,7 @@
#include "clang/Driver/Distro.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/InputInfo.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Config/llvm-config.h" // for LLVM_HOST_TRIPLE
#include "llvm/Option/ArgList.h"
@@ -153,16 +153,16 @@ CudaInstallationDetector::CudaInstallationDetector(
std::initializer_list<const char *> Versions = {"8.0", "7.5", "7.0"};
auto &FS = D.getVFS();
- if (Args.hasArg(options::OPT_cuda_path_EQ)) {
+ if (Args.hasArg(clang::driver::options::OPT_cuda_path_EQ)) {
Candidates.emplace_back(
- Args.getLastArgValue(options::OPT_cuda_path_EQ).str());
+ Args.getLastArgValue(clang::driver::options::OPT_cuda_path_EQ).str());
} else if (HostTriple.isOSWindows()) {
for (const char *Ver : Versions)
Candidates.emplace_back(
D.SysRoot + "/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v" +
Ver);
} else {
- if (!Args.hasArg(options::OPT_cuda_path_ignore_env)) {
+ if (!Args.hasArg(clang::driver::options::OPT_cuda_path_ignore_env)) {
// Try to find ptxas binary. If the executable is located in a directory
// called 'bin/', its parent directory might be a good guess for a valid
// CUDA installation.
diff --git a/clang/lib/Driver/ToolChains/Cygwin.cpp b/clang/lib/Driver/ToolChains/Cygwin.cpp
index 55438125ce0f1..d9c16347daa34 100644
--- a/clang/lib/Driver/ToolChains/Cygwin.cpp
+++ b/clang/lib/Driver/ToolChains/Cygwin.cpp
@@ -10,7 +10,7 @@
#include "clang/Config/config.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/VirtualFileSystem.h"
@@ -58,7 +58,7 @@ void Cygwin::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
const Driver &D = getDriver();
std::string SysRoot = computeSysRoot();
- if (DriverArgs.hasArg(options::OPT_nostdinc))
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
return;
if (!DriverArgs.hasArg(options::OPT_nostdlibinc))
diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp
index fc3cd9030f71d..2fb7652d64536 100644
--- a/clang/lib/Driver/ToolChains/Darwin.cpp
+++ b/clang/lib/Driver/ToolChains/Darwin.cpp
@@ -14,8 +14,8 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Option/ArgList.h"
#include "llvm/ProfileData/InstrProf.h"
@@ -1079,7 +1079,7 @@ StringRef MachO::getMachOArchName(const ArgList &Args) const {
case llvm::Triple::thumb:
case llvm::Triple::arm:
- if (const Arg *A = Args.getLastArg(options::OPT_march_EQ))
+ if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_march_EQ))
if (const char *Arch = ArmMachOArchName(A->getValue()))
return Arch;
@@ -2993,7 +2993,7 @@ DerivedArgList *MachO::TranslateArgs(const DerivedArgList &Args,
if (!BoundArch.empty()) {
StringRef Name = BoundArch;
const Option MCpu = Opts.getOption(options::OPT_mcpu_EQ);
- const Option MArch = Opts.getOption(options::OPT_march_EQ);
+ const Option MArch = Opts.getOption(clang::driver::options::OPT_march_EQ);
// This code must be kept in sync with LLVM's getArchTypeForDarwinArch,
// which defines the list of which architectures we accept.
diff --git a/clang/lib/Driver/ToolChains/DragonFly.cpp b/clang/lib/Driver/ToolChains/DragonFly.cpp
index d4a6d6ae3e349..524f5f2ff391e 100644
--- a/clang/lib/Driver/ToolChains/DragonFly.cpp
+++ b/clang/lib/Driver/ToolChains/DragonFly.cpp
@@ -10,7 +10,7 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/Path.h"
@@ -219,7 +219,7 @@ void DragonFly::AddClangSystemIncludeArgs(
llvm::opt::ArgStringList &CC1Args) const {
const Driver &D = getDriver();
- if (DriverArgs.hasArg(options::OPT_nostdinc))
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
return;
if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp
index 038395e4b68f2..88bce181d40d2 100644
--- a/clang/lib/Driver/ToolChains/Flang.cpp
+++ b/clang/lib/Driver/ToolChains/Flang.cpp
@@ -11,7 +11,7 @@
#include "clang/Basic/CodeGenOptions.h"
#include "clang/Driver/CommonArgs.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Frontend/Debug/Options.h"
#include "llvm/Support/Path.h"
#include "llvm/TargetParser/Host.h"
@@ -230,7 +230,7 @@ void Flang::addCodegenOptions(const ArgList &Args,
options::OPT_fstack_repack_arrays, options::OPT_fno_stack_repack_arrays,
options::OPT_ftime_report, options::OPT_ftime_report_EQ,
options::OPT_funroll_loops, options::OPT_fno_unroll_loops});
- if (Args.hasArg(options::OPT_fcoarray))
+ if (Args.hasArg(clang::driver::options::OPT_fcoarray))
CmdArgs.push_back("-fcoarray");
}
diff --git a/clang/lib/Driver/ToolChains/FreeBSD.cpp b/clang/lib/Driver/ToolChains/FreeBSD.cpp
index 70e66a2f5c3e7..b17b76233ad30 100644
--- a/clang/lib/Driver/ToolChains/FreeBSD.cpp
+++ b/clang/lib/Driver/ToolChains/FreeBSD.cpp
@@ -13,8 +13,8 @@
#include "clang/Config/config.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/VirtualFileSystem.h"
@@ -404,7 +404,7 @@ void FreeBSD::AddClangSystemIncludeArgs(
llvm::opt::ArgStringList &CC1Args) const {
const Driver &D = getDriver();
- if (DriverArgs.hasArg(options::OPT_nostdinc))
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
return;
if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
diff --git a/clang/lib/Driver/ToolChains/Fuchsia.cpp b/clang/lib/Driver/ToolChains/Fuchsia.cpp
index 9edfc4de3d602..507cc03b27513 100644
--- a/clang/lib/Driver/ToolChains/Fuchsia.cpp
+++ b/clang/lib/Driver/ToolChains/Fuchsia.cpp
@@ -12,8 +12,8 @@
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/MultilibBuilder.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
@@ -344,7 +344,7 @@ Tool *Fuchsia::buildStaticLibTool() const {
ToolChain::RuntimeLibType
Fuchsia::GetRuntimeLibType(const ArgList &Args) const {
- if (Arg *A = Args.getLastArg(options::OPT_rtlib_EQ)) {
+ if (Arg *A = Args.getLastArg(clang::driver::options::OPT_rtlib_EQ)) {
StringRef Value = A->getValue();
if (Value != "compiler-rt")
getDriver().Diag(clang::diag::err_drv_invalid_rtlib_name)
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index 1bfcd1f4f3a7c..2dd8cc8422cd7 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -20,9 +20,9 @@
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/MultilibBuilder.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/Tool.h"
#include "clang/Driver/ToolChain.h"
-#include "clang/Options/Options.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Option/ArgList.h"
@@ -2058,7 +2058,7 @@ Generic_GCC::GCCVersion Generic_GCC::GCCVersion::Parse(StringRef VersionText) {
static llvm::StringRef getGCCToolchainDir(const ArgList &Args,
llvm::StringRef SysRoot) {
- const Arg *A = Args.getLastArg(options::OPT_gcc_toolchain);
+ const Arg *A = Args.getLastArg(clang::driver::options::OPT_gcc_toolchain);
if (A)
return A->getValue();
@@ -2111,7 +2111,8 @@ void Generic_GCC::GCCInstallationDetector::init(
CandidateBiarchTripleAliases);
// If --gcc-install-dir= is specified, skip filesystem detection.
- if (const Arg *A = Args.getLastArg(options::OPT_gcc_install_dir_EQ);
+ if (const Arg *A =
+ Args.getLastArg(clang::driver::options::OPT_gcc_install_dir_EQ);
A && A->getValue()[0]) {
StringRef InstallDir = A->getValue();
if (!ScanGCCForMultilibs(TargetTriple, Args, InstallDir, false)) {
@@ -2134,7 +2135,8 @@ void Generic_GCC::GCCInstallationDetector::init(
// If --gcc-triple is specified use this instead of trying to
// auto-detect a triple.
- if (const Arg *A = Args.getLastArg(options::OPT_gcc_triple_EQ)) {
+ if (const Arg *A =
+ Args.getLastArg(clang::driver::options::OPT_gcc_triple_EQ)) {
StringRef GCCTriple = A->getValue();
CandidateTripleAliases.clear();
CandidateTripleAliases.push_back(GCCTriple);
diff --git a/clang/lib/Driver/ToolChains/HIPAMD.cpp b/clang/lib/Driver/ToolChains/HIPAMD.cpp
index 0fbfa090ed9d3..c0c8afec07264 100644
--- a/clang/lib/Driver/ToolChains/HIPAMD.cpp
+++ b/clang/lib/Driver/ToolChains/HIPAMD.cpp
@@ -15,8 +15,8 @@
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/InputInfo.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
#include "llvm/TargetParser/TargetParser.h"
diff --git a/clang/lib/Driver/ToolChains/HIPSPV.cpp b/clang/lib/Driver/ToolChains/HIPSPV.cpp
index be0f49d8e1497..bce7f46dea468 100644
--- a/clang/lib/Driver/ToolChains/HIPSPV.cpp
+++ b/clang/lib/Driver/ToolChains/HIPSPV.cpp
@@ -12,7 +12,7 @@
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/InputInfo.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
@@ -211,7 +211,7 @@ HIPSPVToolChain::getDeviceLibs(
// Find device libraries in --hip-device-lib-path and HIP_DEVICE_LIB_PATH.
auto HipDeviceLibPathArgs = DriverArgs.getAllArgValues(
// --hip-device-lib-path is alias to this option.
- options::OPT_rocm_device_lib_path_EQ);
+ clang::driver::options::OPT_rocm_device_lib_path_EQ);
for (auto Path : HipDeviceLibPathArgs)
LibraryPaths.push_back(DriverArgs.MakeArgString(Path));
diff --git a/clang/lib/Driver/ToolChains/HIPUtility.cpp b/clang/lib/Driver/ToolChains/HIPUtility.cpp
index 1af2ae6470f1e..732403e69a075 100644
--- a/clang/lib/Driver/ToolChains/HIPUtility.cpp
+++ b/clang/lib/Driver/ToolChains/HIPUtility.cpp
@@ -9,7 +9,7 @@
#include "HIPUtility.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Object/Archive.h"
diff --git a/clang/lib/Driver/ToolChains/Hexagon.cpp b/clang/lib/Driver/ToolChains/Hexagon.cpp
index 084f51721315c..9f8b676fc7dc2 100644
--- a/clang/lib/Driver/ToolChains/Hexagon.cpp
+++ b/clang/lib/Driver/ToolChains/Hexagon.cpp
@@ -11,7 +11,7 @@
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/InputInfo.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
diff --git a/clang/lib/Driver/ToolChains/Hurd.cpp b/clang/lib/Driver/ToolChains/Hurd.cpp
index 53ee4d4c0cbde..43121233ea7d0 100644
--- a/clang/lib/Driver/ToolChains/Hurd.cpp
+++ b/clang/lib/Driver/ToolChains/Hurd.cpp
@@ -10,7 +10,7 @@
#include "clang/Config/config.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/VirtualFileSystem.h"
@@ -168,7 +168,7 @@ void Hurd::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
const Driver &D = getDriver();
std::string SysRoot = computeSysRoot();
- if (DriverArgs.hasArg(options::OPT_nostdinc))
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
return;
if (!DriverArgs.hasArg(options::OPT_nostdlibinc))
diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
index 020e7465548fe..94a9fe8b1a63f 100644
--- a/clang/lib/Driver/ToolChains/Linux.cpp
+++ b/clang/lib/Driver/ToolChains/Linux.cpp
@@ -16,8 +16,8 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Distro.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/ProfileData/InstrProf.h"
#include "llvm/Support/Path.h"
@@ -731,7 +731,7 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
const Driver &D = getDriver();
std::string SysRoot = computeSysRoot();
- if (DriverArgs.hasArg(options::OPT_nostdinc))
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
return;
// Add 'include' in the resource directory, which is similar to
diff --git a/clang/lib/Driver/ToolChains/MSP430.cpp b/clang/lib/Driver/ToolChains/MSP430.cpp
index 3cc56bb7e832e..9eca1ad5f2865 100644
--- a/clang/lib/Driver/ToolChains/MSP430.cpp
+++ b/clang/lib/Driver/ToolChains/MSP430.cpp
@@ -12,7 +12,7 @@
#include "clang/Driver/Compilation.h"
#include "clang/Driver/InputInfo.h"
#include "clang/Driver/Multilib.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/Path.h"
diff --git a/clang/lib/Driver/ToolChains/MSVC.cpp b/clang/lib/Driver/ToolChains/MSVC.cpp
index fcae5b7a18f34..bb469ff095cd4 100644
--- a/clang/lib/Driver/ToolChains/MSVC.cpp
+++ b/clang/lib/Driver/ToolChains/MSVC.cpp
@@ -12,8 +12,8 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/Option/Arg.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/ConvertUTF.h"
diff --git a/clang/lib/Driver/ToolChains/Managarm.cpp b/clang/lib/Driver/ToolChains/Managarm.cpp
index 1bbabdfc631b8..da4a9072317f4 100644
--- a/clang/lib/Driver/ToolChains/Managarm.cpp
+++ b/clang/lib/Driver/ToolChains/Managarm.cpp
@@ -11,8 +11,8 @@
#include "clang/Config/config.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/Path.h"
@@ -136,7 +136,7 @@ void Managarm::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
const Driver &D = getDriver();
std::string SysRoot = computeSysRoot();
- if (DriverArgs.hasArg(options::OPT_nostdinc))
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
return;
if (!DriverArgs.hasArg(options::OPT_nostdlibinc))
diff --git a/clang/lib/Driver/ToolChains/MinGW.cpp b/clang/lib/Driver/ToolChains/MinGW.cpp
index 2c9a174069f70..1bb9bcfe6aab2 100644
--- a/clang/lib/Driver/ToolChains/MinGW.cpp
+++ b/clang/lib/Driver/ToolChains/MinGW.cpp
@@ -12,8 +12,8 @@
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/InputInfo.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/Config/llvm-config.h" // for LLVM_HOST_TRIPLE
#include "llvm/Option/ArgList.h"
#include "llvm/Support/FileSystem.h"
diff --git a/clang/lib/Driver/ToolChains/MipsLinux.cpp b/clang/lib/Driver/ToolChains/MipsLinux.cpp
index 58d6b5031f536..7dd3936613296 100644
--- a/clang/lib/Driver/ToolChains/MipsLinux.cpp
+++ b/clang/lib/Driver/ToolChains/MipsLinux.cpp
@@ -9,7 +9,7 @@
#include "MipsLinux.h"
#include "Arch/Mips.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
@@ -38,7 +38,7 @@ MipsLLVMToolChain::MipsLLVMToolChain(const Driver &D,
void MipsLLVMToolChain::AddClangSystemIncludeArgs(
const ArgList &DriverArgs, ArgStringList &CC1Args) const {
- if (DriverArgs.hasArg(options::OPT_nostdinc))
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
return;
const Driver &D = getDriver();
diff --git a/clang/lib/Driver/ToolChains/NetBSD.cpp b/clang/lib/Driver/ToolChains/NetBSD.cpp
index ea722b59853d6..8db00deeb80df 100644
--- a/clang/lib/Driver/ToolChains/NetBSD.cpp
+++ b/clang/lib/Driver/ToolChains/NetBSD.cpp
@@ -14,8 +14,8 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/VirtualFileSystem.h"
@@ -466,7 +466,7 @@ void NetBSD::AddClangSystemIncludeArgs(
llvm::opt::ArgStringList &CC1Args) const {
const Driver &D = getDriver();
- if (DriverArgs.hasArg(options::OPT_nostdinc))
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
return;
if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
diff --git a/clang/lib/Driver/ToolChains/OHOS.cpp b/clang/lib/Driver/ToolChains/OHOS.cpp
index 607eb714f85dc..00991504e97a8 100644
--- a/clang/lib/Driver/ToolChains/OHOS.cpp
+++ b/clang/lib/Driver/ToolChains/OHOS.cpp
@@ -12,8 +12,8 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/ProfileData/InstrProf.h"
#include "llvm/Support/FileSystem.h"
@@ -174,7 +174,7 @@ OHOS::OHOS(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
ToolChain::RuntimeLibType OHOS::GetRuntimeLibType(
const ArgList &Args) const {
- if (Arg *A = Args.getLastArg(options::OPT_rtlib_EQ)) {
+ if (Arg *A = Args.getLastArg(clang::driver::options::OPT_rtlib_EQ)) {
StringRef Value = A->getValue();
if (Value != "compiler-rt")
getDriver().Diag(clang::diag::err_drv_invalid_rtlib_name)
diff --git a/clang/lib/Driver/ToolChains/OpenBSD.cpp b/clang/lib/Driver/ToolChains/OpenBSD.cpp
index 5e7b4f1a664e6..8f589186af343 100644
--- a/clang/lib/Driver/ToolChains/OpenBSD.cpp
+++ b/clang/lib/Driver/ToolChains/OpenBSD.cpp
@@ -13,8 +13,8 @@
#include "clang/Config/config.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/VirtualFileSystem.h"
@@ -315,7 +315,7 @@ void OpenBSD::AddClangSystemIncludeArgs(
llvm::opt::ArgStringList &CC1Args) const {
const Driver &D = getDriver();
- if (DriverArgs.hasArg(options::OPT_nostdinc))
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
return;
if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
diff --git a/clang/lib/Driver/ToolChains/PPCFreeBSD.cpp b/clang/lib/Driver/ToolChains/PPCFreeBSD.cpp
index 76180431ee682..8d381c4f14371 100644
--- a/clang/lib/Driver/ToolChains/PPCFreeBSD.cpp
+++ b/clang/lib/Driver/ToolChains/PPCFreeBSD.cpp
@@ -8,7 +8,7 @@
#include "PPCFreeBSD.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Support/Path.h"
using namespace clang::driver::toolchains;
@@ -16,7 +16,7 @@ using namespace llvm::opt;
void PPCFreeBSDToolChain::AddClangSystemIncludeArgs(
const ArgList &DriverArgs, ArgStringList &CC1Args) const {
- if (!DriverArgs.hasArg(options::OPT_nostdinc) &&
+ if (!DriverArgs.hasArg(clang::driver::options::OPT_nostdinc) &&
!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
const Driver &D = getDriver();
SmallString<128> P(D.ResourceDir);
diff --git a/clang/lib/Driver/ToolChains/PPCLinux.cpp b/clang/lib/Driver/ToolChains/PPCLinux.cpp
index 672ebd5b7b98d..768214e416bd7 100644
--- a/clang/lib/Driver/ToolChains/PPCLinux.cpp
+++ b/clang/lib/Driver/ToolChains/PPCLinux.cpp
@@ -8,7 +8,7 @@
#include "PPCLinux.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
@@ -58,7 +58,7 @@ PPCLinuxToolChain::PPCLinuxToolChain(const Driver &D,
void PPCLinuxToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
ArgStringList &CC1Args) const {
- if (!DriverArgs.hasArg(options::OPT_nostdinc) &&
+ if (!DriverArgs.hasArg(clang::driver::options::OPT_nostdinc) &&
!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
const Driver &D = getDriver();
SmallString<128> P(D.ResourceDir);
diff --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp b/clang/lib/Driver/ToolChains/PS4CPU.cpp
index 6fe18aa4cceba..34ec65ae59602 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.cpp
+++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp
@@ -11,8 +11,8 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
diff --git a/clang/lib/Driver/ToolChains/SPIRV.cpp b/clang/lib/Driver/ToolChains/SPIRV.cpp
index 27de55cfebfc1..ea824dbad54cb 100644
--- a/clang/lib/Driver/ToolChains/SPIRV.cpp
+++ b/clang/lib/Driver/ToolChains/SPIRV.cpp
@@ -10,7 +10,7 @@
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/InputInfo.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
using namespace clang::driver;
using namespace clang::driver::toolchains;
diff --git a/clang/lib/Driver/ToolChains/SYCL.cpp b/clang/lib/Driver/ToolChains/SYCL.cpp
index 85859f344b491..0232b047a6c4b 100644
--- a/clang/lib/Driver/ToolChains/SYCL.cpp
+++ b/clang/lib/Driver/ToolChains/SYCL.cpp
@@ -20,7 +20,7 @@ SYCLInstallationDetector::SYCLInstallationDetector(
void SYCLInstallationDetector::addSYCLIncludeArgs(
const ArgList &DriverArgs, ArgStringList &CC1Args) const {
- if (DriverArgs.hasArg(options::OPT_nobuiltininc))
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nobuiltininc))
return;
// Add the SYCL header search locations in the specified order.
diff --git a/clang/lib/Driver/ToolChains/Solaris.cpp b/clang/lib/Driver/ToolChains/Solaris.cpp
index ad0f41144f393..64c7d1ceb3a36 100644
--- a/clang/lib/Driver/ToolChains/Solaris.cpp
+++ b/clang/lib/Driver/ToolChains/Solaris.cpp
@@ -13,9 +13,9 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
#include "clang/Driver/ToolChain.h"
-#include "clang/Options/Options.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/FileSystem.h"
@@ -360,7 +360,7 @@ void Solaris::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
ArgStringList &CC1Args) const {
const Driver &D = getDriver();
- if (DriverArgs.hasArg(options::OPT_nostdinc))
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
return;
if (!DriverArgs.hasArg(options::OPT_nostdlibinc))
diff --git a/clang/lib/Driver/ToolChains/UEFI.cpp b/clang/lib/Driver/ToolChains/UEFI.cpp
index 7732e37f8061d..d2be147c7b9f6 100644
--- a/clang/lib/Driver/ToolChains/UEFI.cpp
+++ b/clang/lib/Driver/ToolChains/UEFI.cpp
@@ -11,8 +11,8 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
-#include "clang/Options/Options.h"
#include "llvm/Option/Arg.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/VirtualFileSystem.h"
diff --git a/clang/lib/Driver/ToolChains/VEToolchain.cpp b/clang/lib/Driver/ToolChains/VEToolchain.cpp
index 78509bcdae0fe..ad9129046c3e1 100644
--- a/clang/lib/Driver/ToolChains/VEToolchain.cpp
+++ b/clang/lib/Driver/ToolChains/VEToolchain.cpp
@@ -10,7 +10,7 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/Path.h"
#include <cstdlib> // ::getenv
@@ -78,7 +78,7 @@ bool VEToolChain::hasBlocksRuntime() const { return false; }
void VEToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
ArgStringList &CC1Args) const {
- if (DriverArgs.hasArg(options::OPT_nostdinc))
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
return;
if (DriverArgs.hasArg(options::OPT_nobuiltininc) &&
@@ -117,7 +117,7 @@ void VEToolChain::addClangTargetOptions(const ArgList &DriverArgs,
void VEToolChain::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
ArgStringList &CC1Args) const {
- if (DriverArgs.hasArg(options::OPT_nostdinc) ||
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc) ||
DriverArgs.hasArg(options::OPT_nostdlibinc) ||
DriverArgs.hasArg(options::OPT_nostdincxx))
return;
diff --git a/clang/lib/Driver/ToolChains/WebAssembly.cpp b/clang/lib/Driver/ToolChains/WebAssembly.cpp
index 15c6f19e87fee..5054868b5ff4d 100644
--- a/clang/lib/Driver/ToolChains/WebAssembly.cpp
+++ b/clang/lib/Driver/ToolChains/WebAssembly.cpp
@@ -12,7 +12,7 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Config/llvm-config.h" // for LLVM_VERSION_STRING
#include "llvm/Option/ArgList.h"
#include "llvm/Support/FileSystem.h"
@@ -297,7 +297,7 @@ bool WebAssembly::HasNativeLLVMSupport() const { return true; }
void WebAssembly::addClangTargetOptions(const ArgList &DriverArgs,
ArgStringList &CC1Args,
Action::OffloadKind) const {
- if (!DriverArgs.hasFlag(options::OPT_fuse_init_array,
+ if (!DriverArgs.hasFlag(clang::driver::options::OPT_fuse_init_array,
options::OPT_fno_use_init_array, true))
CC1Args.push_back("-fno-use-init-array");
@@ -472,7 +472,7 @@ WebAssembly::GetCXXStdlibType(const ArgList &Args) const {
void WebAssembly::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
ArgStringList &CC1Args) const {
- if (DriverArgs.hasArg(options::OPT_nostdinc))
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
return;
const Driver &D = getDriver();
diff --git a/clang/lib/Driver/ToolChains/XCore.cpp b/clang/lib/Driver/ToolChains/XCore.cpp
index dd26c11affffb..6a2a75cb99739 100644
--- a/clang/lib/Driver/ToolChains/XCore.cpp
+++ b/clang/lib/Driver/ToolChains/XCore.cpp
@@ -10,7 +10,7 @@
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
#include <cstdlib> // ::getenv
@@ -113,7 +113,7 @@ bool XCoreToolChain::hasBlocksRuntime() const { return false; }
void XCoreToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
ArgStringList &CC1Args) const {
- if (DriverArgs.hasArg(options::OPT_nostdinc) ||
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc) ||
DriverArgs.hasArg(options::OPT_nostdlibinc))
return;
if (const char *cl_include_dir = getenv("XCC_C_INCLUDE_PATH")) {
@@ -137,7 +137,7 @@ void XCoreToolChain::addClangTargetOptions(const ArgList &DriverArgs,
void XCoreToolChain::AddClangCXXStdlibIncludeArgs(
const ArgList &DriverArgs, ArgStringList &CC1Args) const {
- if (DriverArgs.hasArg(options::OPT_nostdinc) ||
+ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc) ||
DriverArgs.hasArg(options::OPT_nostdlibinc) ||
DriverArgs.hasArg(options::OPT_nostdincxx))
return;
diff --git a/clang/lib/Driver/ToolChains/ZOS.cpp b/clang/lib/Driver/ToolChains/ZOS.cpp
index eac8f623f9a50..9a3c45323a3cf 100644
--- a/clang/lib/Driver/ToolChains/ZOS.cpp
+++ b/clang/lib/Driver/ToolChains/ZOS.cpp
@@ -9,7 +9,7 @@
#include "ZOS.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Compilation.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/VirtualFileSystem.h"
#include "llvm/Support/WithColor.h"
diff --git a/clang/lib/Driver/XRayArgs.cpp b/clang/lib/Driver/XRayArgs.cpp
index 4c2d11751a363..0325296f84b19 100644
--- a/clang/lib/Driver/XRayArgs.cpp
+++ b/clang/lib/Driver/XRayArgs.cpp
@@ -8,8 +8,8 @@
#include "clang/Driver/XRayArgs.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/ToolChain.h"
-#include "clang/Options/Options.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Support/SpecialCaseList.h"
diff --git a/clang/lib/Frontend/CMakeLists.txt b/clang/lib/Frontend/CMakeLists.txt
index dac9e0d26f393..a916667208845 100644
--- a/clang/lib/Frontend/CMakeLists.txt
+++ b/clang/lib/Frontend/CMakeLists.txt
@@ -52,7 +52,6 @@ add_clang_library(clangFrontend
clangAST
clangBasic
clangDriver
- clangOptions
clangEdit
clangLex
clangParse
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index f584a2a5824b2..be7c1d367e082 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -27,6 +27,7 @@
#include "clang/Basic/XRayInstr.h"
#include "clang/Config/config.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Frontend/CommandLineSourceLoc.h"
#include "clang/Frontend/DependencyOutputOptions.h"
#include "clang/Frontend/FrontendDiagnostic.h"
@@ -37,7 +38,6 @@
#include "clang/Frontend/Utils.h"
#include "clang/Lex/HeaderSearchOptions.h"
#include "clang/Lex/PreprocessorOptions.h"
-#include "clang/Options/Options.h"
#include "clang/Serialization/ASTBitCodes.h"
#include "clang/Serialization/ModuleFileExtension.h"
#include "clang/StaticAnalyzer/Core/AnalyzerOptions.h"
@@ -255,7 +255,7 @@ CowCompilerInvocation::getMutPreprocessorOutputOpts() {
using ArgumentConsumer = CompilerInvocation::ArgumentConsumer;
#define OPTTABLE_STR_TABLE_CODE
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef OPTTABLE_STR_TABLE_CODE
static llvm::StringRef lookupStrInTable(unsigned Offset) {
@@ -263,7 +263,7 @@ static llvm::StringRef lookupStrInTable(unsigned Offset) {
}
#define SIMPLE_ENUM_VALUE_TABLE
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef SIMPLE_ENUM_VALUE_TABLE
static std::optional<bool> normalizeSimpleFlag(OptSpecifier Opt,
@@ -981,7 +981,7 @@ static void GenerateAnalyzerArgs(const AnalyzerOptions &Opts,
#define ANALYZER_OPTION_WITH_MARSHALLING(...) \
GENERATE_OPTION_WITH_MARSHALLING(Consumer, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef ANALYZER_OPTION_WITH_MARSHALLING
if (Opts.AnalysisConstraintsOpt != RangeConstraintsModel) {
@@ -1068,7 +1068,7 @@ static bool ParseAnalyzerArgs(AnalyzerOptions &Opts, ArgList &Args,
#define ANALYZER_OPTION_WITH_MARSHALLING(...) \
PARSE_OPTION_WITH_MARSHALLING(Args, Diags, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef ANALYZER_OPTION_WITH_MARSHALLING
if (Arg *A = Args.getLastArg(OPT_analyzer_constraints)) {
@@ -1575,7 +1575,7 @@ void CompilerInvocationBase::GenerateCodeGenArgs(const CodeGenOptions &Opts,
#define CODEGEN_OPTION_WITH_MARSHALLING(...) \
GENERATE_OPTION_WITH_MARSHALLING(Consumer, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef CODEGEN_OPTION_WITH_MARSHALLING
if (Opts.OptimizationLevel > 0) {
@@ -1880,7 +1880,7 @@ bool CompilerInvocation::ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args,
#define CODEGEN_OPTION_WITH_MARSHALLING(...) \
PARSE_OPTION_WITH_MARSHALLING(Args, Diags, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef CODEGEN_OPTION_WITH_MARSHALLING
// At O0 we want to fully disable inlining outside of cases marked with
@@ -2371,7 +2371,7 @@ static void GenerateDependencyOutputArgs(const DependencyOutputOptions &Opts,
const DependencyOutputOptions &DependencyOutputOpts = Opts;
#define DEPENDENCY_OUTPUT_OPTION_WITH_MARSHALLING(...) \
GENERATE_OPTION_WITH_MARSHALLING(Consumer, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef DEPENDENCY_OUTPUT_OPTION_WITH_MARSHALLING
if (Opts.ShowIncludesDest != ShowIncludesDestination::None)
@@ -2406,7 +2406,7 @@ static bool ParseDependencyOutputArgs(DependencyOutputOptions &Opts,
DependencyOutputOptions &DependencyOutputOpts = Opts;
#define DEPENDENCY_OUTPUT_OPTION_WITH_MARSHALLING(...) \
PARSE_OPTION_WITH_MARSHALLING(Args, Diags, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef DEPENDENCY_OUTPUT_OPTION_WITH_MARSHALLING
if (Args.hasArg(OPT_show_includes)) {
@@ -2534,7 +2534,7 @@ static void GenerateFileSystemArgs(const FileSystemOptions &Opts,
#define FILE_SYSTEM_OPTION_WITH_MARSHALLING(...) \
GENERATE_OPTION_WITH_MARSHALLING(Consumer, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef FILE_SYSTEM_OPTION_WITH_MARSHALLING
}
@@ -2546,7 +2546,7 @@ static bool ParseFileSystemArgs(FileSystemOptions &Opts, const ArgList &Args,
#define FILE_SYSTEM_OPTION_WITH_MARSHALLING(...) \
PARSE_OPTION_WITH_MARSHALLING(Args, Diags, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef FILE_SYSTEM_OPTION_WITH_MARSHALLING
return Diags.getNumErrors() == NumErrorsBefore;
@@ -2557,7 +2557,7 @@ static void GenerateMigratorArgs(const MigratorOptions &Opts,
const MigratorOptions &MigratorOpts = Opts;
#define MIGRATOR_OPTION_WITH_MARSHALLING(...) \
GENERATE_OPTION_WITH_MARSHALLING(Consumer, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef MIGRATOR_OPTION_WITH_MARSHALLING
}
@@ -2569,7 +2569,7 @@ static bool ParseMigratorArgs(MigratorOptions &Opts, const ArgList &Args,
#define MIGRATOR_OPTION_WITH_MARSHALLING(...) \
PARSE_OPTION_WITH_MARSHALLING(Args, Diags, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef MIGRATOR_OPTION_WITH_MARSHALLING
return Diags.getNumErrors() == NumErrorsBefore;
@@ -2581,7 +2581,7 @@ void CompilerInvocationBase::GenerateDiagnosticArgs(
const DiagnosticOptions *DiagnosticOpts = &Opts;
#define DIAG_OPTION_WITH_MARSHALLING(...) \
GENERATE_OPTION_WITH_MARSHALLING(Consumer, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef DIAG_OPTION_WITH_MARSHALLING
if (!Opts.DiagnosticSerializationFile.empty())
@@ -2686,7 +2686,7 @@ bool clang::ParseDiagnosticArgs(DiagnosticOptions &Opts, ArgList &Args,
#define DIAG_OPTION_WITH_MARSHALLING(...) \
PARSE_OPTION_WITH_MARSHALLING(Args, *Diags, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef DIAG_OPTION_WITH_MARSHALLING
llvm::sys::Process::UseANSIEscapeCodes(Opts.UseANSIEscapeCodes);
@@ -2836,7 +2836,7 @@ static void GenerateFrontendArgs(const FrontendOptions &Opts,
const FrontendOptions &FrontendOpts = Opts;
#define FRONTEND_OPTION_WITH_MARSHALLING(...) \
GENERATE_OPTION_WITH_MARSHALLING(Consumer, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef FRONTEND_OPTION_WITH_MARSHALLING
std::optional<OptSpecifier> ProgramActionOpt =
@@ -3006,7 +3006,7 @@ static bool ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args,
#define FRONTEND_OPTION_WITH_MARSHALLING(...) \
PARSE_OPTION_WITH_MARSHALLING(Args, Diags, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef FRONTEND_OPTION_WITH_MARSHALLING
Opts.ProgramAction = frontend::ParseSyntaxOnly;
@@ -3288,7 +3288,7 @@ static void GenerateHeaderSearchArgs(const HeaderSearchOptions &Opts,
const HeaderSearchOptions *HeaderSearchOpts = &Opts;
#define HEADER_SEARCH_OPTION_WITH_MARSHALLING(...) \
GENERATE_OPTION_WITH_MARSHALLING(Consumer, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef HEADER_SEARCH_OPTION_WITH_MARSHALLING
if (Opts.UseLibcxx)
@@ -3403,7 +3403,7 @@ static bool ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args,
#define HEADER_SEARCH_OPTION_WITH_MARSHALLING(...) \
PARSE_OPTION_WITH_MARSHALLING(Args, Diags, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef HEADER_SEARCH_OPTION_WITH_MARSHALLING
if (const Arg *A = Args.getLastArg(OPT_stdlib_EQ))
@@ -3736,7 +3736,7 @@ void CompilerInvocationBase::GenerateLangArgs(const LangOptions &Opts,
#define LANG_OPTION_WITH_MARSHALLING(...) \
GENERATE_OPTION_WITH_MARSHALLING(Consumer, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef LANG_OPTION_WITH_MARSHALLING
// The '-fcf-protection=' option is generated by CodeGenOpts generator.
@@ -4082,7 +4082,7 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args,
#define LANG_OPTION_WITH_MARSHALLING(...) \
PARSE_OPTION_WITH_MARSHALLING(Args, Diags, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef LANG_OPTION_WITH_MARSHALLING
if (const Arg *A = Args.getLastArg(OPT_fcf_protection_EQ)) {
@@ -4745,7 +4745,7 @@ static void GeneratePreprocessorArgs(const PreprocessorOptions &Opts,
#define PREPROCESSOR_OPTION_WITH_MARSHALLING(...) \
GENERATE_OPTION_WITH_MARSHALLING(Consumer, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef PREPROCESSOR_OPTION_WITH_MARSHALLING
if (Opts.PCHWithHdrStop && !Opts.PCHWithHdrStopCreate)
@@ -4819,7 +4819,7 @@ static bool ParsePreprocessorArgs(PreprocessorOptions &Opts, ArgList &Args,
#define PREPROCESSOR_OPTION_WITH_MARSHALLING(...) \
PARSE_OPTION_WITH_MARSHALLING(Args, Diags, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef PREPROCESSOR_OPTION_WITH_MARSHALLING
Opts.PCHWithHdrStop = Args.hasArg(OPT_pch_through_hdrstop_create) ||
@@ -4912,7 +4912,7 @@ GeneratePreprocessorOutputArgs(const PreprocessorOutputOptions &Opts,
#define PREPROCESSOR_OUTPUT_OPTION_WITH_MARSHALLING(...) \
GENERATE_OPTION_WITH_MARSHALLING(Consumer, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef PREPROCESSOR_OUTPUT_OPTION_WITH_MARSHALLING
bool Generate_dM = isStrictlyPreprocessorAction(Action) && !Opts.ShowCPP;
@@ -4933,7 +4933,7 @@ static bool ParsePreprocessorOutputArgs(PreprocessorOutputOptions &Opts,
#define PREPROCESSOR_OUTPUT_OPTION_WITH_MARSHALLING(...) \
PARSE_OPTION_WITH_MARSHALLING(Args, Diags, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef PREPROCESSOR_OUTPUT_OPTION_WITH_MARSHALLING
Opts.ShowCPP = isStrictlyPreprocessorAction(Action) && !Args.hasArg(OPT_dM);
@@ -4948,7 +4948,7 @@ static void GenerateTargetArgs(const TargetOptions &Opts,
const TargetOptions *TargetOpts = &Opts;
#define TARGET_OPTION_WITH_MARSHALLING(...) \
GENERATE_OPTION_WITH_MARSHALLING(Consumer, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef TARGET_OPTION_WITH_MARSHALLING
if (!Opts.SDKVersion.empty())
@@ -4967,7 +4967,7 @@ static bool ParseTargetArgs(TargetOptions &Opts, ArgList &Args,
#define TARGET_OPTION_WITH_MARSHALLING(...) \
PARSE_OPTION_WITH_MARSHALLING(Args, Diags, __VA_ARGS__)
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef TARGET_OPTION_WITH_MARSHALLING
if (Arg *A = Args.getLastArg(options::OPT_target_sdk_version_EQ)) {
diff --git a/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp b/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp
index 73b81ed906808..99212b81fe064 100644
--- a/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp
+++ b/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp
@@ -14,11 +14,11 @@
#include "clang/Driver/Action.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/Tool.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/FrontendDiagnostic.h"
#include "clang/Frontend/Utils.h"
-#include "clang/Options/Options.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Option/ArgList.h"
@@ -61,11 +61,11 @@ clang::createInvocation(ArrayRef<const char *> ArgList,
if (!C)
return nullptr;
- if (C->getArgs().hasArg(options::OPT_fdriver_only))
+ if (C->getArgs().hasArg(driver::options::OPT_fdriver_only))
return nullptr;
// Just print the cc1 options if -### was present.
- if (C->getArgs().hasArg(options::OPT__HASH_HASH_HASH)) {
+ if (C->getArgs().hasArg(driver::options::OPT__HASH_HASH_HASH)) {
C->getJobs().Print(llvm::errs(), "\n", true);
return nullptr;
}
diff --git a/clang/lib/FrontendTool/CMakeLists.txt b/clang/lib/FrontendTool/CMakeLists.txt
index 66213f76eb968..061e54c3e62d0 100644
--- a/clang/lib/FrontendTool/CMakeLists.txt
+++ b/clang/lib/FrontendTool/CMakeLists.txt
@@ -7,7 +7,6 @@ set(link_libs
clangBasic
clangCodeGen
clangDriver
- clangOptions
clangExtractAPI
clangFrontend
clangRewriteFrontend
diff --git a/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp b/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
index e571193c6a9c8..c8aad4daa1c10 100644
--- a/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
+++ b/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
@@ -13,6 +13,7 @@
#include "clang/CodeGen/CodeGenAction.h"
#include "clang/Config/config.h"
+#include "clang/Driver/Options.h"
#include "clang/ExtractAPI/FrontendActions.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/CompilerInvocation.h"
@@ -21,7 +22,6 @@
#include "clang/Frontend/FrontendPluginRegistry.h"
#include "clang/Frontend/Utils.h"
#include "clang/FrontendTool/Utils.h"
-#include "clang/Options/Options.h"
#include "clang/Rewrite/Frontend/FrontendActions.h"
#include "clang/StaticAnalyzer/Frontend/AnalyzerHelpFlags.h"
#include "clang/StaticAnalyzer/Frontend/FrontendActions.h"
@@ -215,11 +215,11 @@ bool ExecuteCompilerInvocation(CompilerInstance *Clang) {
// Honor -help.
if (Clang->getFrontendOpts().ShowHelp) {
- getDriverOptTable().printHelp(
+ driver::getDriverOptTable().printHelp(
llvm::outs(), "clang -cc1 [options] file...",
"LLVM 'Clang' Compiler: http://clang.llvm.org",
/*ShowHidden=*/false, /*ShowAllAliases=*/false,
- llvm::opt::Visibility(options::CC1Option));
+ llvm::opt::Visibility(driver::options::CC1Option));
return true;
}
diff --git a/clang/lib/Interpreter/Interpreter.cpp b/clang/lib/Interpreter/Interpreter.cpp
index 7764fa7dc92b9..76338065d2231 100644
--- a/clang/lib/Interpreter/Interpreter.cpp
+++ b/clang/lib/Interpreter/Interpreter.cpp
@@ -33,6 +33,7 @@
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/Job.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/Tool.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/FrontendAction.h"
@@ -42,7 +43,6 @@
#include "clang/Interpreter/Interpreter.h"
#include "clang/Interpreter/Value.h"
#include "clang/Lex/PreprocessorOptions.h"
-#include "clang/Options/Options.h"
#include "clang/Sema/Lookup.h"
#include "clang/Serialization/ObjectFilePCHContainerReader.h"
#include "llvm/ExecutionEngine/JITSymbol.h"
@@ -185,7 +185,7 @@ IncrementalCompilerBuilder::create(std::string TT,
llvm::ArrayRef<const char *> RF = llvm::ArrayRef(ClangArgv);
std::unique_ptr<driver::Compilation> Compilation(Driver.BuildCompilation(RF));
- if (Compilation->getArgs().hasArg(options::OPT_v))
+ if (Compilation->getArgs().hasArg(driver::options::OPT_v))
Compilation->getJobs().Print(llvm::errs(), "\n", /*Quote=*/false);
auto ErrOrCC1Args = GetCC1Arguments(&Diags, Compilation.get());
diff --git a/clang/lib/Interpreter/InterpreterUtils.h b/clang/lib/Interpreter/InterpreterUtils.h
index 4efe8b9fbc6cc..fbf9814b0d4a7 100644
--- a/clang/lib/Interpreter/InterpreterUtils.h
+++ b/clang/lib/Interpreter/InterpreterUtils.h
@@ -21,11 +21,11 @@
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/Job.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/Tool.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/TextDiagnosticBuffer.h"
#include "clang/Lex/PreprocessorOptions.h"
-#include "clang/Options/Options.h"
#include "clang/Sema/Lookup.h"
#include "llvm/IR/Module.h"
diff --git a/clang/lib/Options/CMakeLists.txt b/clang/lib/Options/CMakeLists.txt
deleted file mode 100644
index a762e9918b41c..0000000000000
--- a/clang/lib/Options/CMakeLists.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-set(LLVM_LINK_COMPONENTS
- Option
- Support
-)
-
-add_clang_library(clangOptions
- DriverOptions.cpp
- OptionUtils.cpp
-
- DEPENDS
- ClangDriverOptions
- # These generated headers are included transitively.
- target_parser_gen
-
- LINK_LIBS
- clangBasic
- ${system_libs}
-)
diff --git a/clang/lib/Tooling/CMakeLists.txt b/clang/lib/Tooling/CMakeLists.txt
index faaa53276d0e6..fc1f1f9f9d367 100644
--- a/clang/lib/Tooling/CMakeLists.txt
+++ b/clang/lib/Tooling/CMakeLists.txt
@@ -40,7 +40,6 @@ add_clang_library(clangTooling
clangASTMatchers
clangBasic
clangDriver
- clangOptions
clangFormat
clangFrontend
clangLex
diff --git a/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp b/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp
index e9b72388ae4df..28568426a6c48 100644
--- a/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp
+++ b/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp
@@ -44,8 +44,8 @@
#include "clang/Basic/LangStandard.h"
#include "clang/Driver/Driver.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/Types.h"
-#include "clang/Options/Options.h"
#include "clang/Tooling/CompilationDatabase.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
@@ -164,11 +164,11 @@ struct TransferableCommand {
// We parse each argument individually so that we can retain the exact
// spelling of each argument; re-rendering is lossy for aliased flags.
// E.g. in CL mode, /W4 maps to -Wall.
- auto &OptTable = getDriverOptTable();
+ auto &OptTable = clang::driver::getDriverOptTable();
if (!OldArgs.empty())
Cmd.CommandLine.emplace_back(OldArgs.front());
for (unsigned Pos = 1; Pos < OldArgs.size();) {
- using namespace options;
+ using namespace driver::options;
const unsigned OldPos = Pos;
std::unique_ptr<llvm::opt::Arg> Arg(OptTable.ParseOneArg(
@@ -296,14 +296,14 @@ struct TransferableCommand {
// Try to interpret the argument as a type specifier, e.g. '-x'.
std::optional<types::ID> tryParseTypeArg(const llvm::opt::Arg &Arg) {
const llvm::opt::Option &Opt = Arg.getOption();
- using namespace options;
+ using namespace driver::options;
if (ClangCLMode) {
if (Opt.matches(OPT__SLASH_TC) || Opt.matches(OPT__SLASH_Tc))
return types::TY_C;
if (Opt.matches(OPT__SLASH_TP) || Opt.matches(OPT__SLASH_Tp))
return types::TY_CXX;
} else {
- if (Opt.matches(options::OPT_x))
+ if (Opt.matches(driver::options::OPT_x))
return types::lookupTypeForTypeSpecifier(Arg.getValue());
}
return std::nullopt;
@@ -311,7 +311,7 @@ struct TransferableCommand {
// Try to interpret the argument as '-std='.
std::optional<LangStandard::Kind> tryParseStdArg(const llvm::opt::Arg &Arg) {
- using namespace options;
+ using namespace driver::options;
if (Arg.getOption().matches(ClangCLMode ? OPT__SLASH_std : OPT_std_EQ)) {
// "c++latest" is not a recognized LangStandard, but it's accepted by
// the clang driver in CL mode.
diff --git a/clang/lib/Tooling/Tooling.cpp b/clang/lib/Tooling/Tooling.cpp
index 1f6a5c94601fc..e8eef5ed9c9fa 100644
--- a/clang/lib/Tooling/Tooling.cpp
+++ b/clang/lib/Tooling/Tooling.cpp
@@ -21,6 +21,7 @@
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/Job.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/Tool.h"
#include "clang/Driver/ToolChain.h"
#include "clang/Frontend/ASTUnit.h"
@@ -31,7 +32,6 @@
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "clang/Lex/HeaderSearchOptions.h"
#include "clang/Lex/PreprocessorOptions.h"
-#include "clang/Options/Options.h"
#include "clang/Tooling/ArgumentsAdjusters.h"
#include "clang/Tooling/CompilationDatabase.h"
#include "llvm/ADT/ArrayRef.h"
@@ -270,15 +270,17 @@ void addTargetAndModeForProgramName(std::vector<std::string> &CommandLine,
StringRef InvokedAs) {
if (CommandLine.empty() || InvokedAs.empty())
return;
- const auto &Table = getDriverOptTable();
+ const auto &Table = driver::getDriverOptTable();
// --target=X
- StringRef TargetOPT = Table.getOption(options::OPT_target).getPrefixedName();
+ StringRef TargetOPT =
+ Table.getOption(driver::options::OPT_target).getPrefixedName();
// -target X
StringRef TargetOPTLegacy =
- Table.getOption(options::OPT_target_legacy_spelling).getPrefixedName();
+ Table.getOption(driver::options::OPT_target_legacy_spelling)
+ .getPrefixedName();
// --driver-mode=X
StringRef DriverModeOPT =
- Table.getOption(options::OPT_driver_mode).getPrefixedName();
+ Table.getOption(driver::options::OPT_driver_mode).getPrefixedName();
auto TargetMode =
driver::ToolChain::getTargetAndModeFromProgramName(InvokedAs);
// No need to search for target args if we don't have a target/mode to insert.
diff --git a/clang/tools/clang-check/CMakeLists.txt b/clang/tools/clang-check/CMakeLists.txt
index 1efcc91fcaec9..5493aa4237aee 100644
--- a/clang/tools/clang-check/CMakeLists.txt
+++ b/clang/tools/clang-check/CMakeLists.txt
@@ -14,7 +14,6 @@ clang_target_link_libraries(clang-check
clangBasic
clangDriver
clangFrontend
- clangOptions
clangRewriteFrontend
clangSerialization
clangStaticAnalyzerFrontend
diff --git a/clang/tools/clang-check/ClangCheck.cpp b/clang/tools/clang-check/ClangCheck.cpp
index 80255c647b98f..fa6dd06a1ee58 100644
--- a/clang/tools/clang-check/ClangCheck.cpp
+++ b/clang/tools/clang-check/ClangCheck.cpp
@@ -16,9 +16,9 @@
//===----------------------------------------------------------------------===//
#include "clang/AST/ASTConsumer.h"
+#include "clang/Driver/Options.h"
#include "clang/Frontend/ASTConsumers.h"
#include "clang/Frontend/CompilerInstance.h"
-#include "clang/Options/Options.h"
#include "clang/Rewrite/Frontend/FixItRewriter.h"
#include "clang/Rewrite/Frontend/FrontendActions.h"
#include "clang/StaticAnalyzer/Frontend/FrontendActions.h"
@@ -34,8 +34,8 @@
#include "llvm/Support/Signals.h"
#include "llvm/Support/TargetSelect.h"
+using namespace clang::driver;
using namespace clang::tooling;
-using namespace clang;
using namespace llvm;
static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage);
diff --git a/clang/tools/clang-installapi/CMakeLists.txt b/clang/tools/clang-installapi/CMakeLists.txt
index 54bc80486472f..9c0d9dff7dc7f 100644
--- a/clang/tools/clang-installapi/CMakeLists.txt
+++ b/clang/tools/clang-installapi/CMakeLists.txt
@@ -25,7 +25,6 @@ clang_target_link_libraries(clang-installapi
clangAST
clangInstallAPI
clangBasic
- clangOptions
clangDriver
clangFrontend
clangTooling
diff --git a/clang/tools/clang-installapi/ClangInstallAPI.cpp b/clang/tools/clang-installapi/ClangInstallAPI.cpp
index 8bef9690ad855..4e66485343b89 100644
--- a/clang/tools/clang-installapi/ClangInstallAPI.cpp
+++ b/clang/tools/clang-installapi/ClangInstallAPI.cpp
@@ -35,7 +35,7 @@
using namespace clang;
using namespace clang::installapi;
-using namespace clang::options;
+using namespace clang::driver::options;
using namespace llvm::opt;
using namespace llvm::MachO;
@@ -71,7 +71,7 @@ static bool runFrontend(StringRef ProgName, Twine Label, bool Verbose,
static bool run(ArrayRef<const char *> Args, const char *ProgName) {
// Setup Diagnostics engine.
DiagnosticOptions DiagOpts;
- const llvm::opt::OptTable &ClangOpts = getDriverOptTable();
+ const llvm::opt::OptTable &ClangOpts = clang::driver::getDriverOptTable();
unsigned MissingArgIndex, MissingArgCount;
llvm::opt::InputArgList ParsedArgs = ClangOpts.ParseArgs(
ArrayRef(Args).slice(1), MissingArgIndex, MissingArgCount);
diff --git a/clang/tools/clang-installapi/Options.cpp b/clang/tools/clang-installapi/Options.cpp
index f484d6f33ad8f..64324a3f8b010 100644
--- a/clang/tools/clang-installapi/Options.cpp
+++ b/clang/tools/clang-installapi/Options.cpp
@@ -26,6 +26,8 @@ using namespace llvm;
using namespace llvm::opt;
using namespace llvm::MachO;
+namespace drv = clang::driver::options;
+
namespace clang {
namespace installapi {
@@ -107,7 +109,7 @@ getArgListFromJSON(const StringRef Input, llvm::opt::OptTable *Table,
bool Options::processDriverOptions(InputArgList &Args) {
// Handle inputs.
- for (const StringRef Path : Args.getAllArgValues(options::OPT_INPUT)) {
+ for (const StringRef Path : Args.getAllArgValues(drv::OPT_INPUT)) {
// Assume any input that is not a directory is a filelist.
// InstallAPI does not accept multiple directories, so retain the last one.
if (FM->getOptionalDirectoryRef(Path))
@@ -118,7 +120,7 @@ bool Options::processDriverOptions(InputArgList &Args) {
// Handle output.
SmallString<PATH_MAX> OutputPath;
- if (auto *Arg = Args.getLastArg(options::OPT_o)) {
+ if (auto *Arg = Args.getLastArg(drv::OPT_o)) {
OutputPath = Arg->getValue();
if (OutputPath != "-")
FM->makeAbsolutePath(OutputPath);
@@ -130,10 +132,10 @@ bool Options::processDriverOptions(InputArgList &Args) {
}
// Do basic error checking first for mixing -target and -arch options.
- auto *ArgArch = Args.getLastArgNoClaim(options::OPT_arch);
- auto *ArgTarget = Args.getLastArgNoClaim(options::OPT_target);
+ auto *ArgArch = Args.getLastArgNoClaim(drv::OPT_arch);
+ auto *ArgTarget = Args.getLastArgNoClaim(drv::OPT_target);
auto *ArgTargetVariant =
- Args.getLastArgNoClaim(options::OPT_darwin_target_variant);
+ Args.getLastArgNoClaim(drv::OPT_darwin_target_variant);
if (ArgArch && (ArgTarget || ArgTargetVariant)) {
Diags->Report(clang::diag::err_drv_argument_not_allowed_with)
<< ArgArch->getAsString(Args)
@@ -141,7 +143,7 @@ bool Options::processDriverOptions(InputArgList &Args) {
return false;
}
- auto *ArgMinTargetOS = Args.getLastArgNoClaim(options::OPT_mtargetos_EQ);
+ auto *ArgMinTargetOS = Args.getLastArgNoClaim(drv::OPT_mtargetos_EQ);
if ((ArgTarget || ArgTargetVariant) && ArgMinTargetOS) {
Diags->Report(clang::diag::err_drv_cannot_mix_options)
<< ArgTarget->getAsString(Args) << ArgMinTargetOS->getAsString(Args);
@@ -150,7 +152,7 @@ bool Options::processDriverOptions(InputArgList &Args) {
// Capture target triples first.
if (ArgTarget) {
- for (const Arg *A : Args.filtered(options::OPT_target)) {
+ for (const Arg *A : Args.filtered(drv::OPT_target)) {
A->claim();
llvm::Triple TargetTriple(A->getValue());
Target TAPITarget = Target(TargetTriple);
@@ -166,7 +168,7 @@ bool Options::processDriverOptions(InputArgList &Args) {
// Capture target variants.
DriverOpts.Zippered = ArgTargetVariant != nullptr;
- for (Arg *A : Args.filtered(options::OPT_darwin_target_variant)) {
+ for (Arg *A : Args.filtered(drv::OPT_darwin_target_variant)) {
A->claim();
Triple Variant(A->getValue());
if (Variant.getVendor() != Triple::Apple) {
@@ -211,7 +213,7 @@ bool Options::processDriverOptions(InputArgList &Args) {
DriverOpts.Targets[TAPIVariant] = Variant;
}
- DriverOpts.Verbose = Args.hasArgNoClaim(options::OPT_v);
+ DriverOpts.Verbose = Args.hasArgNoClaim(drv::OPT_v);
return true;
}
@@ -405,7 +407,7 @@ bool Options::processOptionList(InputArgList &Args,
bool Options::processLinkerOptions(InputArgList &Args) {
// Handle required arguments.
- if (const Arg *A = Args.getLastArg(options::OPT_install__name))
+ if (const Arg *A = Args.getLastArg(drv::OPT_install__name))
LinkerOpts.InstallName = A->getValue();
if (LinkerOpts.InstallName.empty()) {
Diags->Report(diag::err_no_install_name);
@@ -413,29 +415,28 @@ bool Options::processLinkerOptions(InputArgList &Args) {
}
// Defaulted or optional arguments.
- if (auto *Arg = Args.getLastArg(options::OPT_current__version))
+ if (auto *Arg = Args.getLastArg(drv::OPT_current__version))
LinkerOpts.CurrentVersion.parse64(Arg->getValue());
- if (auto *Arg = Args.getLastArg(options::OPT_compatibility__version))
+ if (auto *Arg = Args.getLastArg(drv::OPT_compatibility__version))
LinkerOpts.CompatVersion.parse64(Arg->getValue());
- if (auto *Arg = Args.getLastArg(options::OPT_compatibility__version))
+ if (auto *Arg = Args.getLastArg(drv::OPT_compatibility__version))
LinkerOpts.CompatVersion.parse64(Arg->getValue());
- if (auto *Arg = Args.getLastArg(options::OPT_umbrella))
+ if (auto *Arg = Args.getLastArg(drv::OPT_umbrella))
LinkerOpts.ParentUmbrella = Arg->getValue();
- LinkerOpts.IsDylib = Args.hasArg(options::OPT_dynamiclib);
+ LinkerOpts.IsDylib = Args.hasArg(drv::OPT_dynamiclib);
- for (auto *Arg : Args.filtered(options::OPT_alias_list)) {
+ for (auto *Arg : Args.filtered(drv::OPT_alias_list)) {
LinkerOpts.AliasLists.emplace_back(Arg->getValue());
Arg->claim();
}
- LinkerOpts.AppExtensionSafe =
- Args.hasFlag(options::OPT_fapplication_extension,
- options::OPT_fno_application_extension,
- /*Default=*/LinkerOpts.AppExtensionSafe);
+ LinkerOpts.AppExtensionSafe = Args.hasFlag(
+ drv::OPT_fapplication_extension, drv::OPT_fno_application_extension,
+ /*Default=*/LinkerOpts.AppExtensionSafe);
if (::getenv("LD_NO_ENCRYPT") != nullptr)
LinkerOpts.AppExtensionSafe = true;
@@ -445,7 +446,7 @@ bool Options::processLinkerOptions(InputArgList &Args) {
// Capture library paths.
PathSeq LibraryPaths;
- for (const Arg *A : Args.filtered(options::OPT_L)) {
+ for (const Arg *A : Args.filtered(drv::OPT_L)) {
LibraryPaths.emplace_back(A->getValue());
A->claim();
}
@@ -460,7 +461,7 @@ bool Options::processLinkerOptions(InputArgList &Args) {
// invocations.
bool Options::processFrontendOptions(InputArgList &Args) {
// Capture language mode.
- if (auto *A = Args.getLastArgNoClaim(options::OPT_x)) {
+ if (auto *A = Args.getLastArgNoClaim(drv::OPT_x)) {
FEOpts.LangMode = llvm::StringSwitch<clang::Language>(A->getValue())
.Case("c", clang::Language::C)
.Case("c++", clang::Language::CXX)
@@ -474,15 +475,15 @@ bool Options::processFrontendOptions(InputArgList &Args) {
return false;
}
}
- for (auto *A : Args.filtered(options::OPT_ObjC, options::OPT_ObjCXX)) {
- if (A->getOption().matches(options::OPT_ObjC))
+ for (auto *A : Args.filtered(drv::OPT_ObjC, drv::OPT_ObjCXX)) {
+ if (A->getOption().matches(drv::OPT_ObjC))
FEOpts.LangMode = clang::Language::ObjC;
else
FEOpts.LangMode = clang::Language::ObjCXX;
}
// Capture Sysroot.
- if (const Arg *A = Args.getLastArgNoClaim(options::OPT_isysroot)) {
+ if (const Arg *A = Args.getLastArgNoClaim(drv::OPT_isysroot)) {
SmallString<PATH_MAX> Path(A->getValue());
FM->makeAbsolutePath(Path);
if (!FM->getOptionalDirectoryRef(Path)) {
@@ -501,13 +502,13 @@ bool Options::processFrontendOptions(InputArgList &Args) {
}
// Capture system frameworks for all platforms.
- for (const Arg *A : Args.filtered(options::OPT_iframework))
+ for (const Arg *A : Args.filtered(drv::OPT_iframework))
FEOpts.SystemFwkPaths.emplace_back(A->getValue(),
std::optional<PlatformType>{});
// Capture framework paths.
PathSeq FrameworkPaths;
- for (const Arg *A : Args.filtered(options::OPT_F))
+ for (const Arg *A : Args.filtered(drv::OPT_F))
FrameworkPaths.emplace_back(A->getValue());
if (!FrameworkPaths.empty())
diff --git a/clang/tools/driver/CMakeLists.txt b/clang/tools/driver/CMakeLists.txt
index 002aaef005253..d9d36f7a41359 100644
--- a/clang/tools/driver/CMakeLists.txt
+++ b/clang/tools/driver/CMakeLists.txt
@@ -63,7 +63,6 @@ clang_target_link_libraries(clang
clangDriver
clangFrontend
clangFrontendTool
- clangOptions
clangSerialization
)
diff --git a/clang/tools/driver/cc1_main.cpp b/clang/tools/driver/cc1_main.cpp
index 2aef75597fc5f..52cffa4ccbe1f 100644
--- a/clang/tools/driver/cc1_main.cpp
+++ b/clang/tools/driver/cc1_main.cpp
@@ -17,6 +17,7 @@
#include "clang/CodeGen/ObjectFilePCHContainerWriter.h"
#include "clang/Config/config.h"
#include "clang/Driver/DriverDiagnostic.h"
+#include "clang/Driver/Options.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/CompilerInvocation.h"
#include "clang/Frontend/FrontendDiagnostic.h"
@@ -24,7 +25,6 @@
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "clang/Frontend/Utils.h"
#include "clang/FrontendTool/Utils.h"
-#include "clang/Options/Options.h"
#include "clang/Serialization/ObjectFilePCHContainerReader.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/StringExtras.h"
diff --git a/clang/tools/driver/cc1as_main.cpp b/clang/tools/driver/cc1as_main.cpp
index f13812f2a8383..50da2f8449a22 100644
--- a/clang/tools/driver/cc1as_main.cpp
+++ b/clang/tools/driver/cc1as_main.cpp
@@ -14,10 +14,10 @@
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/DiagnosticOptions.h"
#include "clang/Driver/DriverDiagnostic.h"
+#include "clang/Driver/Options.h"
#include "clang/Frontend/FrontendDiagnostic.h"
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "clang/Frontend/Utils.h"
-#include "clang/Options/Options.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSwitch.h"
@@ -59,7 +59,8 @@
#include <optional>
#include <system_error>
using namespace clang;
-using namespace clang::options;
+using namespace clang::driver;
+using namespace clang::driver::options;
using namespace llvm;
using namespace llvm::opt;
@@ -687,7 +688,8 @@ int cc1as_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {
getDriverOptTable().printHelp(
llvm::outs(), "clang -cc1as [options] file...",
"Clang Integrated Assembler", /*ShowHidden=*/false,
- /*ShowAllAliases=*/false, llvm::opt::Visibility(options::CC1AsOption));
+ /*ShowAllAliases=*/false,
+ llvm::opt::Visibility(driver::options::CC1AsOption));
return 0;
}
diff --git a/clang/tools/driver/driver.cpp b/clang/tools/driver/driver.cpp
index 1e2c9884ba63d..7390d7d610ec0 100644
--- a/clang/tools/driver/driver.cpp
+++ b/clang/tools/driver/driver.cpp
@@ -18,13 +18,13 @@
#include "clang/Config/config.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/DriverDiagnostic.h"
+#include "clang/Driver/Options.h"
#include "clang/Driver/ToolChain.h"
#include "clang/Frontend/ChainedDiagnosticConsumer.h"
#include "clang/Frontend/CompilerInvocation.h"
#include "clang/Frontend/SerializedDiagnosticPrinter.h"
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "clang/Frontend/Utils.h"
-#include "clang/Options/Options.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
diff --git a/clang/unittests/Driver/DXCModeTest.cpp b/clang/unittests/Driver/DXCModeTest.cpp
index e0454f190b35a..62274235c53f5 100644
--- a/clang/unittests/Driver/DXCModeTest.cpp
+++ b/clang/unittests/Driver/DXCModeTest.cpp
@@ -131,8 +131,8 @@ TEST(DxcModeTest, ValidatorVersionValidation) {
TC.TranslateArgs(*DAL, "0", Action::OffloadKind::OFK_None)};
EXPECT_NE(TranslatedArgs, nullptr);
if (TranslatedArgs) {
- auto *A =
- TranslatedArgs->getLastArg(clang::options::OPT_dxil_validator_version);
+ auto *A = TranslatedArgs->getLastArg(
+ clang::driver::options::OPT_dxil_validator_version);
EXPECT_NE(A, nullptr);
if (A) {
EXPECT_STREQ(A->getValue(), "1.1");
diff --git a/clang/www/OpenProjects.html b/clang/www/OpenProjects.html
index 3e5e84b5b2ed4..ae0ec1d4d12cb 100755
--- a/clang/www/OpenProjects.html
+++ b/clang/www/OpenProjects.html
@@ -38,7 +38,7 @@ <h1>Open Clang Projects</h1>
<li>documenting <a href="https://github.com/llvm/llvm-project/blob/main/clang/include/clang/Basic/DiagnosticDocs.td">
diagnostic group flags</a> (adding code examples of what is diagnosed, or
other relevant information), or</li>
- <li>documenting <a href="https://github.com/llvm/llvm-project/blob/main/clang/include/clang/Options/Options.td">
+ <li>documenting <a href="https://github.com/llvm/llvm-project/blob/main/clang/include/clang/Driver/Options.td">
command line options</a>, or</li>
<li>help with completing other missing documentation.</li>
</ul>
diff --git a/flang/docs/CMakeLists.txt b/flang/docs/CMakeLists.txt
index b183d6add1059..568f942cb4aa6 100644
--- a/flang/docs/CMakeLists.txt
+++ b/flang/docs/CMakeLists.txt
@@ -88,7 +88,7 @@ function (gen_rst_file_from_td output_file td_option source target)
endif()
get_filename_component(TABLEGEN_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${source}" DIRECTORY)
list(APPEND LLVM_TABLEGEN_FLAGS "-I${TABLEGEN_INCLUDE_DIR}")
- list(APPEND LLVM_TABLEGEN_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}/../../clang/include/clang/Options/")
+ list(APPEND LLVM_TABLEGEN_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}/../../clang/include/clang/Driver/")
clang_tablegen(Source/${output_file} ${td_option} SOURCE ${source} TARGET ${target})
endfunction()
diff --git a/flang/docs/FlangDriver.md b/flang/docs/FlangDriver.md
index 9953f2252218b..3286171bb1499 100644
--- a/flang/docs/FlangDriver.md
+++ b/flang/docs/FlangDriver.md
@@ -76,7 +76,7 @@ will ignore it when used without `Xflang`.
As hinted above, `flang` and `flang -fc1` are two separate tools. The
fact that these tools are accessed through one binary, `flang`, is just an
implementation detail. Each tool has a separate list of options, albeit defined
-in the same file: `clang/include/clang/Options/Options.td`.
+in the same file: `clang/include/clang/Driver/Options.td`.
The separation helps us split various tasks and allows us to implement more
specialised tools. In particular, `flang` is not aware of various
@@ -112,7 +112,7 @@ in terms of Clang's driver library, `clangDriver`. This approach allows us to:
as linkers and assemblers.
One implication of this dependency on Clang is that all of Flang's compiler
options are defined alongside Clang's options in
-`clang/include/clang/Options/Options.td`. For options that are common for both
+`clang/include/clang/Driver/Options.td`. For options that are common for both
Flang and Clang, the corresponding definitions are shared.
Internally, a `clangDriver` based compiler driver works by creating actions
@@ -242,7 +242,7 @@ Adding a new compiler option in Flang consists of two steps:
### Option Definition
All of Flang's compiler and frontend driver options are defined in
-`clang/include/clang/Options/Options.td` in Clang. When adding a new option to
+`clang/include/clang/Driver/Options.td` in Clang. When adding a new option to
Flang, you will either:
* extend the existing definition for an option that is already available
in one of Clang's drivers (e.g. `clang`), but not yet available in Flang, or
@@ -314,7 +314,7 @@ add, you will have to add a dedicated entry in that enum (e.g.
`ParseSyntaxOnly` for `-fsyntax-only`) and a corresponding `case` in
`ParseFrontendArgs` function in the `CompilerInvocation.cpp` file, e.g.:
```cpp
- case clang::options::OPT_fsyntax_only:
+ case clang::driver::options::OPT_fsyntax_only:
opts.programAction = ParseSyntaxOnly;
break;
```
diff --git a/flang/lib/Frontend/CMakeLists.txt b/flang/lib/Frontend/CMakeLists.txt
index bb0b4a39cec9b..2b3bc0e9c2269 100644
--- a/flang/lib/Frontend/CMakeLists.txt
+++ b/flang/lib/Frontend/CMakeLists.txt
@@ -76,7 +76,6 @@ add_flang_library(flangFrontend
CLANG_LIBS
clangBasic
clangDriver
- clangOptions
)
target_precompile_headers(flangFrontend PRIVATE
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index a9bb78d690f46..f05c4cfccf7fc 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -26,8 +26,8 @@
#include "clang/Basic/DiagnosticOptions.h"
#include "clang/Driver/CommonArgs.h"
#include "clang/Driver/Driver.h"
-#include "clang/Options/OptionUtils.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/OptionUtils.h"
+#include "clang/Driver/Options.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSwitch.h"
@@ -82,11 +82,11 @@ static bool parseShowColorsArgs(const llvm::opt::ArgList &args,
for (auto *a : args) {
const llvm::opt::Option &opt = a->getOption();
- if (opt.matches(clang::options::OPT_fcolor_diagnostics)) {
+ if (opt.matches(clang::driver::options::OPT_fcolor_diagnostics)) {
showColors = Colors_On;
- } else if (opt.matches(clang::options::OPT_fno_color_diagnostics)) {
+ } else if (opt.matches(clang::driver::options::OPT_fno_color_diagnostics)) {
showColors = Colors_Off;
- } else if (opt.matches(clang::options::OPT_fdiagnostics_color_EQ)) {
+ } else if (opt.matches(clang::driver::options::OPT_fdiagnostics_color_EQ)) {
llvm::StringRef value(a->getValue());
if (value == "always")
showColors = Colors_On;
@@ -107,13 +107,15 @@ static unsigned getOptimizationLevel(llvm::opt::ArgList &args,
clang::DiagnosticsEngine &diags) {
unsigned defaultOpt = 0;
- if (llvm::opt::Arg *a = args.getLastArg(clang::options::OPT_O_Group)) {
- if (a->getOption().matches(clang::options::OPT_O0))
+ if (llvm::opt::Arg *a =
+ args.getLastArg(clang::driver::options::OPT_O_Group)) {
+ if (a->getOption().matches(clang::driver::options::OPT_O0))
return 0;
- assert(a->getOption().matches(clang::options::OPT_O));
+ assert(a->getOption().matches(clang::driver::options::OPT_O));
- return getLastArgIntValue(args, clang::options::OPT_O, defaultOpt, diags);
+ return getLastArgIntValue(args, clang::driver::options::OPT_O, defaultOpt,
+ diags);
}
return defaultOpt;
@@ -131,7 +133,7 @@ static bool parseDebugArgs(Fortran::frontend::CodeGenOptions &opts,
clang::DiagnosticsEngine &diags) {
using DebugInfoKind = llvm::codegenoptions::DebugInfoKind;
if (llvm::opt::Arg *arg =
- args.getLastArg(clang::options::OPT_debug_info_kind_EQ)) {
+ args.getLastArg(clang::driver::options::OPT_debug_info_kind_EQ)) {
std::optional<DebugInfoKind> val =
llvm::StringSwitch<std::optional<DebugInfoKind>>(arg->getValue())
.Case("line-tables-only", llvm::codegenoptions::DebugLineTablesOnly)
@@ -156,13 +158,13 @@ static bool parseDebugArgs(Fortran::frontend::CodeGenOptions &opts,
diags.Report(debugWarning) << arg->getValue();
}
opts.DwarfVersion =
- getLastArgIntValue(args, clang::options::OPT_dwarf_version_EQ,
+ getLastArgIntValue(args, clang::driver::options::OPT_dwarf_version_EQ,
/*Default=*/0, diags);
if (const llvm::opt::Arg *a =
- args.getLastArg(clang::options::OPT_split_dwarf_file))
+ args.getLastArg(clang::driver::options::OPT_split_dwarf_file))
opts.SplitDwarfFile = a->getValue();
if (const llvm::opt::Arg *a =
- args.getLastArg(clang::options::OPT_split_dwarf_output))
+ args.getLastArg(clang::driver::options::OPT_split_dwarf_output))
opts.SplitDwarfOutput = a->getValue();
}
return true;
@@ -172,7 +174,7 @@ static void parseDoConcurrentMapping(Fortran::frontend::CodeGenOptions &opts,
llvm::opt::ArgList &args,
clang::DiagnosticsEngine &diags) {
llvm::opt::Arg *arg =
- args.getLastArg(clang::options::OPT_fdo_concurrent_to_openmp_EQ);
+ args.getLastArg(clang::driver::options::OPT_fdo_concurrent_to_openmp_EQ);
if (!arg)
return;
@@ -197,7 +199,7 @@ static void parseDoConcurrentMapping(Fortran::frontend::CodeGenOptions &opts,
static bool parseVectorLibArg(Fortran::frontend::CodeGenOptions &opts,
llvm::opt::ArgList &args,
clang::DiagnosticsEngine &diags) {
- llvm::opt::Arg *arg = args.getLastArg(clang::options::OPT_fveclib);
+ llvm::opt::Arg *arg = args.getLastArg(clang::driver::options::OPT_fveclib);
if (!arg)
return true;
@@ -235,7 +237,7 @@ parseOptimizationRemark(clang::DiagnosticsEngine &diags,
CodeGenOptions::OptRemark result;
for (llvm::opt::Arg *a : args) {
- if (a->getOption().matches(clang::options::OPT_R_Joined)) {
+ if (a->getOption().matches(clang::driver::options::OPT_R_Joined)) {
llvm::StringRef value = a->getValue();
if (value == remarkOptName) {
@@ -272,39 +274,39 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
clang::DiagnosticsEngine &diags) {
opts.OptimizationLevel = getOptimizationLevel(args, diags);
- if (args.hasFlag(clang::options::OPT_fdebug_pass_manager,
- clang::options::OPT_fno_debug_pass_manager, false))
+ if (args.hasFlag(clang::driver::options::OPT_fdebug_pass_manager,
+ clang::driver::options::OPT_fno_debug_pass_manager, false))
opts.DebugPassManager = 1;
- if (args.hasFlag(clang::options::OPT_fstack_arrays,
- clang::options::OPT_fno_stack_arrays, false))
+ if (args.hasFlag(clang::driver::options::OPT_fstack_arrays,
+ clang::driver::options::OPT_fno_stack_arrays, false))
opts.StackArrays = 1;
- if (args.getLastArg(clang::options::OPT_floop_interchange))
+ if (args.getLastArg(clang::driver::options::OPT_floop_interchange))
opts.InterchangeLoops = 1;
- if (args.getLastArg(clang::options::OPT_fexperimental_loop_fusion))
+ if (args.getLastArg(clang::driver::options::OPT_fexperimental_loop_fusion))
opts.FuseLoops = 1;
- if (args.getLastArg(clang::options::OPT_vectorize_loops))
+ if (args.getLastArg(clang::driver::options::OPT_vectorize_loops))
opts.VectorizeLoop = 1;
- if (args.getLastArg(clang::options::OPT_vectorize_slp))
+ if (args.getLastArg(clang::driver::options::OPT_vectorize_slp))
opts.VectorizeSLP = 1;
- if (args.hasFlag(clang::options::OPT_floop_versioning,
- clang::options::OPT_fno_loop_versioning, false))
+ if (args.hasFlag(clang::driver::options::OPT_floop_versioning,
+ clang::driver::options::OPT_fno_loop_versioning, false))
opts.LoopVersioning = 1;
- opts.UnrollLoops = args.hasFlag(clang::options::OPT_funroll_loops,
- clang::options::OPT_fno_unroll_loops,
+ opts.UnrollLoops = args.hasFlag(clang::driver::options::OPT_funroll_loops,
+ clang::driver::options::OPT_fno_unroll_loops,
(opts.OptimizationLevel > 1));
opts.AliasAnalysis = opts.OptimizationLevel > 0;
// -mframe-pointer=none/non-leaf/reserved/all option.
if (const llvm::opt::Arg *a =
- args.getLastArg(clang::options::OPT_mframe_pointer_EQ)) {
+ args.getLastArg(clang::driver::options::OPT_mframe_pointer_EQ)) {
std::optional<llvm::FramePointerKind> val =
llvm::StringSwitch<std::optional<llvm::FramePointerKind>>(a->getValue())
.Case("none", llvm::FramePointerKind::None)
@@ -320,7 +322,7 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
opts.setFramePointer(val.value());
}
- for (auto *a : args.filtered(clang::options::OPT_fpass_plugin_EQ))
+ for (auto *a : args.filtered(clang::driver::options::OPT_fpass_plugin_EQ))
opts.LLVMPassPlugins.push_back(a->getValue());
opts.Reciprocals = clang::driver::tools::parseMRecipOption(diags, args);
@@ -329,14 +331,15 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
clang::driver::tools::parseMPreferVectorWidthOption(diags, args);
// -fembed-offload-object option
- for (auto *a : args.filtered(clang::options::OPT_fembed_offload_object_EQ))
+ for (auto *a :
+ args.filtered(clang::driver::options::OPT_fembed_offload_object_EQ))
opts.OffloadObjects.push_back(a->getValue());
- if (args.hasArg(clang::options::OPT_finstrument_functions))
+ if (args.hasArg(clang::driver::options::OPT_finstrument_functions))
opts.InstrumentFunctions = 1;
- if (const llvm::opt::Arg *a =
- args.getLastArg(clang::options::OPT_mcode_object_version_EQ)) {
+ if (const llvm::opt::Arg *a = args.getLastArg(
+ clang::driver::options::OPT_mcode_object_version_EQ)) {
llvm::StringRef s = a->getValue();
if (s == "6")
opts.CodeObjectVersion = llvm::CodeObjectVersionKind::COV_6;
@@ -350,36 +353,36 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
// -f[no-]save-optimization-record[=<format>]
if (const llvm::opt::Arg *a =
- args.getLastArg(clang::options::OPT_opt_record_file))
+ args.getLastArg(clang::driver::options::OPT_opt_record_file))
opts.OptRecordFile = a->getValue();
// Optimization file format. Defaults to yaml
if (const llvm::opt::Arg *a =
- args.getLastArg(clang::options::OPT_opt_record_format))
+ args.getLastArg(clang::driver::options::OPT_opt_record_format))
opts.OptRecordFormat = a->getValue();
// Specifies, using a regex, which successful optimization passes(middle and
// backend), to include in the final optimization record file generated. If
// not provided -fsave-optimization-record will include all passes.
if (const llvm::opt::Arg *a =
- args.getLastArg(clang::options::OPT_opt_record_passes))
+ args.getLastArg(clang::driver::options::OPT_opt_record_passes))
opts.OptRecordPasses = a->getValue();
// Create OptRemark that allows printing of all successful optimization
// passes applied.
opts.OptimizationRemark =
- parseOptimizationRemark(diags, args, clang::options::OPT_Rpass_EQ,
+ parseOptimizationRemark(diags, args, clang::driver::options::OPT_Rpass_EQ,
/*remarkOptName=*/"pass");
// Create OptRemark that allows all missed optimization passes to be printed.
- opts.OptimizationRemarkMissed =
- parseOptimizationRemark(diags, args, clang::options::OPT_Rpass_missed_EQ,
- /*remarkOptName=*/"pass-missed");
+ opts.OptimizationRemarkMissed = parseOptimizationRemark(
+ diags, args, clang::driver::options::OPT_Rpass_missed_EQ,
+ /*remarkOptName=*/"pass-missed");
// Create OptRemark that allows all optimization decisions made by LLVM
// to be printed.
opts.OptimizationRemarkAnalysis = parseOptimizationRemark(
- diags, args, clang::options::OPT_Rpass_analysis_EQ,
+ diags, args, clang::driver::options::OPT_Rpass_analysis_EQ,
/*remarkOptName=*/"pass-analysis");
if (opts.getDebugInfo() == llvm::codegenoptions::NoDebugInfo) {
@@ -397,22 +400,23 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
opts.setDebugInfo(llvm::codegenoptions::LocTrackingOnly);
}
- if (auto *a = args.getLastArg(clang::options::OPT_save_temps_EQ))
+ if (auto *a = args.getLastArg(clang::driver::options::OPT_save_temps_EQ))
opts.SaveTempsDir = a->getValue();
// -record-command-line option.
if (const llvm::opt::Arg *a =
- args.getLastArg(clang::options::OPT_record_command_line)) {
+ args.getLastArg(clang::driver::options::OPT_record_command_line)) {
opts.RecordCommandLine = a->getValue();
}
// -mlink-builtin-bitcode
- for (auto *a : args.filtered(clang::options::OPT_mlink_builtin_bitcode))
+ for (auto *a :
+ args.filtered(clang::driver::options::OPT_mlink_builtin_bitcode))
opts.BuiltinBCLibs.push_back(a->getValue());
// -mrelocation-model option.
if (const llvm::opt::Arg *a =
- args.getLastArg(clang::options::OPT_mrelocation_model)) {
+ args.getLastArg(clang::driver::options::OPT_mrelocation_model)) {
llvm::StringRef modelName = a->getValue();
auto relocModel =
llvm::StringSwitch<std::optional<llvm::Reloc::Model>>(modelName)
@@ -431,30 +435,31 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
}
// -pic-level and -pic-is-pie option.
- if (int picLevel =
- getLastArgIntValue(args, clang::options::OPT_pic_level, 0, diags)) {
+ if (int picLevel = getLastArgIntValue(
+ args, clang::driver::options::OPT_pic_level, 0, diags)) {
if (picLevel > 2)
diags.Report(clang::diag::err_drv_invalid_value)
- << args.getLastArg(clang::options::OPT_pic_level)->getAsString(args)
+ << args.getLastArg(clang::driver::options::OPT_pic_level)
+ ->getAsString(args)
<< picLevel;
opts.PICLevel = picLevel;
- if (args.hasArg(clang::options::OPT_pic_is_pie))
+ if (args.hasArg(clang::driver::options::OPT_pic_is_pie))
opts.IsPIE = 1;
}
- if (args.hasArg(clang::options::OPT_fprofile_generate)) {
+ if (args.hasArg(clang::driver::options::OPT_fprofile_generate)) {
opts.setProfileInstr(llvm::driver::ProfileInstrKind::ProfileIRInstr);
}
- if (auto A = args.getLastArg(clang::options::OPT_fprofile_use_EQ)) {
+ if (auto A = args.getLastArg(clang::driver::options::OPT_fprofile_use_EQ)) {
opts.setProfileUse(llvm::driver::ProfileInstrKind::ProfileIRInstr);
opts.ProfileInstrumentUsePath = A->getValue();
}
// -mcmodel option.
if (const llvm::opt::Arg *a =
- args.getLastArg(clang::options::OPT_mcmodel_EQ)) {
+ args.getLastArg(clang::driver::options::OPT_mcmodel_EQ)) {
llvm::StringRef modelName = a->getValue();
std::optional<llvm::CodeModel::Model> codeModel = getCodeModel(modelName);
@@ -465,8 +470,8 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
<< a->getAsString(args) << modelName;
}
- if (const llvm::opt::Arg *arg =
- args.getLastArg(clang::options::OPT_mlarge_data_threshold_EQ)) {
+ if (const llvm::opt::Arg *arg = args.getLastArg(
+ clang::driver::options::OPT_mlarge_data_threshold_EQ)) {
uint64_t LDT;
if (llvm::StringRef(arg->getValue()).getAsInteger(/*Radix=*/10, LDT)) {
diags.Report(clang::diag::err_drv_invalid_value)
@@ -476,15 +481,15 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
}
// This option is compatible with -f[no-]underscoring in gfortran.
- if (args.hasFlag(clang::options::OPT_fno_underscoring,
- clang::options::OPT_funderscoring, false)) {
+ if (args.hasFlag(clang::driver::options::OPT_fno_underscoring,
+ clang::driver::options::OPT_funderscoring, false)) {
opts.Underscoring = 0;
}
parseDoConcurrentMapping(opts, args, diags);
if (const llvm::opt::Arg *arg =
- args.getLastArg(clang::options::OPT_complex_range_EQ)) {
+ args.getLastArg(clang::driver::options::OPT_complex_range_EQ)) {
llvm::StringRef argValue = llvm::StringRef(arg->getValue());
if (argValue == "full") {
opts.setComplexRange(CodeGenOptions::ComplexRangeKind::CX_Full);
@@ -505,42 +510,46 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
/// \param [in] opts The target options instance to update
/// \param [in] args The list of input arguments (from the compiler invocation)
static void parseTargetArgs(TargetOptions &opts, llvm::opt::ArgList &args) {
- if (const llvm::opt::Arg *a = args.getLastArg(clang::options::OPT_triple))
+ if (const llvm::opt::Arg *a =
+ args.getLastArg(clang::driver::options::OPT_triple))
opts.triple = a->getValue();
- opts.atomicIgnoreDenormalMode =
- args.hasFlag(clang::options::OPT_fatomic_ignore_denormal_mode,
- clang::options::OPT_fno_atomic_ignore_denormal_mode, false);
- opts.atomicFineGrainedMemory =
- args.hasFlag(clang::options::OPT_fatomic_fine_grained_memory,
- clang::options::OPT_fno_atomic_fine_grained_memory, false);
+ opts.atomicIgnoreDenormalMode = args.hasFlag(
+ clang::driver::options::OPT_fatomic_ignore_denormal_mode,
+ clang::driver::options::OPT_fno_atomic_ignore_denormal_mode, false);
+ opts.atomicFineGrainedMemory = args.hasFlag(
+ clang::driver::options::OPT_fatomic_fine_grained_memory,
+ clang::driver::options::OPT_fno_atomic_fine_grained_memory, false);
opts.atomicRemoteMemory =
- args.hasFlag(clang::options::OPT_fatomic_remote_memory,
- clang::options::OPT_fno_atomic_remote_memory, false);
+ args.hasFlag(clang::driver::options::OPT_fatomic_remote_memory,
+ clang::driver::options::OPT_fno_atomic_remote_memory, false);
- if (const llvm::opt::Arg *a = args.getLastArg(clang::options::OPT_target_cpu))
+ if (const llvm::opt::Arg *a =
+ args.getLastArg(clang::driver::options::OPT_target_cpu))
opts.cpu = a->getValue();
- if (const llvm::opt::Arg *a = args.getLastArg(clang::options::OPT_tune_cpu))
+ if (const llvm::opt::Arg *a =
+ args.getLastArg(clang::driver::options::OPT_tune_cpu))
opts.cpuToTuneFor = a->getValue();
for (const llvm::opt::Arg *currentArg :
- args.filtered(clang::options::OPT_target_feature))
+ args.filtered(clang::driver::options::OPT_target_feature))
opts.featuresAsWritten.emplace_back(currentArg->getValue());
- if (args.hasArg(clang::options::OPT_fdisable_real_10))
+ if (args.hasArg(clang::driver::options::OPT_fdisable_real_10))
opts.disabledRealKinds.push_back(10);
- if (args.hasArg(clang::options::OPT_fdisable_real_3))
+ if (args.hasArg(clang::driver::options::OPT_fdisable_real_3))
opts.disabledRealKinds.push_back(3);
- if (args.hasArg(clang::options::OPT_fdisable_integer_2))
+ if (args.hasArg(clang::driver::options::OPT_fdisable_integer_2))
opts.disabledIntegerKinds.push_back(2);
- if (args.hasArg(clang::options::OPT_fdisable_integer_16))
+ if (args.hasArg(clang::driver::options::OPT_fdisable_integer_16))
opts.disabledIntegerKinds.push_back(16);
- if (const llvm::opt::Arg *a = args.getLastArg(clang::options::OPT_mabi_EQ)) {
+ if (const llvm::opt::Arg *a =
+ args.getLastArg(clang::driver::options::OPT_mabi_EQ)) {
opts.abi = a->getValue();
llvm::StringRef V = a->getValue();
if (V == "vec-extabi") {
@@ -550,8 +559,9 @@ static void parseTargetArgs(TargetOptions &opts, llvm::opt::ArgList &args) {
}
}
- opts.asmVerbose = args.hasFlag(clang::options::OPT_fverbose_asm,
- clang::options::OPT_fno_verbose_asm, false);
+ opts.asmVerbose =
+ args.hasFlag(clang::driver::options::OPT_fverbose_asm,
+ clang::driver::options::OPT_fno_verbose_asm, false);
}
// Tweak the frontend configuration based on the frontend action
static void setUpFrontendBasedOnAction(FrontendOptions &opts) {
@@ -584,11 +594,11 @@ static bool parseFrontendArgs(FrontendOptions &opts, llvm::opt::ArgList &args,
// Treat multiple action options as an invocation error. Note that `clang
// -cc1` does accept multiple action options, but will only consider the
// rightmost one.
- if (args.hasMultipleArgs(clang::options::OPT_Action_Group)) {
+ if (args.hasMultipleArgs(clang::driver::options::OPT_Action_Group)) {
llvm::SmallString<32> buf;
llvm::raw_svector_ostream os(buf);
for (const llvm::opt::Arg *arg :
- args.filtered(clang::options::OPT_Action_Group)) {
+ args.filtered(clang::driver::options::OPT_Action_Group)) {
if (buf.size())
os << ", ";
os << "'" << arg->getSpelling() << "'";
@@ -599,99 +609,99 @@ static bool parseFrontendArgs(FrontendOptions &opts, llvm::opt::ArgList &args,
// Identify the action (i.e. opts.ProgramAction)
if (const llvm::opt::Arg *a =
- args.getLastArg(clang::options::OPT_Action_Group)) {
+ args.getLastArg(clang::driver::options::OPT_Action_Group)) {
switch (a->getOption().getID()) {
default: {
llvm_unreachable("Invalid option in group!");
}
- case clang::options::OPT_test_io:
+ case clang::driver::options::OPT_test_io:
opts.programAction = InputOutputTest;
break;
- case clang::options::OPT_E:
+ case clang::driver::options::OPT_E:
opts.programAction = PrintPreprocessedInput;
break;
- case clang::options::OPT_fsyntax_only:
+ case clang::driver::options::OPT_fsyntax_only:
opts.programAction = ParseSyntaxOnly;
break;
- case clang::options::OPT_emit_fir:
+ case clang::driver::options::OPT_emit_fir:
opts.programAction = EmitFIR;
break;
- case clang::options::OPT_emit_hlfir:
+ case clang::driver::options::OPT_emit_hlfir:
opts.programAction = EmitHLFIR;
break;
- case clang::options::OPT_emit_llvm:
+ case clang::driver::options::OPT_emit_llvm:
opts.programAction = EmitLLVM;
break;
- case clang::options::OPT_emit_llvm_bc:
+ case clang::driver::options::OPT_emit_llvm_bc:
opts.programAction = EmitLLVMBitcode;
break;
- case clang::options::OPT_emit_obj:
+ case clang::driver::options::OPT_emit_obj:
opts.programAction = EmitObj;
break;
- case clang::options::OPT_S:
+ case clang::driver::options::OPT_S:
opts.programAction = EmitAssembly;
break;
- case clang::options::OPT_fdebug_unparse:
+ case clang::driver::options::OPT_fdebug_unparse:
opts.programAction = DebugUnparse;
break;
- case clang::options::OPT_fdebug_unparse_no_sema:
+ case clang::driver::options::OPT_fdebug_unparse_no_sema:
opts.programAction = DebugUnparseNoSema;
break;
- case clang::options::OPT_fdebug_unparse_with_symbols:
+ case clang::driver::options::OPT_fdebug_unparse_with_symbols:
opts.programAction = DebugUnparseWithSymbols;
break;
- case clang::options::OPT_fdebug_unparse_with_modules:
+ case clang::driver::options::OPT_fdebug_unparse_with_modules:
opts.programAction = DebugUnparseWithModules;
break;
- case clang::options::OPT_fdebug_dump_symbols:
+ case clang::driver::options::OPT_fdebug_dump_symbols:
opts.programAction = DebugDumpSymbols;
break;
- case clang::options::OPT_fdebug_dump_parse_tree:
+ case clang::driver::options::OPT_fdebug_dump_parse_tree:
opts.programAction = DebugDumpParseTree;
break;
- case clang::options::OPT_fdebug_dump_pft:
+ case clang::driver::options::OPT_fdebug_dump_pft:
opts.programAction = DebugDumpPFT;
break;
- case clang::options::OPT_fdebug_dump_all:
+ case clang::driver::options::OPT_fdebug_dump_all:
opts.programAction = DebugDumpAll;
break;
- case clang::options::OPT_fdebug_dump_parse_tree_no_sema:
+ case clang::driver::options::OPT_fdebug_dump_parse_tree_no_sema:
opts.programAction = DebugDumpParseTreeNoSema;
break;
- case clang::options::OPT_fdebug_dump_provenance:
+ case clang::driver::options::OPT_fdebug_dump_provenance:
opts.programAction = DebugDumpProvenance;
break;
- case clang::options::OPT_fdebug_dump_parsing_log:
+ case clang::driver::options::OPT_fdebug_dump_parsing_log:
opts.programAction = DebugDumpParsingLog;
break;
- case clang::options::OPT_fdebug_measure_parse_tree:
+ case clang::driver::options::OPT_fdebug_measure_parse_tree:
opts.programAction = DebugMeasureParseTree;
break;
- case clang::options::OPT_fdebug_pre_fir_tree:
+ case clang::driver::options::OPT_fdebug_pre_fir_tree:
opts.programAction = DebugPreFIRTree;
break;
- case clang::options::OPT_fget_symbols_sources:
+ case clang::driver::options::OPT_fget_symbols_sources:
opts.programAction = GetSymbolsSources;
break;
- case clang::options::OPT_fget_definition:
+ case clang::driver::options::OPT_fget_definition:
opts.programAction = GetDefinition;
break;
- case clang::options::OPT_init_only:
+ case clang::driver::options::OPT_init_only:
opts.programAction = InitOnly;
break;
// TODO:
- // case clang::options::OPT_emit_llvm:
- // case clang::options::OPT_emit_llvm_only:
- // case clang::options::OPT_emit_codegen_only:
- // case clang::options::OPT_emit_module:
+ // case clang::driver::options::OPT_emit_llvm:
+ // case clang::driver::options::OPT_emit_llvm_only:
+ // case clang::driver::options::OPT_emit_codegen_only:
+ // case clang::driver::options::OPT_emit_module:
// (...)
}
// Parse the values provided with `-fget-definition` (there should be 3
// integers)
if (llvm::opt::OptSpecifier(a->getOption().getID()) ==
- clang::options::OPT_fget_definition) {
+ clang::driver::options::OPT_fget_definition) {
unsigned optVals[3] = {0, 0, 0};
for (unsigned i = 0; i < 3; i++) {
@@ -711,25 +721,27 @@ static bool parseFrontendArgs(FrontendOptions &opts, llvm::opt::ArgList &args,
}
// Parsing -load <dsopath> option and storing shared object path
- if (llvm::opt::Arg *a = args.getLastArg(clang::options::OPT_load)) {
+ if (llvm::opt::Arg *a = args.getLastArg(clang::driver::options::OPT_load)) {
opts.plugins.push_back(a->getValue());
}
// Parsing -plugin <name> option and storing plugin name and setting action
- if (const llvm::opt::Arg *a = args.getLastArg(clang::options::OPT_plugin)) {
+ if (const llvm::opt::Arg *a =
+ args.getLastArg(clang::driver::options::OPT_plugin)) {
opts.programAction = PluginAction;
opts.actionName = a->getValue();
}
- opts.outputFile = args.getLastArgValue(clang::options::OPT_o);
- opts.showHelp = args.hasArg(clang::options::OPT_help);
- opts.showVersion = args.hasArg(clang::options::OPT_version);
+ opts.outputFile = args.getLastArgValue(clang::driver::options::OPT_o);
+ opts.showHelp = args.hasArg(clang::driver::options::OPT_help);
+ opts.showVersion = args.hasArg(clang::driver::options::OPT_version);
opts.printSupportedCPUs =
- args.hasArg(clang::options::OPT_print_supported_cpus);
+ args.hasArg(clang::driver::options::OPT_print_supported_cpus);
// Get the input kind (from the value passed via `-x`)
InputKind dashX(Language::Unknown);
- if (const llvm::opt::Arg *a = args.getLastArg(clang::options::OPT_x)) {
+ if (const llvm::opt::Arg *a =
+ args.getLastArg(clang::driver::options::OPT_x)) {
llvm::StringRef xValue = a->getValue();
// Principal languages.
dashX = llvm::StringSwitch<InputKind>(xValue)
@@ -756,7 +768,7 @@ static bool parseFrontendArgs(FrontendOptions &opts, llvm::opt::ArgList &args,
// Collect the input files and save them in our instance of FrontendOptions.
std::vector<std::string> inputs =
- args.getAllArgValues(clang::options::OPT_INPUT);
+ args.getAllArgValues(clang::driver::options::OPT_INPUT);
opts.inputs.clear();
if (inputs.empty())
// '-' is the default input if none is given.
@@ -776,16 +788,18 @@ static bool parseFrontendArgs(FrontendOptions &opts, llvm::opt::ArgList &args,
}
// Set fortranForm based on options -ffree-form and -ffixed-form.
- if (const auto *arg = args.getLastArg(clang::options::OPT_ffixed_form,
- clang::options::OPT_ffree_form)) {
- opts.fortranForm = arg->getOption().matches(clang::options::OPT_ffixed_form)
- ? FortranForm::FixedForm
- : FortranForm::FreeForm;
+ if (const auto *arg =
+ args.getLastArg(clang::driver::options::OPT_ffixed_form,
+ clang::driver::options::OPT_ffree_form)) {
+ opts.fortranForm =
+ arg->getOption().matches(clang::driver::options::OPT_ffixed_form)
+ ? FortranForm::FixedForm
+ : FortranForm::FreeForm;
}
// Set fixedFormColumns based on -ffixed-line-length=<value>
if (const auto *arg =
- args.getLastArg(clang::options::OPT_ffixed_line_length_EQ)) {
+ args.getLastArg(clang::driver::options::OPT_ffixed_line_length_EQ)) {
llvm::StringRef argValue = llvm::StringRef(arg->getValue());
std::int64_t columns = -1;
if (argValue == "none") {
@@ -807,7 +821,8 @@ static bool parseFrontendArgs(FrontendOptions &opts, llvm::opt::ArgList &args,
}
// Set conversion based on -fconvert=<value>
- if (const auto *arg = args.getLastArg(clang::options::OPT_fconvert_EQ)) {
+ if (const auto *arg =
+ args.getLastArg(clang::driver::options::OPT_fconvert_EQ)) {
const char *argValue = arg->getValue();
if (auto convert = parseConvertArg(argValue))
opts.envDefaults.push_back({"FORT_CONVERT", *convert});
@@ -817,55 +832,59 @@ static bool parseFrontendArgs(FrontendOptions &opts, llvm::opt::ArgList &args,
}
// -f{no-}implicit-none
- opts.features.Enable(Fortran::common::LanguageFeature::ImplicitNoneTypeAlways,
- args.hasFlag(clang::options::OPT_fimplicit_none,
- clang::options::OPT_fno_implicit_none,
- false));
+ opts.features.Enable(
+ Fortran::common::LanguageFeature::ImplicitNoneTypeAlways,
+ args.hasFlag(clang::driver::options::OPT_fimplicit_none,
+ clang::driver::options::OPT_fno_implicit_none, false));
// -f{no-}implicit-none-ext
- opts.features.Enable(Fortran::common::LanguageFeature::ImplicitNoneExternal,
- args.hasFlag(clang::options::OPT_fimplicit_none_ext,
- clang::options::OPT_fno_implicit_none_ext,
- false));
+ opts.features.Enable(
+ Fortran::common::LanguageFeature::ImplicitNoneExternal,
+ args.hasFlag(clang::driver::options::OPT_fimplicit_none_ext,
+ clang::driver::options::OPT_fno_implicit_none_ext, false));
// -f{no-}backslash
opts.features.Enable(Fortran::common::LanguageFeature::BackslashEscapes,
- args.hasFlag(clang::options::OPT_fbackslash,
- clang::options::OPT_fno_backslash, false));
+ args.hasFlag(clang::driver::options::OPT_fbackslash,
+ clang::driver::options::OPT_fno_backslash,
+ false));
// -f{no-}logical-abbreviations
opts.features.Enable(
Fortran::common::LanguageFeature::LogicalAbbreviations,
- args.hasFlag(clang::options::OPT_flogical_abbreviations,
- clang::options::OPT_fno_logical_abbreviations, false));
+ args.hasFlag(clang::driver::options::OPT_flogical_abbreviations,
+ clang::driver::options::OPT_fno_logical_abbreviations,
+ false));
// -f{no-}unsigned
opts.features.Enable(Fortran::common::LanguageFeature::Unsigned,
- args.hasFlag(clang::options::OPT_funsigned,
- clang::options::OPT_fno_unsigned, false));
+ args.hasFlag(clang::driver::options::OPT_funsigned,
+ clang::driver::options::OPT_fno_unsigned,
+ false));
// -f{no-}xor-operator
- opts.features.Enable(Fortran::common::LanguageFeature::XOROperator,
- args.hasFlag(clang::options::OPT_fxor_operator,
- clang::options::OPT_fno_xor_operator,
- false));
+ opts.features.Enable(
+ Fortran::common::LanguageFeature::XOROperator,
+ args.hasFlag(clang::driver::options::OPT_fxor_operator,
+ clang::driver::options::OPT_fno_xor_operator, false));
// -fno-automatic
- if (args.hasArg(clang::options::OPT_fno_automatic)) {
+ if (args.hasArg(clang::driver::options::OPT_fno_automatic)) {
opts.features.Enable(Fortran::common::LanguageFeature::DefaultSave);
}
// -f{no}-save-main-program
- opts.features.Enable(Fortran::common::LanguageFeature::SaveMainProgram,
- args.hasFlag(clang::options::OPT_fsave_main_program,
- clang::options::OPT_fno_save_main_program,
- false));
+ opts.features.Enable(
+ Fortran::common::LanguageFeature::SaveMainProgram,
+ args.hasFlag(clang::driver::options::OPT_fsave_main_program,
+ clang::driver::options::OPT_fno_save_main_program, false));
- if (args.hasArg(clang::options::OPT_falternative_parameter_statement)) {
+ if (args.hasArg(
+ clang::driver::options::OPT_falternative_parameter_statement)) {
opts.features.Enable(Fortran::common::LanguageFeature::OldStyleParameter);
}
if (const llvm::opt::Arg *arg =
- args.getLastArg(clang::options::OPT_finput_charset_EQ)) {
+ args.getLastArg(clang::driver::options::OPT_finput_charset_EQ)) {
llvm::StringRef argValue = arg->getValue();
if (argValue == "utf-8") {
opts.encoding = Fortran::parser::Encoding::UTF_8;
@@ -910,9 +929,9 @@ static std::string getOpenMPHeadersDir(const char *argv) {
static void parsePreprocessorArgs(Fortran::frontend::PreprocessorOptions &opts,
llvm::opt::ArgList &args) {
// Add macros from the command line.
- for (const auto *currentArg :
- args.filtered(clang::options::OPT_D, clang::options::OPT_U)) {
- if (currentArg->getOption().matches(clang::options::OPT_D)) {
+ for (const auto *currentArg : args.filtered(clang::driver::options::OPT_D,
+ clang::driver::options::OPT_U)) {
+ if (currentArg->getOption().matches(clang::driver::options::OPT_D)) {
opts.addMacroDef(currentArg->getValue());
} else {
opts.addMacroUndef(currentArg->getValue());
@@ -920,33 +939,34 @@ static void parsePreprocessorArgs(Fortran::frontend::PreprocessorOptions &opts,
}
// Add the ordered list of -I's.
- for (const auto *currentArg : args.filtered(clang::options::OPT_I))
+ for (const auto *currentArg : args.filtered(clang::driver::options::OPT_I))
opts.searchDirectoriesFromDashI.emplace_back(currentArg->getValue());
// Prepend the ordered list of -intrinsic-modules-path
// to the default location to search.
for (const auto *currentArg :
- args.filtered(clang::options::OPT_fintrinsic_modules_path))
+ args.filtered(clang::driver::options::OPT_fintrinsic_modules_path))
opts.searchDirectoriesFromIntrModPath.emplace_back(currentArg->getValue());
// -cpp/-nocpp
- if (const auto *currentArg =
- args.getLastArg(clang::options::OPT_cpp, clang::options::OPT_nocpp))
- opts.macrosFlag = (currentArg->getOption().matches(clang::options::OPT_cpp))
- ? PPMacrosFlag::Include
- : PPMacrosFlag::Exclude;
+ if (const auto *currentArg = args.getLastArg(
+ clang::driver::options::OPT_cpp, clang::driver::options::OPT_nocpp))
+ opts.macrosFlag =
+ (currentArg->getOption().matches(clang::driver::options::OPT_cpp))
+ ? PPMacrosFlag::Include
+ : PPMacrosFlag::Exclude;
// Enable -cpp based on -x unless explicitly disabled with -nocpp
if (opts.macrosFlag != PPMacrosFlag::Exclude)
- if (const auto *dashX = args.getLastArg(clang::options::OPT_x))
+ if (const auto *dashX = args.getLastArg(clang::driver::options::OPT_x))
opts.macrosFlag = llvm::StringSwitch<PPMacrosFlag>(dashX->getValue())
.Case("f95-cpp-input", PPMacrosFlag::Include)
.Default(opts.macrosFlag);
- opts.noReformat = args.hasArg(clang::options::OPT_fno_reformat);
+ opts.noReformat = args.hasArg(clang::driver::options::OPT_fno_reformat);
opts.preprocessIncludeLines =
- args.hasArg(clang::options::OPT_fpreprocess_include_lines);
- opts.noLineDirectives = args.hasArg(clang::options::OPT_P);
- opts.showMacros = args.hasArg(clang::options::OPT_dM);
+ args.hasArg(clang::driver::options::OPT_fpreprocess_include_lines);
+ opts.noLineDirectives = args.hasArg(clang::driver::options::OPT_P);
+ opts.showMacros = args.hasArg(clang::driver::options::OPT_dM);
}
/// Parses all semantic related arguments and populates the variables
@@ -957,7 +977,7 @@ static bool parseSemaArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
// -J/module-dir option
std::vector<std::string> moduleDirList =
- args.getAllArgValues(clang::options::OPT_module_dir);
+ args.getAllArgValues(clang::driver::options::OPT_module_dir);
// User can only specify one -J/-module-dir directory, but may repeat
// -J/-module-dir as long as the directory is the same each time.
// https://gcc.gnu.org/onlinedocs/gfortran/Directory-Options.html
@@ -976,25 +996,25 @@ static bool parseSemaArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
res.setModuleDir(moduleDirList[0]);
// -fdebug-module-writer option
- if (args.hasArg(clang::options::OPT_fdebug_module_writer)) {
+ if (args.hasArg(clang::driver::options::OPT_fdebug_module_writer)) {
res.setDebugModuleDir(true);
}
// -fhermetic-module-files option
- if (args.hasArg(clang::options::OPT_fhermetic_module_files)) {
+ if (args.hasArg(clang::driver::options::OPT_fhermetic_module_files)) {
res.setHermeticModuleFileOutput(true);
}
// -module-suffix
if (const auto *moduleSuffix =
- args.getLastArg(clang::options::OPT_module_suffix)) {
+ args.getLastArg(clang::driver::options::OPT_module_suffix)) {
res.setModuleFileSuffix(moduleSuffix->getValue());
}
// -f{no-}analyzed-objects-for-unparse
- res.setUseAnalyzedObjectsForUnparse(
- args.hasFlag(clang::options::OPT_fanalyzed_objects_for_unparse,
- clang::options::OPT_fno_analyzed_objects_for_unparse, true));
+ res.setUseAnalyzedObjectsForUnparse(args.hasFlag(
+ clang::driver::options::OPT_fanalyzed_objects_for_unparse,
+ clang::driver::options::OPT_fno_analyzed_objects_for_unparse, true));
return diags.getNumErrors() == numErrorsBefore;
}
@@ -1011,7 +1031,7 @@ static bool parseDiagArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
// chosen to match clang's behavior.
// -pedantic
- if (args.hasArg(clang::options::OPT_pedantic)) {
+ if (args.hasArg(clang::driver::options::OPT_pedantic)) {
features.WarnOnAllNonstandard();
features.WarnOnAllUsage();
res.setEnableConformanceChecks();
@@ -1021,8 +1041,9 @@ static bool parseDiagArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
// -Werror option
// TODO: Currently throws a Diagnostic for anything other than -W<error>,
// this has to change when other -W<opt>'s are supported.
- if (args.hasArg(clang::options::OPT_W_Joined)) {
- const auto &wArgs = args.getAllArgValues(clang::options::OPT_W_Joined);
+ if (args.hasArg(clang::driver::options::OPT_W_Joined)) {
+ const auto &wArgs =
+ args.getAllArgValues(clang::driver::options::OPT_W_Joined);
for (const auto &wArg : wArgs) {
if (wArg == "error") {
res.setWarnAsErr(true);
@@ -1039,7 +1060,7 @@ static bool parseDiagArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
}
// -w
- if (args.hasArg(clang::options::OPT_w)) {
+ if (args.hasArg(clang::driver::options::OPT_w)) {
features.DisableAllWarnings();
res.setDisableWarnings();
}
@@ -1059,7 +1080,7 @@ static bool parseDialectArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
unsigned numErrorsBefore = diags.getNumErrors();
// -fd-lines-as-code
- if (args.hasArg(clang::options::OPT_fd_lines_as_code)) {
+ if (args.hasArg(clang::driver::options::OPT_fd_lines_as_code)) {
if (res.getFrontendOpts().fortranForm == FortranForm::FreeForm) {
const unsigned fdLinesAsWarning = diags.getCustomDiagID(
clang::DiagnosticsEngine::Warning,
@@ -1072,7 +1093,7 @@ static bool parseDialectArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
}
// -fd-lines-as-comments
- if (args.hasArg(clang::options::OPT_fd_lines_as_comments)) {
+ if (args.hasArg(clang::driver::options::OPT_fd_lines_as_comments)) {
if (res.getFrontendOpts().fortranForm == FortranForm::FreeForm) {
const unsigned fdLinesAsWarning = diags.getCustomDiagID(
clang::DiagnosticsEngine::Warning,
@@ -1085,18 +1106,18 @@ static bool parseDialectArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
}
// -fdefault* family
- if (args.hasArg(clang::options::OPT_fdefault_real_8)) {
+ if (args.hasArg(clang::driver::options::OPT_fdefault_real_8)) {
res.getDefaultKinds().set_defaultRealKind(8);
res.getDefaultKinds().set_doublePrecisionKind(16);
}
- if (args.hasArg(clang::options::OPT_fdefault_integer_8)) {
+ if (args.hasArg(clang::driver::options::OPT_fdefault_integer_8)) {
res.getDefaultKinds().set_defaultIntegerKind(8);
res.getDefaultKinds().set_subscriptIntegerKind(8);
res.getDefaultKinds().set_sizeIntegerKind(8);
res.getDefaultKinds().set_defaultLogicalKind(8);
}
- if (args.hasArg(clang::options::OPT_fdefault_double_8)) {
- if (!args.hasArg(clang::options::OPT_fdefault_real_8)) {
+ if (args.hasArg(clang::driver::options::OPT_fdefault_double_8)) {
+ if (!args.hasArg(clang::driver::options::OPT_fdefault_real_8)) {
// -fdefault-double-8 has to be used with -fdefault-real-8
// to be compatible with gfortran
const unsigned diagID = diags.getCustomDiagID(
@@ -1107,18 +1128,18 @@ static bool parseDialectArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
// https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html
res.getDefaultKinds().set_doublePrecisionKind(8);
}
- if (args.hasArg(clang::options::OPT_flarge_sizes))
+ if (args.hasArg(clang::driver::options::OPT_flarge_sizes))
res.getDefaultKinds().set_sizeIntegerKind(8);
// -x cuda
- auto language = args.getLastArgValue(clang::options::OPT_x);
+ auto language = args.getLastArgValue(clang::driver::options::OPT_x);
if (language == "cuda") {
res.getFrontendOpts().features.Enable(
Fortran::common::LanguageFeature::CUDA);
}
// -fopenacc
- if (args.hasArg(clang::options::OPT_fopenacc)) {
+ if (args.hasArg(clang::driver::options::OPT_fopenacc)) {
res.getFrontendOpts().features.Enable(
Fortran::common::LanguageFeature::OpenACC);
}
@@ -1126,8 +1147,8 @@ static bool parseDialectArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
// -std=f2018
// TODO: Set proper options when more fortran standards
// are supported.
- if (args.hasArg(clang::options::OPT_std_EQ)) {
- auto standard = args.getLastArgValue(clang::options::OPT_std_EQ);
+ if (args.hasArg(clang::driver::options::OPT_std_EQ)) {
+ auto standard = args.getLastArgValue(clang::driver::options::OPT_std_EQ);
// We only allow f2018 as the given standard
if (standard == "f2018") {
res.setEnableConformanceChecks();
@@ -1140,7 +1161,7 @@ static bool parseDialectArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
}
}
// -fcoarray
- if (args.hasArg(clang::options::OPT_fcoarray)) {
+ if (args.hasArg(clang::driver::options::OPT_fcoarray)) {
res.getFrontendOpts().features.Enable(
Fortran::common::LanguageFeature::Coarray);
const unsigned diagID =
@@ -1158,12 +1179,13 @@ static bool parseDialectArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
/// generated.
static bool parseOpenMPArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
clang::DiagnosticsEngine &diags) {
- llvm::opt::Arg *arg = args.getLastArg(clang::options::OPT_fopenmp,
- clang::options::OPT_fno_openmp);
- if (!arg || arg->getOption().matches(clang::options::OPT_fno_openmp)) {
- bool isSimdSpecified =
- args.hasFlag(clang::options::OPT_fopenmp_simd,
- clang::options::OPT_fno_openmp_simd, /*Default=*/false);
+ llvm::opt::Arg *arg = args.getLastArg(clang::driver::options::OPT_fopenmp,
+ clang::driver::options::OPT_fno_openmp);
+ if (!arg ||
+ arg->getOption().matches(clang::driver::options::OPT_fno_openmp)) {
+ bool isSimdSpecified = args.hasFlag(
+ clang::driver::options::OPT_fopenmp_simd,
+ clang::driver::options::OPT_fno_openmp_simd, /*Default=*/false);
if (!isSimdSpecified)
return true;
res.getLangOpts().OpenMPSimd = 1;
@@ -1178,7 +1200,8 @@ static bool parseOpenMPArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
res.getLangOpts().OpenMPVersion = newestFullySupported;
res.getFrontendOpts().features.Enable(
Fortran::common::LanguageFeature::OpenMP);
- if (auto *arg = args.getLastArg(clang::options::OPT_fopenmp_version_EQ)) {
+ if (auto *arg =
+ args.getLastArg(clang::driver::options::OPT_fopenmp_version_EQ)) {
llvm::ArrayRef<unsigned> ompVersions = llvm::omp::getOpenMPVersions();
unsigned oldVersions[] = {11, 20, 25, 30};
unsigned version = 0;
@@ -1231,16 +1254,16 @@ static bool parseOpenMPArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
}
}
- if (args.hasArg(clang::options::OPT_fopenmp_force_usm)) {
+ if (args.hasArg(clang::driver::options::OPT_fopenmp_force_usm)) {
res.getLangOpts().OpenMPForceUSM = 1;
}
- if (args.hasArg(clang::options::OPT_fopenmp_is_target_device)) {
+ if (args.hasArg(clang::driver::options::OPT_fopenmp_is_target_device)) {
res.getLangOpts().OpenMPIsTargetDevice = 1;
// Get OpenMP host file path if any and report if a non existent file is
// found
- if (auto *arg =
- args.getLastArg(clang::options::OPT_fopenmp_host_ir_file_path)) {
+ if (auto *arg = args.getLastArg(
+ clang::driver::options::OPT_fopenmp_host_ir_file_path)) {
res.getLangOpts().OMPHostIRFile = arg->getValue();
if (!llvm::sys::fs::exists(res.getLangOpts().OMPHostIRFile))
diags.Report(clang::diag::err_omp_host_ir_file_not_found)
@@ -1248,34 +1271,37 @@ static bool parseOpenMPArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
}
if (args.hasFlag(
- clang::options::OPT_fopenmp_assume_teams_oversubscription,
- clang::options::OPT_fno_openmp_assume_teams_oversubscription,
+ clang::driver::options::OPT_fopenmp_assume_teams_oversubscription,
+ clang::driver::options::
+ OPT_fno_openmp_assume_teams_oversubscription,
/*Default=*/false))
res.getLangOpts().OpenMPTeamSubscription = true;
- if (args.hasArg(clang::options::OPT_fopenmp_assume_no_thread_state))
+ if (args.hasArg(clang::driver::options::OPT_fopenmp_assume_no_thread_state))
res.getLangOpts().OpenMPNoThreadState = 1;
- if (args.hasArg(clang::options::OPT_fopenmp_assume_no_nested_parallelism))
+ if (args.hasArg(
+ clang::driver::options::OPT_fopenmp_assume_no_nested_parallelism))
res.getLangOpts().OpenMPNoNestedParallelism = 1;
if (args.hasFlag(
- clang::options::OPT_fopenmp_assume_threads_oversubscription,
- clang::options::OPT_fno_openmp_assume_threads_oversubscription,
+ clang::driver::options::OPT_fopenmp_assume_threads_oversubscription,
+ clang::driver::options::
+ OPT_fno_openmp_assume_threads_oversubscription,
/*Default=*/false))
res.getLangOpts().OpenMPThreadSubscription = true;
- if ((args.hasArg(clang::options::OPT_fopenmp_target_debug) ||
- args.hasArg(clang::options::OPT_fopenmp_target_debug_EQ))) {
- res.getLangOpts().OpenMPTargetDebug =
- getLastArgIntValue(args, clang::options::OPT_fopenmp_target_debug_EQ,
- res.getLangOpts().OpenMPTargetDebug, diags);
+ if ((args.hasArg(clang::driver::options::OPT_fopenmp_target_debug) ||
+ args.hasArg(clang::driver::options::OPT_fopenmp_target_debug_EQ))) {
+ res.getLangOpts().OpenMPTargetDebug = getLastArgIntValue(
+ args, clang::driver::options::OPT_fopenmp_target_debug_EQ,
+ res.getLangOpts().OpenMPTargetDebug, diags);
if (!res.getLangOpts().OpenMPTargetDebug &&
- args.hasArg(clang::options::OPT_fopenmp_target_debug))
+ args.hasArg(clang::driver::options::OPT_fopenmp_target_debug))
res.getLangOpts().OpenMPTargetDebug = 1;
}
- if (args.hasArg(clang::options::OPT_no_offloadlib))
+ if (args.hasArg(clang::driver::options::OPT_no_offloadlib))
res.getLangOpts().NoGPULib = 1;
}
if (llvm::Triple(res.getTargetOpts().triple).isGPU()) {
@@ -1291,7 +1317,8 @@ static bool parseOpenMPArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
}
// Get the OpenMP target triples if any.
- if (auto *arg = args.getLastArg(clang::options::OPT_offload_targets_EQ)) {
+ if (auto *arg =
+ args.getLastArg(clang::driver::options::OPT_offload_targets_EQ)) {
enum ArchPtrSize { Arch16Bit, Arch32Bit, Arch64Bit };
auto getArchPtrSize = [](const llvm::Triple &triple) {
if (triple.isArch16Bit())
@@ -1334,7 +1361,7 @@ static bool parseIntegerOverflowArgs(CompilerInvocation &invoc,
clang::DiagnosticsEngine &diags) {
Fortran::common::LangOptions &opts = invoc.getLangOpts();
- if (args.getLastArg(clang::options::OPT_fwrapv))
+ if (args.getLastArg(clang::driver::options::OPT_fwrapv))
opts.setSignedOverflowBehavior(Fortran::common::LangOptions::SOB_Defined);
return true;
@@ -1353,7 +1380,7 @@ static bool parseFloatingPointArgs(CompilerInvocation &invoc,
Fortran::common::LangOptions &opts = invoc.getLangOpts();
if (const llvm::opt::Arg *a =
- args.getLastArg(clang::options::OPT_ffp_contract)) {
+ args.getLastArg(clang::driver::options::OPT_ffp_contract)) {
const llvm::StringRef val = a->getValue();
enum Fortran::common::LangOptions::FPModeKind fpContractMode;
@@ -1370,31 +1397,31 @@ static bool parseFloatingPointArgs(CompilerInvocation &invoc,
opts.setFPContractMode(fpContractMode);
}
- if (args.getLastArg(clang::options::OPT_menable_no_infs)) {
+ if (args.getLastArg(clang::driver::options::OPT_menable_no_infs)) {
opts.NoHonorInfs = true;
}
- if (args.getLastArg(clang::options::OPT_menable_no_nans)) {
+ if (args.getLastArg(clang::driver::options::OPT_menable_no_nans)) {
opts.NoHonorNaNs = true;
}
- if (args.getLastArg(clang::options::OPT_fapprox_func)) {
+ if (args.getLastArg(clang::driver::options::OPT_fapprox_func)) {
opts.ApproxFunc = true;
}
- if (args.getLastArg(clang::options::OPT_fno_signed_zeros)) {
+ if (args.getLastArg(clang::driver::options::OPT_fno_signed_zeros)) {
opts.NoSignedZeros = true;
}
- if (args.getLastArg(clang::options::OPT_mreassociate)) {
+ if (args.getLastArg(clang::driver::options::OPT_mreassociate)) {
opts.AssociativeMath = true;
}
- if (args.getLastArg(clang::options::OPT_freciprocal_math)) {
+ if (args.getLastArg(clang::driver::options::OPT_freciprocal_math)) {
opts.ReciprocalMath = true;
}
- if (args.getLastArg(clang::options::OPT_ffast_math)) {
+ if (args.getLastArg(clang::driver::options::OPT_ffast_math)) {
opts.NoHonorInfs = true;
opts.NoHonorNaNs = true;
opts.AssociativeMath = true;
@@ -1404,7 +1431,7 @@ static bool parseFloatingPointArgs(CompilerInvocation &invoc,
opts.setFPContractMode(Fortran::common::LangOptions::FPM_Fast);
}
- if (args.hasArg(clang::options::OPT_fno_fast_real_mod))
+ if (args.hasArg(clang::driver::options::OPT_fno_fast_real_mod))
opts.NoFastRealMod = true;
return true;
@@ -1419,8 +1446,10 @@ static bool parseFloatingPointArgs(CompilerInvocation &invoc,
/// \param [out] diags DiagnosticsEngine to report erros with
static bool parseVScaleArgs(CompilerInvocation &invoc, llvm::opt::ArgList &args,
clang::DiagnosticsEngine &diags) {
- const auto *vscaleMin = args.getLastArg(clang::options::OPT_mvscale_min_EQ);
- const auto *vscaleMax = args.getLastArg(clang::options::OPT_mvscale_max_EQ);
+ const auto *vscaleMin =
+ args.getLastArg(clang::driver::options::OPT_mvscale_min_EQ);
+ const auto *vscaleMax =
+ args.getLastArg(clang::driver::options::OPT_mvscale_max_EQ);
if (!vscaleMin && !vscaleMax)
return true;
@@ -1468,7 +1497,8 @@ static bool parseLinkerOptionsArgs(CompilerInvocation &invoc,
// TODO: support --dependent-lib on other platforms when MLIR supports
// !llvm.dependent.lib
- if (args.hasArg(clang::options::OPT_dependent_lib) && !triple.isOSWindows()) {
+ if (args.hasArg(clang::driver::options::OPT_dependent_lib) &&
+ !triple.isOSWindows()) {
const unsigned diagID =
diags.getCustomDiagID(clang::DiagnosticsEngine::Error,
"--dependent-lib is only supported on Windows");
@@ -1476,10 +1506,12 @@ static bool parseLinkerOptionsArgs(CompilerInvocation &invoc,
return false;
}
- opts.DependentLibs = args.getAllArgValues(clang::options::OPT_dependent_lib);
+ opts.DependentLibs =
+ args.getAllArgValues(clang::driver::options::OPT_dependent_lib);
// -flto=full/thin option.
- if (const llvm::opt::Arg *a = args.getLastArg(clang::options::OPT_flto_EQ)) {
+ if (const llvm::opt::Arg *a =
+ args.getLastArg(clang::driver::options::OPT_flto_EQ)) {
llvm::StringRef s = a->getValue();
assert((s == "full" || s == "thin") && "Unknown LTO mode.");
if (s == "full")
@@ -1490,10 +1522,10 @@ static bool parseLinkerOptionsArgs(CompilerInvocation &invoc,
// -ffat-lto-objects
if (const llvm::opt::Arg *arg =
- args.getLastArg(clang::options::OPT_ffat_lto_objects,
- clang::options::OPT_fno_fat_lto_objects)) {
+ args.getLastArg(clang::driver::options::OPT_ffat_lto_objects,
+ clang::driver::options::OPT_fno_fat_lto_objects)) {
opts.PrepareForFatLTO =
- arg->getOption().matches(clang::options::OPT_ffat_lto_objects);
+ arg->getOption().matches(clang::driver::options::OPT_ffat_lto_objects);
if (opts.PrepareForFatLTO) {
assert((opts.PrepareForFullLTO || opts.PrepareForThinLTO) &&
"Unknown LTO mode");
@@ -1534,8 +1566,8 @@ bool CompilerInvocation::createFromArgs(
llvm::Triple::normalize(llvm::sys::getDefaultTargetTriple());
// Parse the arguments
- const llvm::opt::OptTable &opts = clang::getDriverOptTable();
- llvm::opt::Visibility visibilityMask(clang::options::FC1Option);
+ const llvm::opt::OptTable &opts = clang::driver::getDriverOptTable();
+ llvm::opt::Visibility visibilityMask(clang::driver::options::FC1Option);
unsigned missingArgIndex, missingArgCount;
llvm::opt::InputArgList args = opts.ParseArgs(
commandLineArgs, missingArgIndex, missingArgCount, visibilityMask);
@@ -1548,7 +1580,7 @@ bool CompilerInvocation::createFromArgs(
}
// Issue errors on unknown arguments
- for (const auto *a : args.filtered(clang::options::OPT_UNKNOWN)) {
+ for (const auto *a : args.filtered(clang::driver::options::OPT_UNKNOWN)) {
auto argString = a->getAsString(args);
std::string nearest;
if (opts.findNearest(argString, nearest, visibilityMask) > 1)
@@ -1560,15 +1592,15 @@ bool CompilerInvocation::createFromArgs(
}
// -flang-experimental-hlfir
- if (args.hasArg(clang::options::OPT_flang_experimental_hlfir) ||
- args.hasArg(clang::options::OPT_emit_hlfir)) {
+ if (args.hasArg(clang::driver::options::OPT_flang_experimental_hlfir) ||
+ args.hasArg(clang::driver::options::OPT_emit_hlfir)) {
invoc.loweringOpts.setLowerToHighLevelFIR(true);
}
// -flang-deprecated-no-hlfir
- if (args.hasArg(clang::options::OPT_flang_deprecated_no_hlfir) &&
- !args.hasArg(clang::options::OPT_emit_hlfir)) {
- if (args.hasArg(clang::options::OPT_flang_experimental_hlfir)) {
+ if (args.hasArg(clang::driver::options::OPT_flang_deprecated_no_hlfir) &&
+ !args.hasArg(clang::driver::options::OPT_emit_hlfir)) {
+ if (args.hasArg(clang::driver::options::OPT_flang_experimental_hlfir)) {
const unsigned diagID = diags.getCustomDiagID(
clang::DiagnosticsEngine::Error,
"Options '-flang-experimental-hlfir' and "
@@ -1579,13 +1611,13 @@ bool CompilerInvocation::createFromArgs(
}
// -fno-ppc-native-vector-element-order
- if (args.hasArg(clang::options::OPT_fno_ppc_native_vec_elem_order)) {
+ if (args.hasArg(clang::driver::options::OPT_fno_ppc_native_vec_elem_order)) {
invoc.loweringOpts.setNoPPCNativeVecElemOrder(true);
}
// -f[no-]init-global-zero
- if (args.hasFlag(clang::options::OPT_finit_global_zero,
- clang::options::OPT_fno_init_global_zero,
+ if (args.hasFlag(clang::driver::options::OPT_finit_global_zero,
+ clang::driver::options::OPT_fno_init_global_zero,
/*default=*/true))
invoc.loweringOpts.setInitGlobalZero(true);
else
@@ -1594,8 +1626,8 @@ bool CompilerInvocation::createFromArgs(
// Preserve all the remark options requested, i.e. -Rpass, -Rpass-missed or
// -Rpass-analysis. This will be used later when processing and outputting the
// remarks generated by LLVM in ExecuteCompilerInvocation.cpp.
- for (auto *a : args.filtered(clang::options::OPT_R_Group)) {
- if (a->getOption().matches(clang::options::OPT_R_value_Group))
+ for (auto *a : args.filtered(clang::driver::options::OPT_R_Group)) {
+ if (a->getOption().matches(clang::driver::options::OPT_R_value_Group))
// This is -Rfoo=, where foo is the name of the diagnostic
// group. Add only the remark option name to the diagnostics. e.g. for
// -Rpass= we will add the string "pass".
@@ -1608,19 +1640,20 @@ bool CompilerInvocation::createFromArgs(
}
// -frealloc-lhs is the default.
- if (!args.hasFlag(clang::options::OPT_frealloc_lhs,
- clang::options::OPT_fno_realloc_lhs, true))
+ if (!args.hasFlag(clang::driver::options::OPT_frealloc_lhs,
+ clang::driver::options::OPT_fno_realloc_lhs, true))
invoc.loweringOpts.setReallocateLHS(false);
- invoc.loweringOpts.setRepackArrays(args.hasFlag(
- clang::options::OPT_frepack_arrays, clang::options::OPT_fno_repack_arrays,
- /*default=*/false));
+ invoc.loweringOpts.setRepackArrays(
+ args.hasFlag(clang::driver::options::OPT_frepack_arrays,
+ clang::driver::options::OPT_fno_repack_arrays,
+ /*default=*/false));
invoc.loweringOpts.setStackRepackArrays(
- args.hasFlag(clang::options::OPT_fstack_repack_arrays,
- clang::options::OPT_fno_stack_repack_arrays,
+ args.hasFlag(clang::driver::options::OPT_fstack_repack_arrays,
+ clang::driver::options::OPT_fno_stack_repack_arrays,
/*default=*/false));
- if (auto *arg =
- args.getLastArg(clang::options::OPT_frepack_arrays_contiguity_EQ))
+ if (auto *arg = args.getLastArg(
+ clang::driver::options::OPT_frepack_arrays_contiguity_EQ))
invoc.loweringOpts.setRepackArraysWhole(arg->getValue() ==
llvm::StringRef{"whole"});
@@ -1640,8 +1673,10 @@ bool CompilerInvocation::createFromArgs(
// `mlirArgs`. Instead, you can use
// * `-mllvm <your-llvm-option>`, or
// * `-mmlir <your-mlir-option>`.
- invoc.frontendOpts.llvmArgs = args.getAllArgValues(clang::options::OPT_mllvm);
- invoc.frontendOpts.mlirArgs = args.getAllArgValues(clang::options::OPT_mmlir);
+ invoc.frontendOpts.llvmArgs =
+ args.getAllArgValues(clang::driver::options::OPT_mllvm);
+ invoc.frontendOpts.mlirArgs =
+ args.getAllArgValues(clang::driver::options::OPT_mmlir);
success &= parseLangOptionsArgs(invoc, args, diags);
@@ -1665,7 +1700,7 @@ bool CompilerInvocation::createFromArgs(
}
// Process the timing-related options.
- if (args.hasArg(clang::options::OPT_ftime_report))
+ if (args.hasArg(clang::driver::options::OPT_ftime_report))
invoc.enableTimers = true;
invoc.setArgv0(argv0);
diff --git a/flang/lib/FrontendTool/CMakeLists.txt b/flang/lib/FrontendTool/CMakeLists.txt
index b69436c36d438..faf56e9d955a1 100644
--- a/flang/lib/FrontendTool/CMakeLists.txt
+++ b/flang/lib/FrontendTool/CMakeLists.txt
@@ -18,6 +18,5 @@ add_flang_library(flangFrontendTool
CLANG_LIBS
clangBasic
- clangOptions
clangDriver
)
diff --git a/flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp b/flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
index 7586be59ba01b..09ac129d3e689 100644
--- a/flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
+++ b/flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
@@ -23,7 +23,7 @@
#include "mlir/IR/MLIRContext.h"
#include "mlir/Pass/PassManager.h"
#include "clang/Basic/DiagnosticFrontend.h"
-#include "clang/Options/Options.h"
+#include "clang/Driver/Options.h"
#include "llvm/Option/OptTable.h"
#include "llvm/Option/Option.h"
#include "llvm/Support/BuryPointer.h"
@@ -153,10 +153,10 @@ updateDiagEngineForOptRemarks(clang::DiagnosticsEngine &diagsEng,
bool executeCompilerInvocation(CompilerInstance *flang) {
// Honor -help.
if (flang->getFrontendOpts().showHelp) {
- clang::getDriverOptTable().printHelp(
+ clang::driver::getDriverOptTable().printHelp(
llvm::outs(), "flang -fc1 [options] file...", "LLVM 'Flang' Compiler",
/*ShowHidden=*/false, /*ShowAllAliases=*/false,
- llvm::opt::Visibility(clang::options::FC1Option));
+ llvm::opt::Visibility(clang::driver::options::FC1Option));
return true;
}
diff --git a/flang/tools/flang-driver/CMakeLists.txt b/flang/tools/flang-driver/CMakeLists.txt
index 4dfc0d40cd55d..b5d6727025121 100644
--- a/flang/tools/flang-driver/CMakeLists.txt
+++ b/flang/tools/flang-driver/CMakeLists.txt
@@ -26,7 +26,6 @@ target_link_libraries(flang
clang_target_link_libraries(flang
PRIVATE
clangDriver
- clangOptions
clangBasic
)
diff --git a/flang/tools/flang-driver/driver.cpp b/flang/tools/flang-driver/driver.cpp
index 0840255a739f3..bd878b7a642f1 100644
--- a/flang/tools/flang-driver/driver.cpp
+++ b/flang/tools/flang-driver/driver.cpp
@@ -52,9 +52,9 @@ createAndPopulateDiagOpts(llvm::ArrayRef<const char *> argv) {
// Any errors that would be diagnosed here will also be diagnosed later,
// when the DiagnosticsEngine actually exists.
unsigned missingArgIndex, missingArgCount;
- llvm::opt::InputArgList args = clang::getDriverOptTable().ParseArgs(
+ llvm::opt::InputArgList args = clang::driver::getDriverOptTable().ParseArgs(
argv.slice(1), missingArgIndex, missingArgCount,
- llvm::opt::Visibility(clang::options::FlangOption));
+ llvm::opt::Visibility(clang::driver::options::FlangOption));
(void)Fortran::frontend::parseDiagnosticArgs(*diagOpts, args);
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
index bfbd85ea34203..8b4a3e0a7c3fb 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
@@ -56,7 +56,7 @@ using namespace lldb;
using namespace lldb_private;
#define OPTTABLE_STR_TABLE_CODE
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef OPTTABLE_STR_TABLE_CODE
static Status ExceptionMaskValidator(const char *string, void *unused) {
@@ -1124,7 +1124,7 @@ void PlatformDarwin::AddClangModuleCompilationOptionsForSDKType(
#define OPTION(PREFIX_OFFSET, NAME_OFFSET, VAR, ...) \
llvm::StringRef opt_##VAR = OptionStrTable[NAME_OFFSET]; \
(void)opt_##VAR;
-#include "clang/Options/Options.inc"
+#include "clang/Driver/Options.inc"
#undef OPTION
minimum_version_option << '-';
switch (sdk_type) {
diff --git a/llvm/include/llvm/MC/MCAsmInfo.h b/llvm/include/llvm/MC/MCAsmInfo.h
index ea8ac6dbe6e34..7a2e9ad154f01 100644
--- a/llvm/include/llvm/MC/MCAsmInfo.h
+++ b/llvm/include/llvm/MC/MCAsmInfo.h
@@ -401,7 +401,7 @@ class LLVM_ABI MCAsmInfo {
// Generated object files can use all ELF features supported by GNU ld of
// this binutils version and later. INT_MAX means all features can be used,
// regardless of GNU ld support. The default value is referenced by
- // clang/Options/Options.td.
+ // clang/Driver/Options.td.
std::pair<int, int> BinutilsVersion = {2, 26};
/// Should we use the integrated assembler?
diff --git a/llvm/include/llvm/Option/Arg.h b/llvm/include/llvm/Option/Arg.h
index 496373d28600f..b1e56b58da684 100644
--- a/llvm/include/llvm/Option/Arg.h
+++ b/llvm/include/llvm/Option/Arg.h
@@ -51,7 +51,7 @@ class Arg {
/// Was this argument used to affect compilation?
///
/// This is used to generate an "argument unused" warning (without
- /// clang::options::TargetSpecific) or "unsupported option" error
+ /// clang::driver::options::TargetSpecific) or "unsupported option" error
/// (with TargetSpecific).
mutable unsigned Claimed : 1;
diff --git a/utils/bazel/llvm-project-overlay/clang/BUILD.bazel b/utils/bazel/llvm-project-overlay/clang/BUILD.bazel
index 36b71dd49ef13..4d279bffd3723 100644
--- a/utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/clang/BUILD.bazel
@@ -1501,9 +1501,9 @@ cc_library(
gentbl_cc_library(
name = "driver_options_inc_gen",
- tbl_outs = {"include/clang/Options/Options.inc": ["-gen-opt-parser-defs"]},
+ tbl_outs = {"include/clang/Driver/Options.inc": ["-gen-opt-parser-defs"]},
tblgen = "//llvm:llvm-tblgen",
- td_file = "include/clang/Options/Options.td",
+ td_file = "include/clang/Driver/Options.td",
deps = ["//llvm:OptParserTdFiles"],
)
More information about the lldb-commits
mailing list