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