llvm/include/llvm/Frontend/OpenACC/ACC.h.inc

#ifndef LLVM_OpenACC_INC
#define LLVM_OpenACC_INC

#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/BitmaskEnum.h"
#include "llvm/Support/Compiler.h"
#include <cstddef>

namespace llvm {
class StringRef;
namespace acc {

LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();

enum class Association {};

static constexpr std::size_t Association_enumSize =;

enum class Category {};

static constexpr std::size_t Category_enumSize =;

enum class Directive {};

static constexpr std::size_t Directive_enumSize =;

constexpr auto ACCD_atomic =;
constexpr auto ACCD_cache =;
constexpr auto ACCD_data =;
constexpr auto ACCD_declare =;
constexpr auto ACCD_enter_data =;
constexpr auto ACCD_exit_data =;
constexpr auto ACCD_host_data =;
constexpr auto ACCD_init =;
constexpr auto ACCD_kernels =;
constexpr auto ACCD_kernels_loop =;
constexpr auto ACCD_loop =;
constexpr auto ACCD_parallel =;
constexpr auto ACCD_parallel_loop =;
constexpr auto ACCD_routine =;
constexpr auto ACCD_serial =;
constexpr auto ACCD_serial_loop =;
constexpr auto ACCD_set =;
constexpr auto ACCD_shutdown =;
constexpr auto ACCD_unknown =;
constexpr auto ACCD_update =;
constexpr auto ACCD_wait =;

enum class Clause {};

static constexpr std::size_t Clause_enumSize =;

constexpr auto ACCC_async =;
constexpr auto ACCC_attach =;
constexpr auto ACCC_auto =;
constexpr auto ACCC_bind =;
constexpr auto ACCC_capture =;
constexpr auto ACCC_collapse =;
constexpr auto ACCC_copy =;
constexpr auto ACCC_copyin =;
constexpr auto ACCC_copyout =;
constexpr auto ACCC_create =;
constexpr auto ACCC_default =;
constexpr auto ACCC_default_async =;
constexpr auto ACCC_delete =;
constexpr auto ACCC_detach =;
constexpr auto ACCC_device =;
constexpr auto ACCC_device_num =;
constexpr auto ACCC_deviceptr =;
constexpr auto ACCC_device_resident =;
constexpr auto ACCC_device_type =;
constexpr auto ACCC_finalize =;
constexpr auto ACCC_firstprivate =;
constexpr auto ACCC_gang =;
constexpr auto ACCC_host =;
constexpr auto ACCC_if =;
constexpr auto ACCC_if_present =;
constexpr auto ACCC_independent =;
constexpr auto ACCC_link =;
constexpr auto ACCC_no_create =;
constexpr auto ACCC_nohost =;
constexpr auto ACCC_num_gangs =;
constexpr auto ACCC_num_workers =;
constexpr auto ACCC_present =;
constexpr auto ACCC_private =;
constexpr auto ACCC_read =;
constexpr auto ACCC_reduction =;
constexpr auto ACCC_self =;
constexpr auto ACCC_seq =;
constexpr auto ACCC_shortloop =;
constexpr auto ACCC_tile =;
constexpr auto ACCC_unknown =;
constexpr auto ACCC_use_device =;
constexpr auto ACCC_vector =;
constexpr auto ACCC_vector_length =;
constexpr auto ACCC_wait =;
constexpr auto ACCC_worker =;
constexpr auto ACCC_write =;

enum class DefaultValue {};

constexpr auto ACC_Default_present =;
constexpr auto ACC_Default_none =;

// Enumeration helper functions
LLVM_ABI Directive getOpenACCDirectiveKind(llvm::StringRef Str);

LLVM_ABI llvm::StringRef getOpenACCDirectiveName(Directive D);

LLVM_ABI Clause getOpenACCClauseKind(llvm::StringRef Str);

LLVM_ABI llvm::StringRef getOpenACCClauseName(Clause C);

/// Return true if \p C is a valid clause for \p D in version \p Version.
LLVM_ABI bool isAllowedClauseForDirective(Directive D, Clause C, unsigned Version);

constexpr std::size_t getMaxLeafCount() {}
LLVM_ABI Association getDirectiveAssociation(Directive D);
LLVM_ABI Category getDirectiveCategory(Directive D);
LLVM_ABI DefaultValue getDefaultValue(StringRef);
LLVM_ABI llvm::StringRef getOpenACCDefaultValueName(DefaultValue);

} // namespace acc
} // namespace llvm
#endif // LLVM_OpenACC_INC