[flang-commits] [flang] 31a6fed - [flang] Move AddAliasTags pass after BoxedProcedurePass. (#156780)
via flang-commits
flang-commits at lists.llvm.org
Thu Sep 4 10:30:20 PDT 2025
Author: Slava Zakharin
Date: 2025-09-04T10:30:16-07:00
New Revision: 31a6fedb982a7d9ea6d37f6ae86a220e5a141cd5
URL: https://github.com/llvm/llvm-project/commit/31a6fedb982a7d9ea6d37f6ae86a220e5a141cd5
DIFF: https://github.com/llvm/llvm-project/commit/31a6fedb982a7d9ea6d37f6ae86a220e5a141cd5.diff
LOG: [flang] Move AddAliasTags pass after BoxedProcedurePass. (#156780)
Move AddAliasTags after BoxedProcedurePass to be able to compute
the size of Fortran variables by converting their types to LLVM
types and applying DL size/alignment computations.
This is one of the approaches to unblock #156558.
This change does not affect performance in my testing.
Added:
Modified:
flang/lib/Optimizer/Passes/Pipelines.cpp
flang/test/Driver/mlir-pass-pipeline.f90
flang/test/Fir/basic-program.fir
Removed:
################################################################################
diff --git a/flang/lib/Optimizer/Passes/Pipelines.cpp b/flang/lib/Optimizer/Passes/Pipelines.cpp
index 6cc3290ff5cc2..7c2777baebef1 100644
--- a/flang/lib/Optimizer/Passes/Pipelines.cpp
+++ b/flang/lib/Optimizer/Passes/Pipelines.cpp
@@ -217,9 +217,6 @@ void createDefaultFIROptimizerPassPipeline(mlir::PassManager &pm,
pm.addPass(fir::createSimplifyFIROperations(
{/*preferInlineImplementation=*/pc.OptLevel.isOptimizingForSpeed()}));
- if (pc.AliasAnalysis && !disableFirAliasTags && !useOldAliasTags)
- pm.addPass(fir::createAddAliasTags());
-
addNestedPassToAllTopLevelOperations<PassConstructor>(
pm, fir::createStackReclaim);
// convert control flow to CFG form
@@ -345,6 +342,9 @@ void createDefaultFIRCodeGenPassPipeline(mlir::PassManager &pm,
MLIRToLLVMPassPipelineConfig config,
llvm::StringRef inputFilename) {
fir::addBoxedProcedurePass(pm);
+ if (config.OptLevel.isOptimizingForSpeed() && config.AliasAnalysis &&
+ !disableFirAliasTags && !useOldAliasTags)
+ pm.addPass(fir::createAddAliasTags());
addNestedPassToAllTopLevelOperations<PassConstructor>(
pm, fir::createAbstractResultOpt);
addPassToGPUModuleOperations<PassConstructor>(pm,
diff --git a/flang/test/Driver/mlir-pass-pipeline.f90 b/flang/test/Driver/mlir-pass-pipeline.f90
index 0bcd055a84b87..e85a7728fc9af 100644
--- a/flang/test/Driver/mlir-pass-pipeline.f90
+++ b/flang/test/Driver/mlir-pass-pipeline.f90
@@ -109,7 +109,6 @@
! O2-NEXT: OptimizeArrayRepacking
! ALL-NEXT: LowerRepackArraysPass
! ALL-NEXT: SimplifyFIROperations
-! O2-NEXT: AddAliasTags
! ALL-NEXT: Pipeline Collection : ['fir.global', 'func.func', 'omp.declare_reduction', 'omp.private']
! ALL-NEXT: 'fir.global' Pipeline
@@ -134,6 +133,7 @@
! O2-NEXT: 'func.func' Pipeline
! O2-NEXT: SetRuntimeCallAttributes
! ALL-NEXT: BoxedProcedurePass
+! O2-NEXT: AddAliasTags
! ALL-NEXT: Pipeline Collection : ['fir.global', 'func.func', 'gpu.module', 'omp.declare_reduction', 'omp.private']
! ALL-NEXT: 'fir.global' Pipeline
diff --git a/flang/test/Fir/basic-program.fir b/flang/test/Fir/basic-program.fir
index c9fe53bf093a1..0a31397efb332 100644
--- a/flang/test/Fir/basic-program.fir
+++ b/flang/test/Fir/basic-program.fir
@@ -107,7 +107,6 @@ func.func @_QQmain() {
// PASSES-NEXT: OptimizeArrayRepacking
// PASSES-NEXT: LowerRepackArraysPass
// PASSES-NEXT: SimplifyFIROperations
-// PASSES-NEXT: AddAliasTags
// PASSES-NEXT: Pipeline Collection : ['fir.global', 'func.func', 'omp.declare_reduction', 'omp.private']
// PASSES-NEXT: 'fir.global' Pipeline
@@ -132,6 +131,7 @@ func.func @_QQmain() {
// PASSES-NEXT: 'func.func' Pipeline
// PASSES-NEXT: SetRuntimeCallAttributes
// PASSES-NEXT: BoxedProcedurePass
+// PASSES-NEXT: AddAliasTags
// PASSES-NEXT: Pipeline Collection : ['fir.global', 'func.func', 'gpu.module', 'omp.declare_reduction', 'omp.private']
// PASSES-NEXT: 'fir.global' Pipeline
More information about the flang-commits
mailing list