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(Copy) 28CLAUSE_ALIAS(PCopy, Copy, true) 29CLAUSE_ALIAS(PresentOrCopy, Copy, true) 30VISIT_CLAUSE(CopyIn) 31CLAUSE_ALIAS(PCopyIn, CopyIn, true) 32CLAUSE_ALIAS(PresentOrCopyIn, CopyIn, true) 33VISIT_CLAUSE(CopyOut) 34CLAUSE_ALIAS(PCopyOut, CopyOut, true) 35CLAUSE_ALIAS(PresentOrCopyOut, CopyOut, true) 36VISIT_CLAUSE(Create) 37CLAUSE_ALIAS(PCreate, Create, true) 38CLAUSE_ALIAS(PresentOrCreate, Create, true) 39VISIT_CLAUSE(Default) 40VISIT_CLAUSE(DevicePtr) 41VISIT_CLAUSE(DeviceType) 42CLAUSE_ALIAS(DType, DeviceType, false) 43VISIT_CLAUSE(FirstPrivate) 44VISIT_CLAUSE(If) 45VISIT_CLAUSE(Independent) 46VISIT_CLAUSE(NoCreate) 47VISIT_CLAUSE(NumGangs) 48VISIT_CLAUSE(NumWorkers) 49VISIT_CLAUSE(Present) 50VISIT_CLAUSE(Private) 51VISIT_CLAUSE(Reduction) 52VISIT_CLAUSE(Self) 53VISIT_CLAUSE(Seq) 54VISIT_CLAUSE(VectorLength) 55VISIT_CLAUSE(Wait) 56 57#undef VISIT_CLAUSE 58#undef CLAUSE_ALIAS 59