xref: /llvm-project/clang/include/clang/Basic/OpenACCClauses.def (revision be32621ce8cbffe674c62e87c0c51c9fc4a21e5f)
1//===-- OpenACCClauses.def - List of implemented OpenACC Clauses -- 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 defines a list of currently implemented OpenACC Clauses (and
10// eventually, the entire list) in a way that makes generating 'visitor' and
11// other lists easier.
12//
13// The primary macro is a single-argument version taking the name of the Clause
14// as used in Clang source (so `Default` instead of `default`).
15//
16// VISIT_CLAUSE(CLAUSE_NAME)
17//
18// CLAUSE_ALIAS(ALIAS_NAME, CLAUSE_NAME, DEPRECATED)
19
20#ifndef CLAUSE_ALIAS
21#define CLAUSE_ALIAS(ALIAS_NAME, CLAUSE_NAME, false)
22#endif
23
24VISIT_CLAUSE(Auto)
25VISIT_CLAUSE(Async)
26VISIT_CLAUSE(Attach)
27VISIT_CLAUSE(Collapse)
28VISIT_CLAUSE(Copy)
29CLAUSE_ALIAS(PCopy, Copy, true)
30CLAUSE_ALIAS(PresentOrCopy, Copy, true)
31VISIT_CLAUSE(CopyIn)
32CLAUSE_ALIAS(PCopyIn, CopyIn, true)
33CLAUSE_ALIAS(PresentOrCopyIn, CopyIn, true)
34VISIT_CLAUSE(CopyOut)
35CLAUSE_ALIAS(PCopyOut, CopyOut, true)
36CLAUSE_ALIAS(PresentOrCopyOut, CopyOut, true)
37VISIT_CLAUSE(Create)
38CLAUSE_ALIAS(PCreate, Create, true)
39CLAUSE_ALIAS(PresentOrCreate, Create, true)
40VISIT_CLAUSE(Default)
41VISIT_CLAUSE(DefaultAsync)
42VISIT_CLAUSE(Delete)
43VISIT_CLAUSE(Detach)
44VISIT_CLAUSE(Device)
45VISIT_CLAUSE(DeviceNum)
46VISIT_CLAUSE(DevicePtr)
47VISIT_CLAUSE(DeviceType)
48CLAUSE_ALIAS(DType, DeviceType, false)
49VISIT_CLAUSE(Finalize)
50VISIT_CLAUSE(FirstPrivate)
51VISIT_CLAUSE(Gang)
52VISIT_CLAUSE(Host)
53VISIT_CLAUSE(If)
54VISIT_CLAUSE(IfPresent)
55VISIT_CLAUSE(Independent)
56VISIT_CLAUSE(NoCreate)
57VISIT_CLAUSE(NumGangs)
58VISIT_CLAUSE(NumWorkers)
59VISIT_CLAUSE(Present)
60VISIT_CLAUSE(Private)
61VISIT_CLAUSE(Reduction)
62VISIT_CLAUSE(Self)
63VISIT_CLAUSE(Seq)
64VISIT_CLAUSE(Tile)
65VISIT_CLAUSE(UseDevice)
66VISIT_CLAUSE(Vector)
67VISIT_CLAUSE(VectorLength)
68VISIT_CLAUSE(Wait)
69VISIT_CLAUSE(Worker)
70
71#undef VISIT_CLAUSE
72#undef CLAUSE_ALIAS
73