MLIR 22.0.0git
OpenMPClauseOperands.h
Go to the documentation of this file.
1//===-- OpenMPClauseOperands.h ----------------------------------*- C++ -*-===//
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// This file declares the structures defining MLIR operands associated with each
10// OpenMP clause, and structures grouping the appropriate operands for each
11// construct.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef MLIR_DIALECT_OPENMP_OPENMPCLAUSEOPERANDS_H_
16#define MLIR_DIALECT_OPENMP_OPENMPCLAUSEOPERANDS_H_
17
20#include "llvm/ADT/SmallVector.h"
21
22#include "mlir/Dialect/OpenMP/OpenMPClauseOps.h.inc"
23
24namespace mlir {
25namespace omp {
26
27//===----------------------------------------------------------------------===//
28// Extra clause operand structures.
29//===----------------------------------------------------------------------===//
30
32 /// The default capture type.
33 DeclareTargetDeviceType deviceType = DeclareTargetDeviceType::any;
34};
35
36//===----------------------------------------------------------------------===//
37// Extra operation operand structures.
38//===----------------------------------------------------------------------===//
39
40/// Clauses that correspond to operations other than omp.target, but might have
41/// to be evaluated outside of a parent target region.
43 detail::Clauses<CollapseClauseOps, LoopRelatedClauseOps, NumTeamsClauseOps,
44 NumThreadsClauseOps, ThreadLimitClauseOps>;
45
46// TODO: Add `indirect` clause.
47using DeclareTargetOperands = detail::Clauses<DeviceTypeClauseOps>;
48
49/// omp.target_enter_data, omp.target_exit_data and omp.target_update take the
50/// same clauses, so we give the structure to be shared by all of them a
51/// representative name.
52using TargetEnterExitUpdateDataOperands = TargetEnterDataOperands;
53
54} // namespace omp
55} // namespace mlir
56
57#endif // MLIR_DIALECT_OPENMP_OPENMPCLAUSEOPERANDS_H_
TargetEnterDataOperands TargetEnterExitUpdateDataOperands
omp.target_enter_data, omp.target_exit_data and omp.target_update take the same clauses,...
detail::Clauses< CollapseClauseOps, LoopRelatedClauseOps, NumTeamsClauseOps, NumThreadsClauseOps, ThreadLimitClauseOps > HostEvaluatedOperands
Clauses that correspond to operations other than omp.target, but might have to be evaluated outside o...
detail::Clauses< DeviceTypeClauseOps > DeclareTargetOperands
Include the generated interface declarations.
DeclareTargetDeviceType deviceType
The default capture type.