MLIR
22.0.0git
include
mlir
Dialect
OpenMP
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
18
#include "
mlir/Dialect/OpenMP/OpenMPOpsAttributes.h
"
19
#include "
mlir/IR/BuiltinAttributes.h
"
20
#include "llvm/ADT/SmallVector.h"
21
22
#include "mlir/Dialect/OpenMP/OpenMPClauseOps.h.inc"
23
24
namespace
mlir
{
25
namespace
omp
{
26
27
//===----------------------------------------------------------------------===//
28
// Extra clause operand structures.
29
//===----------------------------------------------------------------------===//
30
31
struct
DeviceTypeClauseOps
{
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.
42
using
HostEvaluatedOperands
=
43
detail::Clauses<CollapseClauseOps, LoopRelatedClauseOps, NumTeamsClauseOps,
44
NumThreadsClauseOps, ThreadLimitClauseOps>;
45
46
// TODO: Add `indirect` clause.
47
using
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.
52
using
TargetEnterExitUpdateDataOperands
= TargetEnterDataOperands;
53
54
}
// namespace omp
55
}
// namespace mlir
56
57
#endif
// MLIR_DIALECT_OPENMP_OPENMPCLAUSEOPERANDS_H_
OpenMPOpsAttributes.h
BuiltinAttributes.h
mlir::omp
Definition
OpenMPClauseOperands.h:25
mlir::omp::TargetEnterExitUpdateDataOperands
TargetEnterDataOperands TargetEnterExitUpdateDataOperands
omp.target_enter_data, omp.target_exit_data and omp.target_update take the same clauses,...
Definition
OpenMPClauseOperands.h:52
mlir::omp::HostEvaluatedOperands
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...
Definition
OpenMPClauseOperands.h:42
mlir::omp::DeclareTargetOperands
detail::Clauses< DeviceTypeClauseOps > DeclareTargetOperands
Definition
OpenMPClauseOperands.h:47
mlir
Include the generated interface declarations.
Definition
AliasAnalysis.h:19
mlir::omp::DeviceTypeClauseOps
Definition
OpenMPClauseOperands.h:31
mlir::omp::DeviceTypeClauseOps::deviceType
DeclareTargetDeviceType deviceType
The default capture type.
Definition
OpenMPClauseOperands.h:33
Generated on
for MLIR by
1.14.0