Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions flang/include/flang/Optimizer/Dialect/FIRTypes.td
Original file line number Diff line number Diff line change
Expand Up @@ -676,4 +676,8 @@ def AnyBoxedArray
: TypeConstraint<And<[BoxOrClassType.predicate, IsArrayBoxPred]>,
"any boxed array">;

def ArrayOrIntegerType : TypeConstraint<Or<[fir_SequenceType.predicate,
AnyIntegerLike.predicate]>,
"fir.array or any integer">;

#endif // FIR_DIALECT_FIR_TYPES
38 changes: 38 additions & 0 deletions flang/include/flang/Optimizer/Dialect/MIF/MIFDialect.td
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
//===-- MIFDialect.td - MIF dialect base definitions - tablegen ---------*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
///
/// \file
/// Definition of the Multi-Image Fortran (MIF) dialect
///
//===----------------------------------------------------------------------===//

#ifndef FORTRAN_DIALECT_MIF_MIFDIALECT
#define FORTRAN_DIALECT_MIF_MIFDIALECT

include "mlir/IR/AttrTypeBase.td"
include "mlir/IR/EnumAttr.td"
include "mlir/IR/OpBase.td"

def MIFDialect : Dialect {
let name = "mif";

let summary = "Multi-Image Fortran dialect";

let description = [{
The "MIF" dialect is designed to contain the basic coarray operations
in Fortran and all multi image operations as descibed in the standard.
This includes synchronization operations, atomic operations,
image queries, teams, criticals, etc. The MIF dialect operations use
the FIR types and are tightly coupled with FIR and HLFIR.
}];

let cppNamespace = "::mif";
let dependentDialects = ["fir::FIROpsDialect"];
}

#endif // FORTRAN_DIALECT_MIF_MIFDIALECT
Loading