[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