[flang-commits] [flang] fc5b1bb - [flang] Add getFIRToLLVMPassOptions helper function (#179293)
via flang-commits
flang-commits at lists.llvm.org
Wed Feb 4 08:19:21 PST 2026
Author: Delaram Talaashrafi
Date: 2026-02-04T17:19:16+01:00
New Revision: fc5b1bb8f8f5073dfa0ab363db8620e7cd787a81
URL: https://github.com/llvm/llvm-project/commit/fc5b1bb8f8f5073dfa0ab363db8620e7cd787a81
DIFF: https://github.com/llvm/llvm-project/commit/fc5b1bb8f8f5073dfa0ab363db8620e7cd787a81.diff
LOG: [flang] Add getFIRToLLVMPassOptions helper function (#179293)
Extract `FIRToLLVMPassOptions` initialization into a helper function,
allowing other code to construct pass options from pipeline
configuration without duplication.
---------
Co-authored-by: Delaram Talaashrafi <dtalaashrafi at rome5.pgi.net>
Added:
Modified:
flang/include/flang/Optimizer/Passes/Pipelines.h
flang/lib/Optimizer/Passes/Pipelines.cpp
Removed:
################################################################################
diff --git a/flang/include/flang/Optimizer/Passes/Pipelines.h b/flang/include/flang/Optimizer/Passes/Pipelines.h
index 70b9341347244..1a7ff4ff3dfa2 100644
--- a/flang/include/flang/Optimizer/Passes/Pipelines.h
+++ b/flang/include/flang/Optimizer/Passes/Pipelines.h
@@ -105,6 +105,10 @@ void addDebugInfoPass(mlir::PassManager &pm,
llvm::OptimizationLevel optLevel,
llvm::StringRef inputFilename, int32_t dwarfVersion);
+/// Create FIRToLLVMPassOptions from pipeline configuration.
+FIRToLLVMPassOptions
+getFIRToLLVMPassOptions(const MLIRToLLVMPassPipelineConfig &config);
+
void addFIRToLLVMPass(mlir::PassManager &pm,
const MLIRToLLVMPassPipelineConfig &config);
diff --git a/flang/lib/Optimizer/Passes/Pipelines.cpp b/flang/lib/Optimizer/Passes/Pipelines.cpp
index 6054675643c64..6812347a8d39b 100644
--- a/flang/lib/Optimizer/Passes/Pipelines.cpp
+++ b/flang/lib/Optimizer/Passes/Pipelines.cpp
@@ -108,8 +108,8 @@ void addDebugInfoPass(mlir::PassManager &pm,
[&]() { return fir::createAddDebugInfoPass(options); });
}
-void addFIRToLLVMPass(mlir::PassManager &pm,
- const MLIRToLLVMPassPipelineConfig &config) {
+fir::FIRToLLVMPassOptions
+getFIRToLLVMPassOptions(const MLIRToLLVMPassPipelineConfig &config) {
fir::FIRToLLVMPassOptions options;
options.ignoreMissingTypeDescriptors = ignoreMissingTypeDescriptors;
options.skipExternalRttiDefinition = skipExternalRttiDefinition;
@@ -118,6 +118,12 @@ void addFIRToLLVMPass(mlir::PassManager &pm,
options.typeDescriptorsRenamedForAssembly =
!disableCompilerGeneratedNamesConversion;
options.ComplexRange = config.ComplexRange;
+ return options;
+}
+
+void addFIRToLLVMPass(mlir::PassManager &pm,
+ const MLIRToLLVMPassPipelineConfig &config) {
+ fir::FIRToLLVMPassOptions options = getFIRToLLVMPassOptions(config);
addPassConditionally(pm, disableFirToLlvmIr,
[&]() { return fir::createFIRToLLVMPass(options); });
// The dialect conversion framework may leave dead unrealized_conversion_cast
More information about the flang-commits
mailing list