[flang-commits] [flang] 793ff02 - Initialize targets before creating a LibraryOptionsContext. NFC (#233041)
via flang-commits
flang-commits at lists.llvm.org
Sat Oct 17 00:28:03 PDT 2026
Author: Fangrui Song
Date: 2026-10-17T00:27:57-07:00
New Revision: 793ff02cdb351f064b019681663b805e10cdc9b2
URL: https://github.com/llvm/llvm-project/commit/793ff02cdb351f064b019681663b805e10cdc9b2
DIFF: https://github.com/llvm/llvm-project/commit/793ff02cdb351f064b019681663b805e10cdc9b2.diff
LOG: Initialize targets before creating a LibraryOptionsContext. NFC (#233041)
Initialize the targets to register their library options, before parsing
command line arguments.
This prepares for removing the T::Global fallback in
`LibraryOptionsContext::get<T>()`.
(The -mtriple change of llvm-split was originally added for
AMDGPU --lto-partitions #83128)
Added:
Modified:
flang/tools/flang-driver/fc1_main.cpp
llvm/tools/llvm-split/llvm-split.cpp
Removed:
################################################################################
diff --git a/flang/tools/flang-driver/fc1_main.cpp b/flang/tools/flang-driver/fc1_main.cpp
index a8ad38b0152137..6d5b713ed39b40 100644
--- a/flang/tools/flang-driver/fc1_main.cpp
+++ b/flang/tools/flang-driver/fc1_main.cpp
@@ -52,6 +52,12 @@ static int printSupportedCPUs(llvm::StringRef triple) {
}
int fc1_main(llvm::ArrayRef<const char *> argv, const char *argv0) {
+ // Initialize targets first, so that --version shows registered targets and
+ // CompilerInstance's library options include the targets'.
+ llvm::InitializeAllTargets();
+ llvm::InitializeAllTargetMCs();
+ llvm::InitializeAllAsmPrinters();
+
// Create CompilerInstance
std::unique_ptr<CompilerInstance> flang(new CompilerInstance());
@@ -72,11 +78,6 @@ int fc1_main(llvm::ArrayRef<const char *> argv, const char *argv0) {
bool success = CompilerInvocation::createFromArgs(flang->getInvocation(),
argv, diags, argv0);
- // Initialize targets first, so that --version shows registered targets.
- llvm::InitializeAllTargets();
- llvm::InitializeAllTargetMCs();
- llvm::InitializeAllAsmPrinters();
-
// --print-supported-cpus takes priority over the actual compilation.
if (flang->getFrontendOpts().printSupportedCPUs)
return printSupportedCPUs(flang->getInvocation().getTargetOpts().triple);
diff --git a/llvm/tools/llvm-split/llvm-split.cpp b/llvm/tools/llvm-split/llvm-split.cpp
index 2aa5207a4f1227..bf78764186b4e3 100644
--- a/llvm/tools/llvm-split/llvm-split.cpp
+++ b/llvm/tools/llvm-split/llvm-split.cpp
@@ -244,6 +244,8 @@ Error runSplitModuleByCategory(std::unique_ptr<Module> M) {
int main(int argc, char **argv) {
InitLLVM X(argc, argv);
+ InitializeAllTargets();
+ InitializeAllTargetMCs();
LLVMContext Context;
SMDiagnostic Err;
@@ -255,9 +257,6 @@ int main(int argc, char **argv) {
std::unique_ptr<TargetMachine> TM;
if (!MTriple.empty()) {
- InitializeAllTargets();
- InitializeAllTargetMCs();
-
std::string Error;
const Target *T = TargetRegistry::lookupTarget(TT, Error);
if (!T) {
More information about the flang-commits
mailing list