Skip to content

Commit bccb227

Browse files
committed
Revert "[flang][NFC] Move OpenMP related passes into a separate directory (#104732)"
This reverts commit 87eeed1.
1 parent 68e21e1 commit bccb227

19 files changed

+63
-153
lines changed

flang/docs/OpenMP-declare-target.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,15 +149,15 @@ flang/lib/Lower/OpenMP.cpp function `genDeclareTargetIntGlobal`.
149149

150150
There are currently two passes within Flang that are related to the processing
151151
of `declare target`:
152-
* `MarkDeclareTarget` - This pass is in charge of marking functions captured
152+
* `OMPMarkDeclareTarget` - This pass is in charge of marking functions captured
153153
(called from) in `target` regions or other `declare target` marked functions as
154154
`declare target`. It does so recursively, i.e. nested calls will also be
155155
implicitly marked. It currently will try to mark things as conservatively as
156156
possible, e.g. if captured in a `target` region it will apply `nohost`, unless
157157
it encounters a `host` `declare target` in which case it will apply the `any`
158158
device type. Functions are handled similarly, except we utilise the parent's
159159
device type where possible.
160-
* `FunctionFiltering` - This is executed after the `MarkDeclareTarget`
160+
* `OMPFunctionFiltering` - This is executed after the `OMPMarkDeclareTarget`
161161
pass, and its job is to conservatively remove host functions from
162162
the module where possible when compiling for the device. This helps make
163163
sure that most incompatible code for the host is not lowered for the

flang/docs/OpenMP-descriptor-management.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ Currently, Flang will lower these descriptor types in the OpenMP lowering (lower
4444
to all other map types, generating an omp.MapInfoOp containing relevant information required for lowering
4545
the OpenMP dialect to LLVM-IR during the final stages of the MLIR lowering. However, after
4646
the lowering to FIR/HLFIR has been performed an OpenMP dialect specific pass for Fortran,
47-
`MapInfoFinalizationPass` (Optimizer/OpenMP/MapInfoFinalization.cpp) will expand the
47+
`OMPMapInfoFinalizationPass` (Optimizer/OMPMapInfoFinalization.cpp) will expand the
4848
`omp.MapInfoOp`'s containing descriptors (which currently will be a `BoxType` or `BoxAddrOp`) into multiple
4949
mappings, with one extra per pointer member in the descriptor that is supported on top of the original
5050
descriptor map operation. These pointers members are linked to the parent descriptor by adding them to
@@ -53,7 +53,7 @@ owning operation's (`omp.TargetOp`, `omp.TargetDataOp` etc.) map operand list an
5353
operation is `IsolatedFromAbove`, it also inserts them as `BlockArgs` to canonicalize the mappings and
5454
simplify lowering.
5555
56-
An example transformation by the `MapInfoFinalizationPass`:
56+
An example transformation by the `OMPMapInfoFinalizationPass`:
5757
5858
```
5959

flang/include/flang/Optimizer/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,3 @@ add_subdirectory(CodeGen)
22
add_subdirectory(Dialect)
33
add_subdirectory(HLFIR)
44
add_subdirectory(Transforms)
5-
add_subdirectory(OpenMP)

flang/include/flang/Optimizer/OpenMP/CMakeLists.txt

Lines changed: 0 additions & 4 deletions
This file was deleted.

flang/include/flang/Optimizer/OpenMP/Passes.h

Lines changed: 0 additions & 30 deletions
This file was deleted.

flang/include/flang/Optimizer/OpenMP/Passes.td

Lines changed: 0 additions & 40 deletions
This file was deleted.

flang/include/flang/Optimizer/Transforms/Passes.td

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,32 @@ def LoopVersioning : Pass<"loop-versioning", "mlir::func::FuncOp"> {
340340
let dependentDialects = [ "fir::FIROpsDialect" ];
341341
}
342342

343+
def OMPMapInfoFinalizationPass
344+
: Pass<"omp-map-info-finalization"> {
345+
let summary = "expands OpenMP MapInfo operations containing descriptors";
346+
let description = [{
347+
Expands MapInfo operations containing descriptor types into multiple
348+
MapInfo's for each pointer element in the descriptor that requires
349+
explicit individual mapping by the OpenMP runtime.
350+
}];
351+
let dependentDialects = ["mlir::omp::OpenMPDialect"];
352+
}
353+
354+
def OMPMarkDeclareTargetPass
355+
: Pass<"omp-mark-declare-target", "mlir::ModuleOp"> {
356+
let summary = "Marks all functions called by an OpenMP declare target function as declare target";
357+
let dependentDialects = ["mlir::omp::OpenMPDialect"];
358+
}
359+
360+
def OMPFunctionFiltering : Pass<"omp-function-filtering"> {
361+
let summary = "Filters out functions intended for the host when compiling "
362+
"for the target device.";
363+
let dependentDialects = [
364+
"mlir::func::FuncDialect",
365+
"fir::FIROpsDialect"
366+
];
367+
}
368+
343369
def VScaleAttr : Pass<"vscale-attr", "mlir::func::FuncOp"> {
344370
let summary = "Add vscale_range attribute to functions";
345371
let description = [{

flang/include/flang/Tools/CLOptions.inc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
#include "mlir/Transforms/Passes.h"
1818
#include "flang/Optimizer/CodeGen/CodeGen.h"
1919
#include "flang/Optimizer/HLFIR/Passes.h"
20-
#include "flang/Optimizer/OpenMP/Passes.h"
2120
#include "flang/Optimizer/Transforms/Passes.h"
2221
#include "llvm/Passes/OptimizationLevel.h"
2322
#include "llvm/Support/CommandLine.h"
@@ -359,10 +358,10 @@ inline void createHLFIRToFIRPassPipeline(
359358
inline void createOpenMPFIRPassPipeline(
360359
mlir::PassManager &pm, bool isTargetDevice) {
361360
addNestedPassToAllTopLevelOperations(
362-
pm, flangomp::createMapInfoFinalizationPass);
363-
pm.addPass(flangomp::createMarkDeclareTargetPass());
361+
pm, fir::createOMPMapInfoFinalizationPass);
362+
pm.addPass(fir::createOMPMarkDeclareTargetPass());
364363
if (isTargetDevice)
365-
pm.addPass(flangomp::createFunctionFiltering());
364+
pm.addPass(fir::createOMPFunctionFiltering());
366365
}
367366

368367
#if !defined(FLANG_EXCLUDE_CODEGEN)

flang/lib/Frontend/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ add_flang_library(flangFrontend
3838
FIRTransforms
3939
HLFIRDialect
4040
HLFIRTransforms
41-
FlangOpenMPTransforms
4241
MLIRTransforms
4342
MLIRBuiltinToLLVMIRTranslation
4443
MLIRLLVMToLLVMIRTranslation

flang/lib/Optimizer/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,3 @@ add_subdirectory(HLFIR)
55
add_subdirectory(Support)
66
add_subdirectory(Transforms)
77
add_subdirectory(Analysis)
8-
add_subdirectory(OpenMP)

flang/lib/Optimizer/OpenMP/CMakeLists.txt

Lines changed: 0 additions & 25 deletions
This file was deleted.

flang/lib/Optimizer/Transforms/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ add_flang_library(FIRTransforms
2121
AddDebugInfo.cpp
2222
PolymorphicOpConversion.cpp
2323
LoopVersioning.cpp
24+
OMPFunctionFiltering.cpp
25+
OMPMapInfoFinalization.cpp
26+
OMPMarkDeclareTarget.cpp
2427
StackReclaim.cpp
2528
VScaleAttr.cpp
2629
FunctionAttr.cpp

flang/lib/Optimizer/OpenMP/FunctionFiltering.cpp renamed to flang/lib/Optimizer/Transforms/OMPFunctionFiltering.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//===- FunctionFiltering.cpp -------------------------------------------===//
1+
//===- OMPFunctionFiltering.cpp -------------------------------------------===//
22
//
33
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
44
// See https://llvm.org/LICENSE.txt for license information.
@@ -13,26 +13,26 @@
1313

1414
#include "flang/Optimizer/Dialect/FIRDialect.h"
1515
#include "flang/Optimizer/Dialect/FIROpsSupport.h"
16-
#include "flang/Optimizer/OpenMP/Passes.h"
16+
#include "flang/Optimizer/Transforms/Passes.h"
1717

1818
#include "mlir/Dialect/Func/IR/FuncOps.h"
1919
#include "mlir/Dialect/OpenMP/OpenMPDialect.h"
2020
#include "mlir/Dialect/OpenMP/OpenMPInterfaces.h"
2121
#include "mlir/IR/BuiltinOps.h"
2222
#include "llvm/ADT/SmallVector.h"
2323

24-
namespace flangomp {
25-
#define GEN_PASS_DEF_FUNCTIONFILTERING
26-
#include "flang/Optimizer/OpenMP/Passes.h.inc"
27-
} // namespace flangomp
24+
namespace fir {
25+
#define GEN_PASS_DEF_OMPFUNCTIONFILTERING
26+
#include "flang/Optimizer/Transforms/Passes.h.inc"
27+
} // namespace fir
2828

2929
using namespace mlir;
3030

3131
namespace {
32-
class FunctionFilteringPass
33-
: public flangomp::impl::FunctionFilteringBase<FunctionFilteringPass> {
32+
class OMPFunctionFilteringPass
33+
: public fir::impl::OMPFunctionFilteringBase<OMPFunctionFilteringPass> {
3434
public:
35-
FunctionFilteringPass() = default;
35+
OMPFunctionFilteringPass() = default;
3636

3737
void runOnOperation() override {
3838
MLIRContext *context = &getContext();

flang/lib/Optimizer/OpenMP/MapInfoFinalization.cpp renamed to flang/lib/Optimizer/Transforms/OMPMapInfoFinalization.cpp

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
//===- MapInfoFinalization.cpp -----------------------------------------===//
1+
//===- OMPMapInfoFinalization.cpp
2+
//---------------------------------------------------===//
23
//
34
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
45
// See https://llvm.org/LICENSE.txt for license information.
@@ -27,7 +28,7 @@
2728
#include "flang/Optimizer/Builder/FIRBuilder.h"
2829
#include "flang/Optimizer/Dialect/FIRType.h"
2930
#include "flang/Optimizer/Dialect/Support/KindMapping.h"
30-
#include "flang/Optimizer/OpenMP/Passes.h"
31+
#include "flang/Optimizer/Transforms/Passes.h"
3132
#include "mlir/Dialect/Func/IR/FuncOps.h"
3233
#include "mlir/Dialect/OpenMP/OpenMPDialect.h"
3334
#include "mlir/IR/BuiltinDialect.h"
@@ -40,15 +41,15 @@
4041
#include "llvm/Frontend/OpenMP/OMPConstants.h"
4142
#include <iterator>
4243

43-
namespace flangomp {
44-
#define GEN_PASS_DEF_MAPINFOFINALIZATIONPASS
45-
#include "flang/Optimizer/OpenMP/Passes.h.inc"
46-
} // namespace flangomp
44+
namespace fir {
45+
#define GEN_PASS_DEF_OMPMAPINFOFINALIZATIONPASS
46+
#include "flang/Optimizer/Transforms/Passes.h.inc"
47+
} // namespace fir
4748

4849
namespace {
49-
class MapInfoFinalizationPass
50-
: public flangomp::impl::MapInfoFinalizationPassBase<
51-
MapInfoFinalizationPass> {
50+
class OMPMapInfoFinalizationPass
51+
: public fir::impl::OMPMapInfoFinalizationPassBase<
52+
OMPMapInfoFinalizationPass> {
5253

5354
void genDescriptorMemberMaps(mlir::omp::MapInfoOp op,
5455
fir::FirOpBuilder &builder,
@@ -244,7 +245,7 @@ class MapInfoFinalizationPass
244245
// all users appropriately, making sure to only add a single member link
245246
// per new generation for the original originating descriptor MapInfoOp.
246247
assert(llvm::hasSingleElement(op->getUsers()) &&
247-
"MapInfoFinalization currently only supports single users "
248+
"OMPMapInfoFinalization currently only supports single users "
248249
"of a MapInfoOp");
249250

250251
if (!op.getMembers().empty()) {

flang/lib/Optimizer/OpenMP/MarkDeclareTarget.cpp renamed to flang/lib/Optimizer/Transforms/OMPMarkDeclareTarget.cpp

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,4 @@
1-
//===- MarkDeclareTarget.cpp -------------------------------------------===//
2-
//
3-
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4-
// See https://llvm.org/LICENSE.txt for license information.
5-
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6-
//
7-
//===----------------------------------------------------------------------===//
8-
//
9-
// Mark functions called from explicit target code as implicitly declare target.
10-
//
11-
//===----------------------------------------------------------------------===//
12-
13-
#include "flang/Optimizer/OpenMP/Passes.h"
1+
#include "flang/Optimizer/Transforms/Passes.h"
142
#include "mlir/Dialect/Func/IR/FuncOps.h"
153
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
164
#include "mlir/Dialect/OpenMP/OpenMPDialect.h"
@@ -22,14 +10,14 @@
2210
#include "mlir/Support/LLVM.h"
2311
#include "llvm/ADT/SmallPtrSet.h"
2412

25-
namespace flangomp {
26-
#define GEN_PASS_DEF_MARKDECLARETARGETPASS
27-
#include "flang/Optimizer/OpenMP/Passes.h.inc"
28-
} // namespace flangomp
13+
namespace fir {
14+
#define GEN_PASS_DEF_OMPMARKDECLARETARGETPASS
15+
#include "flang/Optimizer/Transforms/Passes.h.inc"
16+
} // namespace fir
2917

3018
namespace {
31-
class MarkDeclareTargetPass
32-
: public flangomp::impl::MarkDeclareTargetPassBase<MarkDeclareTargetPass> {
19+
class OMPMarkDeclareTargetPass
20+
: public fir::impl::OMPMarkDeclareTargetPassBase<OMPMarkDeclareTargetPass> {
3321

3422
void markNestedFuncs(mlir::omp::DeclareTargetDeviceType parentDevTy,
3523
mlir::omp::DeclareTargetCaptureClause parentCapClause,

flang/tools/bbc/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ FIRTransforms
2525
FIRBuilder
2626
HLFIRDialect
2727
HLFIRTransforms
28-
FlangOpenMPTransforms
2928
${dialect_libs}
3029
${extension_libs}
3130
MLIRAffineToStandard

flang/tools/fir-opt/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ target_link_libraries(fir-opt PRIVATE
1919
FIRCodeGen
2020
HLFIRDialect
2121
HLFIRTransforms
22-
FlangOpenMPTransforms
2322
FIRAnalysis
2423
${test_libs}
2524
${dialect_libs}

flang/tools/fir-opt/fir-opt.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
#include "mlir/Tools/mlir-opt/MlirOptMain.h"
1515
#include "flang/Optimizer/CodeGen/CodeGen.h"
1616
#include "flang/Optimizer/HLFIR/Passes.h"
17-
#include "flang/Optimizer/OpenMP/Passes.h"
1817
#include "flang/Optimizer/Support/InitFIR.h"
1918
#include "flang/Optimizer/Transforms/Passes.h"
2019

@@ -35,7 +34,6 @@ int main(int argc, char **argv) {
3534
fir::registerOptCodeGenPasses();
3635
fir::registerOptTransformPasses();
3736
hlfir::registerHLFIRPasses();
38-
flangomp::registerFlangOpenMPPasses();
3937
#ifdef FLANG_INCLUDE_TESTS
4038
fir::test::registerTestFIRAliasAnalysisPass();
4139
mlir::registerSideEffectTestPasses();

flang/tools/tco/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ target_link_libraries(tco PRIVATE
1717
FIRBuilder
1818
HLFIRDialect
1919
HLFIRTransforms
20-
FlangOpenMPTransforms
2120
${dialect_libs}
2221
${extension_libs}
2322
MLIRIR

0 commit comments

Comments
 (0)