MLIR  20.0.0git
Macros | Functions
OpenMPDialect.cpp File Reference
#include "mlir/Dialect/OpenMP/OpenMPDialect.h"
#include "mlir/Conversion/ConvertToLLVM/ToLLVMInterface.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/LLVMIR/LLVMTypes.h"
#include "mlir/Dialect/OpenACCMPCommon/Interfaces/AtomicInterfaces.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/DialectImplementation.h"
#include "mlir/IR/OpImplementation.h"
#include "mlir/IR/OperationSupport.h"
#include "mlir/Interfaces/FoldInterfaces.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/STLForwardCompat.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Frontend/OpenMP/OMPConstants.h"
#include <cstddef>
#include <iterator>
#include <optional>
#include <variant>
#include "mlir/Dialect/OpenMP/OpenMPOpsDialect.cpp.inc"
#include "mlir/Dialect/OpenMP/OpenMPOpsEnums.cpp.inc"
#include "mlir/Dialect/OpenMP/OpenMPOpsInterfaces.cpp.inc"
#include "mlir/Dialect/OpenMP/OpenMPTypeInterfaces.cpp.inc"
#include "mlir/Dialect/OpenMP/OpenMPOps.cpp.inc"
#include "mlir/Dialect/OpenMP/OpenMPOpsAttributes.cpp.inc"
#include "mlir/Dialect/OpenMP/OpenMPOpsTypes.cpp.inc"

Go to the source code of this file.

Macros

#define GET_OP_LIST
 
#define GET_ATTRDEF_LIST
 
#define GET_TYPEDEF_LIST
 
#define GET_ATTRDEF_CLASSES
 
#define GET_OP_CLASSES
 
#define GET_TYPEDEF_CLASSES
 

Functions

static ArrayAttr makeArrayAttr (MLIRContext *context, llvm::ArrayRef< Attribute > attrs)
 
static DenseBoolArrayAttr makeDenseBoolArrayAttr (MLIRContext *ctx, const ArrayRef< bool > boolArray)
 
static ParseResult parseAllocateAndAllocator (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &allocateVars, SmallVectorImpl< Type > &allocateTypes, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &allocatorVars, SmallVectorImpl< Type > &allocatorTypes)
 Parse an allocate clause with allocators and a list of operands with types. More...
 
static void printAllocateAndAllocator (OpAsmPrinter &p, Operation *op, OperandRange allocateVars, TypeRange allocateTypes, OperandRange allocatorVars, TypeRange allocatorTypes)
 Print allocate clause. More...
 
template<typename ClauseAttr >
static ParseResult parseClauseAttr (AsmParser &parser, ClauseAttr &attr)
 
template<typename ClauseAttr >
void printClauseAttr (OpAsmPrinter &p, Operation *op, ClauseAttr attr)
 
static ParseResult parseLinearClause (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &linearVars, SmallVectorImpl< Type > &linearTypes, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &linearStepVars)
 linear ::= linear ( linear-list ) linear-list := linear-val | linear-val linear-list linear-val := ssa-id-and-type = ssa-id-and-type More...
 
static void printLinearClause (OpAsmPrinter &p, Operation *op, ValueRange linearVars, TypeRange linearTypes, ValueRange linearStepVars)
 Print Linear Clause. More...
 
static LogicalResult verifyNontemporalClause (Operation *op, OperandRange nontemporalVars)
 
static LogicalResult verifyAlignedClause (Operation *op, std::optional< ArrayAttr > alignments, OperandRange alignedVars)
 
static ParseResult parseAlignedClause (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &alignedVars, SmallVectorImpl< Type > &alignedTypes, ArrayAttr &alignmentsAttr)
 aligned ::= aligned ( aligned-list ) aligned-list := aligned-val | aligned-val aligned-list aligned-val := ssa-id-and-type -> alignment More...
 
static void printAlignedClause (OpAsmPrinter &p, Operation *op, ValueRange alignedVars, TypeRange alignedTypes, std::optional< ArrayAttr > alignments)
 Print Aligned Clause. More...
 
static ParseResult verifyScheduleModifiers (OpAsmParser &parser, SmallVectorImpl< SmallString< 12 >> &modifiers)
 
static ParseResult parseScheduleClause (OpAsmParser &parser, ClauseScheduleKindAttr &scheduleAttr, ScheduleModifierAttr &scheduleMod, UnitAttr &scheduleSimd, std::optional< OpAsmParser::UnresolvedOperand > &chunkSize, Type &chunkType)
 schedule ::= schedule ( sched-list ) sched-list ::= sched-val | sched-val sched-list | sched-val , sched-modifier sched-val ::= sched-with-chunk | sched-wo-chunk sched-with-chunk ::= sched-with-chunk-types (= ssa-id-and-type)? sched-with-chunk-types ::= static | dynamic | guided sched-wo-chunk ::= auto | runtime sched-modifier ::= sched-mod-val | sched-mod-val , sched-mod-val sched-mod-val ::= monotonic | nonmonotonic | simd | none More...
 
static void printScheduleClause (OpAsmPrinter &p, Operation *op, ClauseScheduleKindAttr scheduleKind, ScheduleModifierAttr scheduleMod, UnitAttr scheduleSimd, Value scheduleChunk, Type scheduleChunkType)
 Print schedule clause. More...
 
static ParseResult parseOrderClause (OpAsmParser &parser, ClauseOrderKindAttr &order, OrderModifierAttr &orderMod)
 
static void printOrderClause (OpAsmPrinter &p, Operation *op, ClauseOrderKindAttr order, OrderModifierAttr orderMod)
 
static ParseResult parseClauseWithRegionArgs (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &operands, SmallVectorImpl< Type > &types, SmallVectorImpl< OpAsmParser::Argument > &regionPrivateArgs, ArrayAttr *symbols=nullptr, DenseBoolArrayAttr *byref=nullptr)
 
static ParseResult parseBlockArgClause (OpAsmParser &parser, llvm::SmallVectorImpl< OpAsmParser::Argument > &entryBlockArgs, StringRef keyword, std::optional< MapParseArgs > mapArgs)
 
static ParseResult parseBlockArgClause (OpAsmParser &parser, llvm::SmallVectorImpl< OpAsmParser::Argument > &entryBlockArgs, StringRef keyword, std::optional< PrivateParseArgs > reductionArgs)
 
static ParseResult parseBlockArgClause (OpAsmParser &parser, llvm::SmallVectorImpl< OpAsmParser::Argument > &entryBlockArgs, StringRef keyword, std::optional< ReductionParseArgs > reductionArgs)
 
static ParseResult parseBlockArgRegion (OpAsmParser &parser, Region &region, AllRegionParseArgs args)
 
static ParseResult parseInReductionMapPrivateRegion (OpAsmParser &parser, Region &region, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &inReductionVars, SmallVectorImpl< Type > &inReductionTypes, DenseBoolArrayAttr &inReductionByref, ArrayAttr &inReductionSyms, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &mapVars, SmallVectorImpl< Type > &mapTypes, llvm::SmallVectorImpl< OpAsmParser::UnresolvedOperand > &privateVars, llvm::SmallVectorImpl< Type > &privateTypes, ArrayAttr &privateSyms)
 
static ParseResult parseInReductionPrivateRegion (OpAsmParser &parser, Region &region, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &inReductionVars, SmallVectorImpl< Type > &inReductionTypes, DenseBoolArrayAttr &inReductionByref, ArrayAttr &inReductionSyms, llvm::SmallVectorImpl< OpAsmParser::UnresolvedOperand > &privateVars, llvm::SmallVectorImpl< Type > &privateTypes, ArrayAttr &privateSyms)
 
static ParseResult parseInReductionPrivateReductionRegion (OpAsmParser &parser, Region &region, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &inReductionVars, SmallVectorImpl< Type > &inReductionTypes, DenseBoolArrayAttr &inReductionByref, ArrayAttr &inReductionSyms, llvm::SmallVectorImpl< OpAsmParser::UnresolvedOperand > &privateVars, llvm::SmallVectorImpl< Type > &privateTypes, ArrayAttr &privateSyms, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &reductionVars, SmallVectorImpl< Type > &reductionTypes, DenseBoolArrayAttr &reductionByref, ArrayAttr &reductionSyms)
 
static ParseResult parsePrivateRegion (OpAsmParser &parser, Region &region, llvm::SmallVectorImpl< OpAsmParser::UnresolvedOperand > &privateVars, llvm::SmallVectorImpl< Type > &privateTypes, ArrayAttr &privateSyms)
 
static ParseResult parsePrivateReductionRegion (OpAsmParser &parser, Region &region, llvm::SmallVectorImpl< OpAsmParser::UnresolvedOperand > &privateVars, llvm::SmallVectorImpl< Type > &privateTypes, ArrayAttr &privateSyms, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &reductionVars, SmallVectorImpl< Type > &reductionTypes, DenseBoolArrayAttr &reductionByref, ArrayAttr &reductionSyms)
 
static ParseResult parseTaskReductionRegion (OpAsmParser &parser, Region &region, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &taskReductionVars, SmallVectorImpl< Type > &taskReductionTypes, DenseBoolArrayAttr &taskReductionByref, ArrayAttr &taskReductionSyms)
 
static ParseResult parseUseDeviceAddrUseDevicePtrRegion (OpAsmParser &parser, Region &region, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &useDeviceAddrVars, SmallVectorImpl< Type > &useDeviceAddrTypes, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &useDevicePtrVars, SmallVectorImpl< Type > &useDevicePtrTypes)
 
static void printClauseWithRegionArgs (OpAsmPrinter &p, MLIRContext *ctx, StringRef clauseName, ValueRange argsSubrange, ValueRange operands, TypeRange types, ArrayAttr symbols=nullptr, DenseBoolArrayAttr byref=nullptr)
 
static void printBlockArgClause (OpAsmPrinter &p, MLIRContext *ctx, StringRef clauseName, ValueRange argsSubrange, std::optional< MapPrintArgs > mapArgs)
 
static void printBlockArgClause (OpAsmPrinter &p, MLIRContext *ctx, StringRef clauseName, ValueRange argsSubrange, std::optional< PrivatePrintArgs > privateArgs)
 
static void printBlockArgClause (OpAsmPrinter &p, MLIRContext *ctx, StringRef clauseName, ValueRange argsSubrange, std::optional< ReductionPrintArgs > reductionArgs)
 
static void printBlockArgRegion (OpAsmPrinter &p, Operation *op, Region &region, const AllRegionPrintArgs &args)
 
static void printInReductionMapPrivateRegion (OpAsmPrinter &p, Operation *op, Region &region, ValueRange inReductionVars, TypeRange inReductionTypes, DenseBoolArrayAttr inReductionByref, ArrayAttr inReductionSyms, ValueRange mapVars, TypeRange mapTypes, ValueRange privateVars, TypeRange privateTypes, ArrayAttr privateSyms)
 
static void printInReductionPrivateRegion (OpAsmPrinter &p, Operation *op, Region &region, ValueRange inReductionVars, TypeRange inReductionTypes, DenseBoolArrayAttr inReductionByref, ArrayAttr inReductionSyms, ValueRange privateVars, TypeRange privateTypes, ArrayAttr privateSyms)
 
static void printInReductionPrivateReductionRegion (OpAsmPrinter &p, Operation *op, Region &region, ValueRange inReductionVars, TypeRange inReductionTypes, DenseBoolArrayAttr inReductionByref, ArrayAttr inReductionSyms, ValueRange privateVars, TypeRange privateTypes, ArrayAttr privateSyms, ValueRange reductionVars, TypeRange reductionTypes, DenseBoolArrayAttr reductionByref, ArrayAttr reductionSyms)
 
static void printPrivateRegion (OpAsmPrinter &p, Operation *op, Region &region, ValueRange privateVars, TypeRange privateTypes, ArrayAttr privateSyms)
 
static void printPrivateReductionRegion (OpAsmPrinter &p, Operation *op, Region &region, ValueRange privateVars, TypeRange privateTypes, ArrayAttr privateSyms, ValueRange reductionVars, TypeRange reductionTypes, DenseBoolArrayAttr reductionByref, ArrayAttr reductionSyms)
 
static void printTaskReductionRegion (OpAsmPrinter &p, Operation *op, Region &region, ValueRange taskReductionVars, TypeRange taskReductionTypes, DenseBoolArrayAttr taskReductionByref, ArrayAttr taskReductionSyms)
 
static void printUseDeviceAddrUseDevicePtrRegion (OpAsmPrinter &p, Operation *op, Region &region, ValueRange useDeviceAddrVars, TypeRange useDeviceAddrTypes, ValueRange useDevicePtrVars, TypeRange useDevicePtrTypes)
 
static LogicalResult verifyReductionVarList (Operation *op, std::optional< ArrayAttr > reductionSyms, OperandRange reductionVars, std::optional< ArrayRef< bool >> reductionByref)
 Verifies Reduction Clause. More...
 
static ParseResult parseCopyprivate (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &copyprivateVars, SmallVectorImpl< Type > &copyprivateTypes, ArrayAttr &copyprivateSyms)
 copyprivate-entry-list ::= copyprivate-entry | copyprivate-entry-list , copyprivate-entry copyprivate-entry ::= ssa-id -> symbol-ref : type More...
 
static void printCopyprivate (OpAsmPrinter &p, Operation *op, OperandRange copyprivateVars, TypeRange copyprivateTypes, std::optional< ArrayAttr > copyprivateSyms)
 Print Copyprivate clause. More...
 
static LogicalResult verifyCopyprivateVarList (Operation *op, OperandRange copyprivateVars, std::optional< ArrayAttr > copyprivateSyms)
 Verifies CopyPrivate Clause. More...
 
static ParseResult parseDependVarList (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &dependVars, SmallVectorImpl< Type > &dependTypes, ArrayAttr &dependKinds)
 depend-entry-list ::= depend-entry | depend-entry-list , depend-entry depend-entry ::= depend-kind -> ssa-id : type More...
 
static void printDependVarList (OpAsmPrinter &p, Operation *op, OperandRange dependVars, TypeRange dependTypes, std::optional< ArrayAttr > dependKinds)
 Print Depend clause. More...
 
static LogicalResult verifyDependVarList (Operation *op, std::optional< ArrayAttr > dependKinds, OperandRange dependVars)
 Verifies Depend clause. More...
 
static ParseResult parseSynchronizationHint (OpAsmParser &parser, IntegerAttr &hintAttr)
 Parses a Synchronization Hint clause. More...
 
static void printSynchronizationHint (OpAsmPrinter &p, Operation *op, IntegerAttr hintAttr)
 Prints a Synchronization Hint clause. More...
 
static LogicalResult verifySynchronizationHint (Operation *op, uint64_t hint)
 Verifies a synchronization hint clause. More...
 
uint64_t mapTypeToBitFlag (uint64_t value, llvm::omp::OpenMPOffloadMappingFlags flag)
 
static ParseResult parseMapClause (OpAsmParser &parser, IntegerAttr &mapType)
 Parses a map_entries map type from a string format back into its numeric value. More...
 
static void printMapClause (OpAsmPrinter &p, Operation *op, IntegerAttr mapType)
 Prints a map_entries map type from its numeric value out into its string format. More...
 
static ParseResult parseMembersIndex (OpAsmParser &parser, ArrayAttr &membersIdx)
 
static void printMembersIndex (OpAsmPrinter &p, MapInfoOp op, ArrayAttr membersIdx)
 
static void printCaptureType (OpAsmPrinter &p, Operation *op, VariableCaptureKindAttr mapCaptureType)
 
static ParseResult parseCaptureType (OpAsmParser &parser, VariableCaptureKindAttr &mapCaptureType)
 
static LogicalResult verifyMapClause (Operation *op, OperandRange mapVars)
 
template<typename OpType >
static LogicalResult verifyPrivateVarList (OpType &op)
 
static bool opInGlobalImplicitParallelRegion (Operation *op)
 
static LogicalResult verifyOrderedParent (Operation &op)
 

Macro Definition Documentation

◆ GET_ATTRDEF_CLASSES

#define GET_ATTRDEF_CLASSES

Definition at line 2841 of file OpenMPDialect.cpp.

◆ GET_ATTRDEF_LIST

#define GET_ATTRDEF_LIST

◆ GET_OP_CLASSES

#define GET_OP_CLASSES

Definition at line 2844 of file OpenMPDialect.cpp.

◆ GET_OP_LIST

#define GET_OP_LIST

◆ GET_TYPEDEF_CLASSES

#define GET_TYPEDEF_CLASSES

Definition at line 2847 of file OpenMPDialect.cpp.

◆ GET_TYPEDEF_LIST

#define GET_TYPEDEF_LIST

Function Documentation

◆ makeArrayAttr()

static ArrayAttr makeArrayAttr ( MLIRContext context,
llvm::ArrayRef< Attribute attrs 
)
static

Definition at line 47 of file OpenMPDialect.cpp.

References mlir::get().

◆ makeDenseBoolArrayAttr()

static DenseBoolArrayAttr makeDenseBoolArrayAttr ( MLIRContext ctx,
const ArrayRef< bool >  boolArray 
)
static

Definition at line 53 of file OpenMPDialect.cpp.

References mlir::detail::DenseArrayAttrImpl< T >::get().

Referenced by parseClauseWithRegionArgs().

◆ mapTypeToBitFlag()

uint64_t mapTypeToBitFlag ( uint64_t  value,
llvm::omp::OpenMPOffloadMappingFlags  flag 
)

Definition at line 1281 of file OpenMPDialect.cpp.

Referenced by printMapClause(), and verifyMapClause().

◆ opInGlobalImplicitParallelRegion()

static bool opInGlobalImplicitParallelRegion ( Operation op)
static

◆ parseAlignedClause()

static ParseResult parseAlignedClause ( OpAsmParser parser,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  alignedVars,
SmallVectorImpl< Type > &  alignedTypes,
ArrayAttr &  alignmentsAttr 
)
static

aligned ::= aligned ( aligned-list ) aligned-list := aligned-val | aligned-val aligned-list aligned-val := ssa-id-and-type -> alignment

Definition at line 282 of file OpenMPDialect.cpp.

References mlir::AsmParser::parseCommaSeparatedList().

◆ parseAllocateAndAllocator()

static ParseResult parseAllocateAndAllocator ( OpAsmParser parser,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  allocateVars,
SmallVectorImpl< Type > &  allocateTypes,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  allocatorVars,
SmallVectorImpl< Type > &  allocatorTypes 
)
static

Parse an allocate clause with allocators and a list of operands with types.

allocate-operand-list :: = allocate-operand | allocator-operand , allocate-operand-list allocate-operand :: = ssa-id-and-type -> ssa-id-and-type ssa-id-and-type ::= ssa-id : type

Definition at line 121 of file OpenMPDialect.cpp.

References mlir::AsmParser::parseArrow(), mlir::AsmParser::parseColonType(), mlir::AsmParser::parseCommaSeparatedList(), and mlir::OpAsmParser::parseOperand().

◆ parseBlockArgClause() [1/3]

static ParseResult parseBlockArgClause ( OpAsmParser parser,
llvm::SmallVectorImpl< OpAsmParser::Argument > &  entryBlockArgs,
StringRef  keyword,
std::optional< MapParseArgs >  mapArgs 
)
static

◆ parseBlockArgClause() [2/3]

static ParseResult parseBlockArgClause ( OpAsmParser parser,
llvm::SmallVectorImpl< OpAsmParser::Argument > &  entryBlockArgs,
StringRef  keyword,
std::optional< PrivateParseArgs >  reductionArgs 
)
static

◆ parseBlockArgClause() [3/3]

static ParseResult parseBlockArgClause ( OpAsmParser parser,
llvm::SmallVectorImpl< OpAsmParser::Argument > &  entryBlockArgs,
StringRef  keyword,
std::optional< ReductionParseArgs >  reductionArgs 
)
static

◆ parseBlockArgRegion()

static ParseResult parseBlockArgRegion ( OpAsmParser parser,
Region region,
AllRegionParseArgs  args 
)
static

◆ parseCaptureType()

static ParseResult parseCaptureType ( OpAsmParser parser,
VariableCaptureKindAttr &  mapCaptureType 
)
static

◆ parseClauseAttr()

template<typename ClauseAttr >
static ParseResult parseClauseAttr ( AsmParser parser,
ClauseAttr &  attr 
)
static

◆ parseClauseWithRegionArgs()

static ParseResult parseClauseWithRegionArgs ( OpAsmParser parser,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  operands,
SmallVectorImpl< Type > &  types,
SmallVectorImpl< OpAsmParser::Argument > &  regionPrivateArgs,
ArrayAttr *  symbols = nullptr,
DenseBoolArrayAttr byref = nullptr 
)
static

◆ parseCopyprivate()

static ParseResult parseCopyprivate ( OpAsmParser parser,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  copyprivateVars,
SmallVectorImpl< Type > &  copyprivateTypes,
ArrayAttr &  copyprivateSyms 
)
static

copyprivate-entry-list ::= copyprivate-entry | copyprivate-entry-list , copyprivate-entry copyprivate-entry ::= ssa-id -> symbol-ref : type

Definition at line 1027 of file OpenMPDialect.cpp.

References mlir::get(), mlir::AsmParser::getContext(), and mlir::AsmParser::parseCommaSeparatedList().

◆ parseDependVarList()

static ParseResult parseDependVarList ( OpAsmParser parser,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  dependVars,
SmallVectorImpl< Type > &  dependTypes,
ArrayAttr &  dependKinds 
)
static

depend-entry-list ::= depend-entry | depend-entry-list , depend-entry depend-entry ::= depend-kind -> ssa-id : type

Definition at line 1131 of file OpenMPDialect.cpp.

References mlir::get(), mlir::AsmParser::getContext(), and mlir::AsmParser::parseCommaSeparatedList().

◆ parseInReductionMapPrivateRegion()

static ParseResult parseInReductionMapPrivateRegion ( OpAsmParser parser,
Region region,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  inReductionVars,
SmallVectorImpl< Type > &  inReductionTypes,
DenseBoolArrayAttr inReductionByref,
ArrayAttr &  inReductionSyms,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  mapVars,
SmallVectorImpl< Type > &  mapTypes,
llvm::SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  privateVars,
llvm::SmallVectorImpl< Type > &  privateTypes,
ArrayAttr &  privateSyms 
)
static

Definition at line 669 of file OpenMPDialect.cpp.

References parseBlockArgRegion().

◆ parseInReductionPrivateReductionRegion()

static ParseResult parseInReductionPrivateReductionRegion ( OpAsmParser parser,
Region region,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  inReductionVars,
SmallVectorImpl< Type > &  inReductionTypes,
DenseBoolArrayAttr inReductionByref,
ArrayAttr &  inReductionSyms,
llvm::SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  privateVars,
llvm::SmallVectorImpl< Type > &  privateTypes,
ArrayAttr &  privateSyms,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  reductionVars,
SmallVectorImpl< Type > &  reductionTypes,
DenseBoolArrayAttr reductionByref,
ArrayAttr &  reductionSyms 
)
static

Definition at line 700 of file OpenMPDialect.cpp.

References parseBlockArgRegion().

◆ parseInReductionPrivateRegion()

static ParseResult parseInReductionPrivateRegion ( OpAsmParser parser,
Region region,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  inReductionVars,
SmallVectorImpl< Type > &  inReductionTypes,
DenseBoolArrayAttr inReductionByref,
ArrayAttr &  inReductionSyms,
llvm::SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  privateVars,
llvm::SmallVectorImpl< Type > &  privateTypes,
ArrayAttr &  privateSyms 
)
static

Definition at line 686 of file OpenMPDialect.cpp.

References parseBlockArgRegion().

◆ parseLinearClause()

static ParseResult parseLinearClause ( OpAsmParser parser,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  linearVars,
SmallVectorImpl< Type > &  linearTypes,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  linearStepVars 
)
static

linear ::= linear ( linear-list ) linear-list := linear-val | linear-val linear-list linear-val := ssa-id-and-type = ssa-id-and-type

Definition at line 189 of file OpenMPDialect.cpp.

References mlir::AsmParser::parseColonType(), mlir::AsmParser::parseCommaSeparatedList(), mlir::AsmParser::parseEqual(), and mlir::OpAsmParser::parseOperand().

◆ parseMapClause()

static ParseResult parseMapClause ( OpAsmParser parser,
IntegerAttr &  mapType 
)
static

Parses a map_entries map type from a string format back into its numeric value.

map-clause = map_clauses ( ((always, ?close, ?present, ? ( to|from|delete))+)` )

Definition at line 1291 of file OpenMPDialect.cpp.

References mlir::AsmParser::getBuilder(), mlir::Builder::getIntegerAttr(), mlir::Builder::getIntegerType(), mlir::AsmParser::parseCommaSeparatedList(), and mlir::AsmParser::parseKeyword().

◆ parseMembersIndex()

static ParseResult parseMembersIndex ( OpAsmParser parser,
ArrayAttr &  membersIdx 
)
static

◆ parseOrderClause()

static ParseResult parseOrderClause ( OpAsmParser parser,
ClauseOrderKindAttr &  order,
OrderModifierAttr &  orderMod 
)
static

◆ parsePrivateReductionRegion()

static ParseResult parsePrivateReductionRegion ( OpAsmParser parser,
Region region,
llvm::SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  privateVars,
llvm::SmallVectorImpl< Type > &  privateTypes,
ArrayAttr &  privateSyms,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  reductionVars,
SmallVectorImpl< Type > &  reductionTypes,
DenseBoolArrayAttr reductionByref,
ArrayAttr &  reductionSyms 
)
static

Definition at line 728 of file OpenMPDialect.cpp.

References parseBlockArgRegion().

◆ parsePrivateRegion()

static ParseResult parsePrivateRegion ( OpAsmParser parser,
Region region,
llvm::SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  privateVars,
llvm::SmallVectorImpl< Type > &  privateTypes,
ArrayAttr &  privateSyms 
)
static

Definition at line 719 of file OpenMPDialect.cpp.

References parseBlockArgRegion().

◆ parseScheduleClause()

static ParseResult parseScheduleClause ( OpAsmParser parser,
ClauseScheduleKindAttr &  scheduleAttr,
ScheduleModifierAttr &  scheduleMod,
UnitAttr &  scheduleSimd,
std::optional< OpAsmParser::UnresolvedOperand > &  chunkSize,
Type chunkType 
)
static

schedule ::= schedule ( sched-list ) sched-list ::= sched-val | sched-val sched-list | sched-val , sched-modifier sched-val ::= sched-with-chunk | sched-wo-chunk sched-with-chunk ::= sched-with-chunk-types (= ssa-id-and-type)? sched-with-chunk-types ::= static | dynamic | guided sched-wo-chunk ::= auto | runtime sched-modifier ::= sched-mod-val | sched-mod-val , sched-mod-val sched-mod-val ::= monotonic | nonmonotonic | simd | none

Definition at line 360 of file OpenMPDialect.cpp.

References mlir::AsmParser::emitError(), mlir::get(), mlir::AsmParser::getBuilder(), mlir::Builder::getContext(), mlir::AsmParser::getContext(), mlir::AsmParser::getCurrentLocation(), mlir::AsmParser::getNameLoc(), mlir::AsmParser::parseColonType(), mlir::AsmParser::parseKeyword(), mlir::OpAsmParser::parseOperand(), mlir::AsmParser::parseOptionalComma(), mlir::AsmParser::parseOptionalEqual(), and verifyScheduleModifiers().

◆ parseSynchronizationHint()

static ParseResult parseSynchronizationHint ( OpAsmParser parser,
IntegerAttr &  hintAttr 
)
static

Parses a Synchronization Hint clause.

The value of hint is an integer which is a combination of different hints from omp_sync_hint_t.

hint-clause = hint ( hint-value )

Definition at line 1195 of file OpenMPDialect.cpp.

References mlir::AsmParser::emitError(), mlir::get(), mlir::AsmParser::getBuilder(), mlir::AsmParser::getCurrentLocation(), mlir::Builder::getI64Type(), mlir::AsmParser::parseCommaSeparatedList(), mlir::AsmParser::parseKeyword(), and mlir::AsmParser::parseOptionalKeyword().

◆ parseTaskReductionRegion()

static ParseResult parseTaskReductionRegion ( OpAsmParser parser,
Region region,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  taskReductionVars,
SmallVectorImpl< Type > &  taskReductionTypes,
DenseBoolArrayAttr taskReductionByref,
ArrayAttr &  taskReductionSyms 
)
static

Definition at line 742 of file OpenMPDialect.cpp.

References parseBlockArgRegion().

◆ parseUseDeviceAddrUseDevicePtrRegion()

static ParseResult parseUseDeviceAddrUseDevicePtrRegion ( OpAsmParser parser,
Region region,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  useDeviceAddrVars,
SmallVectorImpl< Type > &  useDeviceAddrTypes,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  useDevicePtrVars,
SmallVectorImpl< Type > &  useDevicePtrTypes 
)
static

Definition at line 753 of file OpenMPDialect.cpp.

References parseBlockArgRegion().

◆ printAlignedClause()

static void printAlignedClause ( OpAsmPrinter p,
Operation op,
ValueRange  alignedVars,
TypeRange  alignedTypes,
std::optional< ArrayAttr >  alignments 
)
static

Print Aligned Clause.

Definition at line 303 of file OpenMPDialect.cpp.

References mlir::ValueRange::getType().

◆ printAllocateAndAllocator()

static void printAllocateAndAllocator ( OpAsmPrinter p,
Operation op,
OperandRange  allocateVars,
TypeRange  allocateTypes,
OperandRange  allocatorVars,
TypeRange  allocatorTypes 
)
static

Print allocate clause.

Definition at line 147 of file OpenMPDialect.cpp.

◆ printBlockArgClause() [1/3]

static void printBlockArgClause ( OpAsmPrinter p,
MLIRContext ctx,
StringRef  clauseName,
ValueRange  argsSubrange,
std::optional< MapPrintArgs >  mapArgs 
)
static

Definition at line 838 of file OpenMPDialect.cpp.

References printClauseWithRegionArgs().

Referenced by printBlockArgRegion().

◆ printBlockArgClause() [2/3]

static void printBlockArgClause ( OpAsmPrinter p,
MLIRContext ctx,
StringRef  clauseName,
ValueRange  argsSubrange,
std::optional< PrivatePrintArgs >  privateArgs 
)
static

Definition at line 846 of file OpenMPDialect.cpp.

References printClauseWithRegionArgs().

◆ printBlockArgClause() [3/3]

static void printBlockArgClause ( OpAsmPrinter p,
MLIRContext ctx,
StringRef  clauseName,
ValueRange  argsSubrange,
std::optional< ReductionPrintArgs >  reductionArgs 
)
static

Definition at line 856 of file OpenMPDialect.cpp.

References printClauseWithRegionArgs().

◆ printBlockArgRegion()

static void printBlockArgRegion ( OpAsmPrinter p,
Operation op,
Region region,
const AllRegionPrintArgs &  args 
)
static

◆ printCaptureType()

static void printCaptureType ( OpAsmPrinter p,
Operation op,
VariableCaptureKindAttr  mapCaptureType 
)
static

Definition at line 1445 of file OpenMPDialect.cpp.

◆ printClauseAttr()

template<typename ClauseAttr >
void printClauseAttr ( OpAsmPrinter p,
Operation op,
ClauseAttr  attr 
)

Definition at line 178 of file OpenMPDialect.cpp.

◆ printClauseWithRegionArgs()

static void printClauseWithRegionArgs ( OpAsmPrinter p,
MLIRContext ctx,
StringRef  clauseName,
ValueRange  argsSubrange,
ValueRange  operands,
TypeRange  types,
ArrayAttr  symbols = nullptr,
DenseBoolArrayAttr  byref = nullptr 
)
static

Definition at line 802 of file OpenMPDialect.cpp.

References mlir::detail::DenseArrayAttrImpl< T >::get(), and mlir::get().

Referenced by printBlockArgClause().

◆ printCopyprivate()

static void printCopyprivate ( OpAsmPrinter p,
Operation op,
OperandRange  copyprivateVars,
TypeRange  copyprivateTypes,
std::optional< ArrayAttr >  copyprivateSyms 
)
static

Print Copyprivate clause.

Definition at line 1047 of file OpenMPDialect.cpp.

◆ printDependVarList()

static void printDependVarList ( OpAsmPrinter p,
Operation op,
OperandRange  dependVars,
TypeRange  dependTypes,
std::optional< ArrayAttr >  dependKinds 
)
static

Print Depend clause.

Definition at line 1156 of file OpenMPDialect.cpp.

◆ printInReductionMapPrivateRegion()

static void printInReductionMapPrivateRegion ( OpAsmPrinter p,
Operation op,
Region region,
ValueRange  inReductionVars,
TypeRange  inReductionTypes,
DenseBoolArrayAttr  inReductionByref,
ArrayAttr  inReductionSyms,
ValueRange  mapVars,
TypeRange  mapTypes,
ValueRange  privateVars,
TypeRange  privateTypes,
ArrayAttr  privateSyms 
)
static

Definition at line 890 of file OpenMPDialect.cpp.

References printBlockArgRegion().

◆ printInReductionPrivateReductionRegion()

static void printInReductionPrivateReductionRegion ( OpAsmPrinter p,
Operation op,
Region region,
ValueRange  inReductionVars,
TypeRange  inReductionTypes,
DenseBoolArrayAttr  inReductionByref,
ArrayAttr  inReductionSyms,
ValueRange  privateVars,
TypeRange  privateTypes,
ArrayAttr  privateSyms,
ValueRange  reductionVars,
TypeRange  reductionTypes,
DenseBoolArrayAttr  reductionByref,
ArrayAttr  reductionSyms 
)
static

Definition at line 915 of file OpenMPDialect.cpp.

References printBlockArgRegion().

◆ printInReductionPrivateRegion()

static void printInReductionPrivateRegion ( OpAsmPrinter p,
Operation op,
Region region,
ValueRange  inReductionVars,
TypeRange  inReductionTypes,
DenseBoolArrayAttr  inReductionByref,
ArrayAttr  inReductionSyms,
ValueRange  privateVars,
TypeRange  privateTypes,
ArrayAttr  privateSyms 
)
static

Definition at line 903 of file OpenMPDialect.cpp.

References printBlockArgRegion().

◆ printLinearClause()

static void printLinearClause ( OpAsmPrinter p,
Operation op,
ValueRange  linearVars,
TypeRange  linearTypes,
ValueRange  linearStepVars 
)
static

Print Linear Clause.

Definition at line 210 of file OpenMPDialect.cpp.

◆ printMapClause()

static void printMapClause ( OpAsmPrinter p,
Operation op,
IntegerAttr  mapType 
)
static

Prints a map_entries map type from its numeric value out into its string format.

Definition at line 1342 of file OpenMPDialect.cpp.

References mapTypeToBitFlag().

◆ printMembersIndex()

static void printMembersIndex ( OpAsmPrinter p,
MapInfoOp  op,
ArrayAttr  membersIdx 
)
static

Definition at line 1430 of file OpenMPDialect.cpp.

◆ printOrderClause()

static void printOrderClause ( OpAsmPrinter p,
Operation op,
ClauseOrderKindAttr  order,
OrderModifierAttr  orderMod 
)
static

Definition at line 465 of file OpenMPDialect.cpp.

◆ printPrivateReductionRegion()

static void printPrivateReductionRegion ( OpAsmPrinter p,
Operation op,
Region region,
ValueRange  privateVars,
TypeRange  privateTypes,
ArrayAttr  privateSyms,
ValueRange  reductionVars,
TypeRange  reductionTypes,
DenseBoolArrayAttr  reductionByref,
ArrayAttr  reductionSyms 
)
static

Definition at line 938 of file OpenMPDialect.cpp.

References printBlockArgRegion().

◆ printPrivateRegion()

static void printPrivateRegion ( OpAsmPrinter p,
Operation op,
Region region,
ValueRange  privateVars,
TypeRange  privateTypes,
ArrayAttr  privateSyms 
)
static

Definition at line 930 of file OpenMPDialect.cpp.

References printBlockArgRegion().

◆ printScheduleClause()

static void printScheduleClause ( OpAsmPrinter p,
Operation op,
ClauseScheduleKindAttr  scheduleKind,
ScheduleModifierAttr  scheduleMod,
UnitAttr  scheduleSimd,
Value  scheduleChunk,
Type  scheduleChunkType 
)
static

Print schedule clause.

Definition at line 421 of file OpenMPDialect.cpp.

References mlir::Value::getType().

◆ printSynchronizationHint()

static void printSynchronizationHint ( OpAsmPrinter p,
Operation op,
IntegerAttr  hintAttr 
)
static

Prints a Synchronization Hint clause.

Definition at line 1226 of file OpenMPDialect.cpp.

◆ printTaskReductionRegion()

static void printTaskReductionRegion ( OpAsmPrinter p,
Operation op,
Region region,
ValueRange  taskReductionVars,
TypeRange  taskReductionTypes,
DenseBoolArrayAttr  taskReductionByref,
ArrayAttr  taskReductionSyms 
)
static

Definition at line 950 of file OpenMPDialect.cpp.

References printBlockArgRegion().

◆ printUseDeviceAddrUseDevicePtrRegion()

static void printUseDeviceAddrUseDevicePtrRegion ( OpAsmPrinter p,
Operation op,
Region region,
ValueRange  useDeviceAddrVars,
TypeRange  useDeviceAddrTypes,
ValueRange  useDevicePtrVars,
TypeRange  useDevicePtrTypes 
)
static

Definition at line 962 of file OpenMPDialect.cpp.

References printBlockArgRegion().

◆ verifyAlignedClause()

static LogicalResult verifyAlignedClause ( Operation op,
std::optional< ArrayAttr >  alignments,
OperandRange  alignedVars 
)
static

Definition at line 242 of file OpenMPDialect.cpp.

References mlir::Operation::emitOpError().

◆ verifyCopyprivateVarList()

static LogicalResult verifyCopyprivateVarList ( Operation op,
OperandRange  copyprivateVars,
std::optional< ArrayAttr >  copyprivateSyms 
)
static

Verifies CopyPrivate Clause.

Definition at line 1063 of file OpenMPDialect.cpp.

References mlir::Operation::emitOpError(), and visit().

◆ verifyDependVarList()

static LogicalResult verifyDependVarList ( Operation op,
std::optional< ArrayAttr >  dependKinds,
OperandRange  dependVars 
)
static

Verifies Depend clause.

Definition at line 1171 of file OpenMPDialect.cpp.

References mlir::Operation::emitOpError().

◆ verifyMapClause()

static LogicalResult verifyMapClause ( Operation op,
OperandRange  mapVars 
)
static

◆ verifyNontemporalClause()

static LogicalResult verifyNontemporalClause ( Operation op,
OperandRange  nontemporalVars 
)
static

Definition at line 227 of file OpenMPDialect.cpp.

References mlir::Operation::emitOpError().

◆ verifyOrderedParent()

static LogicalResult verifyOrderedParent ( Operation op)
static

◆ verifyPrivateVarList()

template<typename OpType >
static LogicalResult verifyPrivateVarList ( OpType &  op)
static

Definition at line 1696 of file OpenMPDialect.cpp.

◆ verifyReductionVarList()

static LogicalResult verifyReductionVarList ( Operation op,
std::optional< ArrayAttr >  reductionSyms,
OperandRange  reductionVars,
std::optional< ArrayRef< bool >>  reductionByref 
)
static

Verifies Reduction Clause.

Definition at line 976 of file OpenMPDialect.cpp.

References mlir::Operation::emitError(), mlir::Operation::emitOpError(), and mlir::Value::getType().

◆ verifyScheduleModifiers()

static ParseResult verifyScheduleModifiers ( OpAsmParser parser,
SmallVectorImpl< SmallString< 12 >> &  modifiers 
)
static

Definition at line 319 of file OpenMPDialect.cpp.

References mlir::AsmParser::emitError(), and mlir::AsmParser::getNameLoc().

Referenced by parseScheduleClause().

◆ verifySynchronizationHint()

static LogicalResult verifySynchronizationHint ( Operation op,
uint64_t  hint 
)
static

Verifies a synchronization hint clause.

Definition at line 1257 of file OpenMPDialect.cpp.

References mlir::Operation::emitOpError().