|
22 | 22 | include "mlir/Dialect/OpenMP/OpenMPOpBase.td" |
23 | 23 | include "mlir/IR/SymbolInterfaces.td" |
24 | 24 |
|
| 25 | +//===----------------------------------------------------------------------===// |
| 26 | +// V5.2: [6.3] `align` clause |
| 27 | +//===----------------------------------------------------------------------===// |
| 28 | + |
| 29 | +class OpenMP_AlignClauseSkip< |
| 30 | + bit traits = false, bit arguments = false, bit assemblyFormat = false, |
| 31 | + bit description = false, bit extraClassDeclaration = false |
| 32 | + > : OpenMP_Clause<traits, arguments, assemblyFormat, description, |
| 33 | + extraClassDeclaration> { |
| 34 | + let arguments = (ins |
| 35 | + ConfinedAttr<OptionalAttr<I64Attr>, [IntPositive]>:$align |
| 36 | + ); |
| 37 | + |
| 38 | + let optAssemblyFormat = [{ |
| 39 | + `align` `(` $align `)` |
| 40 | + }]; |
| 41 | + |
| 42 | + let description = [{ |
| 43 | + The `align` clause is used to specify the byte alignment to use for |
| 44 | + allocations associated with the construct on which the clause appears. |
| 45 | + }]; |
| 46 | +} |
| 47 | + |
| 48 | +def OpenMP_AlignClause : OpenMP_AlignClauseSkip<>; |
| 49 | + |
25 | 50 | //===----------------------------------------------------------------------===// |
26 | 51 | // V5.2: [5.11] `aligned` clause |
27 | 52 | //===----------------------------------------------------------------------===// |
@@ -84,6 +109,32 @@ class OpenMP_AllocateClauseSkip< |
84 | 109 |
|
85 | 110 | def OpenMP_AllocateClause : OpenMP_AllocateClauseSkip<>; |
86 | 111 |
|
| 112 | +//===----------------------------------------------------------------------===// |
| 113 | +// V5.2: [6.4] `allocator` clause |
| 114 | +//===----------------------------------------------------------------------===// |
| 115 | + |
| 116 | +class OpenMP_AllocatorClauseSkip< |
| 117 | + bit traits = false, bit arguments = false, bit assemblyFormat = false, |
| 118 | + bit description = false, bit extraClassDeclaration = false |
| 119 | + > : OpenMP_Clause<traits, arguments, assemblyFormat, description, |
| 120 | + extraClassDeclaration> { |
| 121 | + |
| 122 | + let arguments = (ins |
| 123 | + OptionalAttr<AllocatorHandleAttr>:$allocator |
| 124 | + ); |
| 125 | + |
| 126 | + let optAssemblyFormat = [{ |
| 127 | + `allocator` `(` custom<ClauseAttr>($allocator) `)` |
| 128 | + }]; |
| 129 | + |
| 130 | + let description = [{ |
| 131 | + `allocator` specifies the memory allocator to be used for allocations |
| 132 | + associated with the construct on which the clause appears. |
| 133 | + }]; |
| 134 | +} |
| 135 | + |
| 136 | +def OpenMP_AllocatorClause : OpenMP_AllocatorClauseSkip<>; |
| 137 | + |
87 | 138 | //===----------------------------------------------------------------------===// |
88 | 139 | // LLVM OpenMP extension `ompx_bare` clause |
89 | 140 | //===----------------------------------------------------------------------===// |
|
0 commit comments