[clang] [clang-tools-extra] [flang] [lldb] [llvm] [clang] Move options from clangDriver into new clangOptions library (NFC) (PR #163659)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 15 17:20:29 PDT 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions h,cpp -- clang-tools-extra/clangd/CompileCommands.cpp clang-tools-extra/modularize/CoverageChecker.cpp clang-tools-extra/modularize/Modularize.cpp clang-tools-extra/modularize/ModularizeUtilities.cpp clang-tools-extra/pp-trace/PPTrace.cpp clang/include/clang/Driver/Driver.h clang/include/clang/Frontend/Utils.h clang/lib/Driver/Compilation.cpp clang/lib/Driver/Driver.cpp clang/lib/Driver/SanitizerArgs.cpp clang/lib/Driver/ToolChain.cpp clang/lib/Driver/ToolChains/AIX.cpp clang/lib/Driver/ToolChains/AMDGPU.cpp clang/lib/Driver/ToolChains/AMDGPU.h clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp clang/lib/Driver/ToolChains/AVR.cpp clang/lib/Driver/ToolChains/Arch/AArch64.cpp clang/lib/Driver/ToolChains/Arch/ARM.cpp clang/lib/Driver/ToolChains/Arch/CSKY.cpp clang/lib/Driver/ToolChains/Arch/LoongArch.cpp clang/lib/Driver/ToolChains/Arch/M68k.cpp clang/lib/Driver/ToolChains/Arch/Mips.cpp clang/lib/Driver/ToolChains/Arch/PPC.cpp clang/lib/Driver/ToolChains/Arch/RISCV.cpp clang/lib/Driver/ToolChains/Arch/Sparc.cpp clang/lib/Driver/ToolChains/Arch/SystemZ.cpp clang/lib/Driver/ToolChains/Arch/VE.cpp clang/lib/Driver/ToolChains/Arch/X86.cpp clang/lib/Driver/ToolChains/BareMetal.cpp clang/lib/Driver/ToolChains/CSKYToolChain.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/CommonArgs.cpp clang/lib/Driver/ToolChains/CrossWindows.cpp clang/lib/Driver/ToolChains/Cuda.cpp clang/lib/Driver/ToolChains/Cygwin.cpp clang/lib/Driver/ToolChains/Darwin.cpp clang/lib/Driver/ToolChains/DragonFly.cpp clang/lib/Driver/ToolChains/Flang.cpp clang/lib/Driver/ToolChains/FreeBSD.cpp clang/lib/Driver/ToolChains/Fuchsia.cpp clang/lib/Driver/ToolChains/Gnu.cpp clang/lib/Driver/ToolChains/HIPAMD.cpp clang/lib/Driver/ToolChains/HIPSPV.cpp clang/lib/Driver/ToolChains/HIPUtility.cpp clang/lib/Driver/ToolChains/Hexagon.cpp clang/lib/Driver/ToolChains/Hurd.cpp clang/lib/Driver/ToolChains/Linux.cpp clang/lib/Driver/ToolChains/MSP430.cpp clang/lib/Driver/ToolChains/MSVC.cpp clang/lib/Driver/ToolChains/Managarm.cpp clang/lib/Driver/ToolChains/MinGW.cpp clang/lib/Driver/ToolChains/MipsLinux.cpp clang/lib/Driver/ToolChains/NetBSD.cpp clang/lib/Driver/ToolChains/OHOS.cpp clang/lib/Driver/ToolChains/OpenBSD.cpp clang/lib/Driver/ToolChains/PPCFreeBSD.cpp clang/lib/Driver/ToolChains/PPCLinux.cpp clang/lib/Driver/ToolChains/PS4CPU.cpp clang/lib/Driver/ToolChains/SPIRV.cpp clang/lib/Driver/ToolChains/SYCL.cpp clang/lib/Driver/ToolChains/Solaris.cpp clang/lib/Driver/ToolChains/UEFI.cpp clang/lib/Driver/ToolChains/VEToolchain.cpp clang/lib/Driver/ToolChains/WebAssembly.cpp clang/lib/Driver/ToolChains/XCore.cpp clang/lib/Driver/ToolChains/ZOS.cpp clang/lib/Driver/XRayArgs.cpp clang/lib/Frontend/CompilerInvocation.cpp clang/lib/Frontend/CreateInvocationFromCommandLine.cpp clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp clang/lib/Interpreter/Interpreter.cpp clang/lib/Interpreter/InterpreterUtils.h clang/lib/Tooling/InterpolatingCompilationDatabase.cpp clang/lib/Tooling/Tooling.cpp clang/tools/clang-check/ClangCheck.cpp clang/tools/clang-installapi/ClangInstallAPI.cpp clang/tools/clang-installapi/Options.cpp clang/tools/driver/cc1_main.cpp clang/tools/driver/cc1as_main.cpp clang/tools/driver/driver.cpp clang/unittests/Driver/DXCModeTest.cpp flang/lib/Frontend/CompilerInvocation.cpp flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp flang/tools/flang-driver/driver.cpp lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp llvm/include/llvm/MC/MCAsmInfo.h llvm/include/llvm/Option/Arg.h clang/include/clang/Options/OptionUtils.h clang/include/clang/Options/Options.h clang/lib/Options/DriverOptions.cpp clang/lib/Options/OptionUtils.cpp --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/clang-tools-extra/clangd/CompileCommands.cpp b/clang-tools-extra/clangd/CompileCommands.cpp
index f5592b60a..7990f2719 100644
--- a/clang-tools-extra/clangd/CompileCommands.cpp
+++ b/clang-tools-extra/clangd/CompileCommands.cpp
@@ -267,8 +267,7 @@ void CommandMangler::operator()(tooling::CompileCommand &Command,
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(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)
diff --git a/clang/include/clang/Frontend/Utils.h b/clang/include/clang/Frontend/Utils.h
index 6961b8a23..ed2703c76 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/Options/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/lib/Driver/ToolChains/AIX.cpp b/clang/lib/Driver/ToolChains/AIX.cpp
index dfb0256e0..a8acf9cfc 100644
--- a/clang/lib/Driver/ToolChains/AIX.cpp
+++ b/clang/lib/Driver/ToolChains/AIX.cpp
@@ -168,8 +168,7 @@ 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(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 6cb333b28..6685783f3 100644
--- a/clang/lib/Driver/ToolChains/AMDGPU.cpp
+++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp
@@ -323,22 +323,19 @@ RocmInstallationDetector::RocmInstallationDetector(
: 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);
+ PrintROCmSearchDirs = Args.hasArg(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);
+ HIPStdParPathArg = Args.getLastArgValue(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(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(options::OPT_hipstdpar_prim_path_EQ);
HasRocPrimLibrary = !HIPRocPrimPathArg.empty() &&
D.getVFS().exists(HIPRocPrimPathArg + "/rocprim");
diff --git a/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp b/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
index 8f7aaa397..da084bdab 100644
--- a/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
@@ -130,8 +130,7 @@ 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(options::OPT_march_EQ)))
Features.push_back("+lsx");
// -mrelax is default, unless -mno-relax is specified.
diff --git a/clang/lib/Driver/ToolChains/Arch/Mips.cpp b/clang/lib/Driver/ToolChains/Arch/Mips.cpp
index bcf8f3ab0..4bcbb7146 100644
--- a/clang/lib/Driver/ToolChains/Arch/Mips.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/Mips.cpp
@@ -49,8 +49,7 @@ 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(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/SystemZ.cpp b/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp
index 97dc9bd85..1ef6a7254 100644
--- a/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp
@@ -25,8 +25,8 @@ 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 (Arg *A =
+ Args.getLastArg(options::OPT_msoft_float, options::OPT_mhard_float))
if (A->getOption().matches(options::OPT_msoft_float))
ABI = systemz::FloatABI::Soft;
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 9c011c7f0..1a365a0b7 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -2217,8 +2217,7 @@ 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(options::OPT_march_EQ) && !getToolChain().getTriple().isPS())
TuneCPU = "generic";
// Override based on -mtune.
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 2452967bc..06982e1f6 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -69,8 +69,7 @@ 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(options::OPT_pg) && !Args.hasArg(options::OPT_mfentry))
return true;
if (Triple.isAndroid())
@@ -249,17 +248,16 @@ 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(options::OPT_fno_omit_frame_pointer,
+ 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(options::OPT_mno_omit_leaf_frame_pointer,
+ options::OPT_momit_leaf_frame_pointer, DefaultLeafFP);
bool FPRegReserved = EnableFP || mustMaintainValidFrameChain(Args, Triple);
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index 2d8d5818f..6e8874d81 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -2111,8 +2111,7 @@ 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(options::OPT_gcc_install_dir_EQ);
A && A->getValue()[0]) {
StringRef InstallDir = A->getValue();
if (!ScanGCCForMultilibs(TargetTriple, Args, InstallDir, false)) {
@@ -2135,8 +2134,7 @@ 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(options::OPT_gcc_triple_EQ)) {
StringRef GCCTriple = A->getValue();
CandidateTripleAliases.clear();
CandidateTripleAliases.push_back(GCCTriple);
diff --git a/clang/lib/Options/OptionUtils.cpp b/clang/lib/Options/OptionUtils.cpp
index e22692d02..fcafd3c83 100644
--- a/clang/lib/Options/OptionUtils.cpp
+++ b/clang/lib/Options/OptionUtils.cpp
@@ -6,9 +6,9 @@
//
//===----------------------------------------------------------------------===//
+#include "clang/Options/OptionUtils.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/DiagnosticDriver.h"
-#include "clang/Options/OptionUtils.h"
#include "llvm/Option/ArgList.h"
using namespace clang;
diff --git a/clang/lib/Tooling/Tooling.cpp b/clang/lib/Tooling/Tooling.cpp
index f37931796..6af7c7a8d 100644
--- a/clang/lib/Tooling/Tooling.cpp
+++ b/clang/lib/Tooling/Tooling.cpp
@@ -272,12 +272,10 @@ void addTargetAndModeForProgramName(std::vector<std::string> &CommandLine,
return;
const auto &Table = getDriverOptTable();
// --target=X
- StringRef TargetOPT =
- Table.getOption(options::OPT_target).getPrefixedName();
+ StringRef TargetOPT = Table.getOption(options::OPT_target).getPrefixedName();
// -target X
StringRef TargetOPTLegacy =
- Table.getOption(options::OPT_target_legacy_spelling)
- .getPrefixedName();
+ Table.getOption(options::OPT_target_legacy_spelling).getPrefixedName();
// --driver-mode=X
StringRef DriverModeOPT =
Table.getOption(options::OPT_driver_mode).getPrefixedName();
diff --git a/clang/tools/clang-installapi/Options.cpp b/clang/tools/clang-installapi/Options.cpp
index 8dea9e63d..f484d6f33 100644
--- a/clang/tools/clang-installapi/Options.cpp
+++ b/clang/tools/clang-installapi/Options.cpp
@@ -432,9 +432,10 @@ bool Options::processLinkerOptions(InputArgList &Args) {
Arg->claim();
}
- LinkerOpts.AppExtensionSafe = Args.hasFlag(
- options::OPT_fapplication_extension, options::OPT_fno_application_extension,
- /*Default=*/LinkerOpts.AppExtensionSafe);
+ LinkerOpts.AppExtensionSafe =
+ Args.hasFlag(options::OPT_fapplication_extension,
+ options::OPT_fno_application_extension,
+ /*Default=*/LinkerOpts.AppExtensionSafe);
if (::getenv("LD_NO_ENCRYPT") != nullptr)
LinkerOpts.AppExtensionSafe = true;
diff --git a/clang/tools/driver/cc1as_main.cpp b/clang/tools/driver/cc1as_main.cpp
index 876a302a4..f13812f2a 100644
--- a/clang/tools/driver/cc1as_main.cpp
+++ b/clang/tools/driver/cc1as_main.cpp
@@ -687,8 +687,7 @@ 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(options::CC1AsOption));
return 0;
}
diff --git a/clang/unittests/Driver/DXCModeTest.cpp b/clang/unittests/Driver/DXCModeTest.cpp
index 061d47b18..e0454f190 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::options::OPT_dxil_validator_version);
EXPECT_NE(A, nullptr);
if (A) {
EXPECT_STREQ(A->getValue(), "1.1");
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index 63eb1958d..de0e331c2 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -107,15 +107,13 @@ 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 (llvm::opt::Arg *a = args.getLastArg(clang::options::OPT_O_Group)) {
if (a->getOption().matches(clang::options::OPT_O0))
return 0;
assert(a->getOption().matches(clang::options::OPT_O));
- return getLastArgIntValue(args, clang::options::OPT_O, defaultOpt,
- diags);
+ return getLastArgIntValue(args, clang::options::OPT_O, defaultOpt, diags);
}
return defaultOpt;
@@ -331,15 +329,14 @@ 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::options::OPT_fembed_offload_object_EQ))
opts.OffloadObjects.push_back(a->getValue());
if (args.hasArg(clang::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::options::OPT_mcode_object_version_EQ)) {
llvm::StringRef s = a->getValue();
if (s == "6")
opts.CodeObjectVersion = llvm::CodeObjectVersionKind::COV_6;
@@ -375,9 +372,9 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
/*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::options::OPT_Rpass_missed_EQ,
+ /*remarkOptName=*/"pass-missed");
// Create OptRemark that allows all optimization decisions made by LLVM
// to be printed.
@@ -410,8 +407,7 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
}
// -mlink-builtin-bitcode
- for (auto *a :
- args.filtered(clang::options::OPT_mlink_builtin_bitcode))
+ for (auto *a : args.filtered(clang::options::OPT_mlink_builtin_bitcode))
opts.BuiltinBCLibs.push_back(a->getValue());
// -mrelocation-model option.
@@ -435,12 +431,11 @@ 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::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::options::OPT_pic_level)->getAsString(args)
<< picLevel;
opts.PICLevel = picLevel;
@@ -470,8 +465,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::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)
@@ -510,26 +505,23 @@ 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::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::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.atomicRemoteMemory =
args.hasFlag(clang::options::OPT_fatomic_remote_memory,
clang::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::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::options::OPT_tune_cpu))
opts.cpuToTuneFor = a->getValue();
for (const llvm::opt::Arg *currentArg :
@@ -548,8 +540,7 @@ static void parseTargetArgs(TargetOptions &opts, llvm::opt::ArgList &args) {
if (args.hasArg(clang::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::options::OPT_mabi_EQ)) {
opts.abi = a->getValue();
llvm::StringRef V = a->getValue();
if (V == "vec-extabi") {
@@ -559,9 +550,8 @@ 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::options::OPT_fverbose_asm,
+ clang::options::OPT_fno_verbose_asm, false);
}
// Tweak the frontend configuration based on the frontend action
static void setUpFrontendBasedOnAction(FrontendOptions &opts) {
@@ -720,8 +710,7 @@ static bool parseFrontendArgs(FrontendOptions &opts, llvm::opt::ArgList &args,
}
// 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::options::OPT_plugin)) {
opts.programAction = PluginAction;
opts.actionName = a->getValue();
}
@@ -734,8 +723,7 @@ static bool parseFrontendArgs(FrontendOptions &opts, llvm::opt::ArgList &args,
// 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::options::OPT_x)) {
llvm::StringRef xValue = a->getValue();
// Principal languages.
dashX = llvm::StringSwitch<InputKind>(xValue)
@@ -782,13 +770,11 @@ 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::options::OPT_ffixed_form,
+ clang::options::OPT_ffree_form)) {
+ opts.fortranForm = arg->getOption().matches(clang::options::OPT_ffixed_form)
+ ? FortranForm::FixedForm
+ : FortranForm::FreeForm;
}
// Set fixedFormColumns based on -ffixed-line-length=<value>
@@ -815,8 +801,7 @@ 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::options::OPT_fconvert_EQ)) {
const char *argValue = arg->getValue();
if (auto convert = parseConvertArg(argValue))
opts.envDefaults.push_back({"FORT_CONVERT", *convert});
@@ -826,41 +811,38 @@ 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::options::OPT_fimplicit_none,
+ clang::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::options::OPT_fimplicit_none_ext,
+ clang::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));
+ clang::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));
+ clang::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));
+ clang::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::options::OPT_fxor_operator,
+ clang::options::OPT_fno_xor_operator,
+ false));
// -fno-automatic
if (args.hasArg(clang::options::OPT_fno_automatic)) {
@@ -868,13 +850,12 @@ static bool parseFrontendArgs(FrontendOptions &opts, llvm::opt::ArgList &args,
}
// -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::options::OPT_fsave_main_program,
+ clang::options::OPT_fno_save_main_program,
+ false));
- if (args.hasArg(
- clang::options::OPT_falternative_parameter_statement)) {
+ if (args.hasArg(clang::options::OPT_falternative_parameter_statement)) {
opts.features.Enable(Fortran::common::LanguageFeature::OldStyleParameter);
}
if (const llvm::opt::Arg *arg =
@@ -923,8 +904,8 @@ 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)) {
+ for (const auto *currentArg :
+ args.filtered(clang::options::OPT_D, clang::options::OPT_U)) {
if (currentArg->getOption().matches(clang::options::OPT_D)) {
opts.addMacroDef(currentArg->getValue());
} else {
@@ -943,12 +924,11 @@ static void parsePreprocessorArgs(Fortran::frontend::PreprocessorOptions &opts,
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::options::OPT_cpp, clang::options::OPT_nocpp))
+ opts.macrosFlag = (currentArg->getOption().matches(clang::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))
@@ -1006,9 +986,9 @@ static bool parseSemaArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
}
// -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::options::OPT_fanalyzed_objects_for_unparse,
+ clang::options::OPT_fno_analyzed_objects_for_unparse, true));
return diags.getNumErrors() == numErrorsBefore;
}
@@ -1036,8 +1016,7 @@ static bool parseDiagArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
// 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);
+ const auto &wArgs = args.getAllArgValues(clang::options::OPT_W_Joined);
for (const auto &wArg : wArgs) {
if (wArg == "error") {
res.setWarnAsErr(true);
@@ -1175,11 +1154,10 @@ 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);
+ 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);
if (!isSimdSpecified)
return true;
res.getLangOpts().OpenMPSimd = 1;
@@ -1194,8 +1172,7 @@ 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::options::OPT_fopenmp_version_EQ)) {
llvm::ArrayRef<unsigned> ompVersions = llvm::omp::getOpenMPVersions();
unsigned oldVersions[] = {11, 20, 25, 30};
unsigned version = 0;
@@ -1256,8 +1233,8 @@ static bool parseOpenMPArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
// 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::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)
@@ -1266,30 +1243,27 @@ 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::options::OPT_fno_openmp_assume_teams_oversubscription,
/*Default=*/false))
res.getLangOpts().OpenMPTeamSubscription = true;
if (args.hasArg(clang::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::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::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);
+ res.getLangOpts().OpenMPTargetDebug =
+ getLastArgIntValue(args, clang::options::OPT_fopenmp_target_debug_EQ,
+ res.getLangOpts().OpenMPTargetDebug, diags);
if (!res.getLangOpts().OpenMPTargetDebug &&
args.hasArg(clang::options::OPT_fopenmp_target_debug))
@@ -1311,8 +1285,7 @@ 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::options::OPT_offload_targets_EQ)) {
enum ArchPtrSize { Arch16Bit, Arch32Bit, Arch64Bit };
auto getArchPtrSize = [](const llvm::Triple &triple) {
if (triple.isArch16Bit())
@@ -1440,10 +1413,8 @@ 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::options::OPT_mvscale_min_EQ);
+ const auto *vscaleMax = args.getLastArg(clang::options::OPT_mvscale_max_EQ);
if (!vscaleMin && !vscaleMax)
return true;
@@ -1491,8 +1462,7 @@ 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::options::OPT_dependent_lib) && !triple.isOSWindows()) {
const unsigned diagID =
diags.getCustomDiagID(clang::DiagnosticsEngine::Error,
"--dependent-lib is only supported on Windows");
@@ -1500,12 +1470,10 @@ static bool parseLinkerOptionsArgs(CompilerInvocation &invoc,
return false;
}
- opts.DependentLibs =
- args.getAllArgValues(clang::options::OPT_dependent_lib);
+ opts.DependentLibs = args.getAllArgValues(clang::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::options::OPT_flto_EQ)) {
llvm::StringRef s = a->getValue();
assert((s == "full" || s == "thin") && "Unknown LTO mode.");
if (s == "full")
@@ -1638,16 +1606,15 @@ bool CompilerInvocation::createFromArgs(
clang::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::options::OPT_frepack_arrays, clang::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,
/*default=*/false));
- if (auto *arg = args.getLastArg(
- clang::options::OPT_frepack_arrays_contiguity_EQ))
+ if (auto *arg =
+ args.getLastArg(clang::options::OPT_frepack_arrays_contiguity_EQ))
invoc.loweringOpts.setRepackArraysWhole(arg->getValue() ==
llvm::StringRef{"whole"});
@@ -1667,10 +1634,8 @@ 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::options::OPT_mllvm);
+ invoc.frontendOpts.mlirArgs = args.getAllArgValues(clang::options::OPT_mmlir);
success &= parseLangOptionsArgs(invoc, args, diags);
``````````
</details>
https://github.com/llvm/llvm-project/pull/163659
More information about the cfe-commits
mailing list