Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/llvm/Frontend/OpenACC/ACC.h.inc is written in an unsupported language. File is not indexed.

0001 #ifndef LLVM_OpenACC_INC
0002 #define LLVM_OpenACC_INC
0003 
0004 #include "llvm/ADT/ArrayRef.h"
0005 #include "llvm/ADT/BitmaskEnum.h"
0006 #include "llvm/Support/Compiler.h"
0007 #include <cstddef>
0008 
0009 namespace llvm {
0010 class StringRef;
0011 namespace acc {
0012 
0013 LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();
0014 
0015 enum class Association {
0016   Block,
0017   Declaration,
0018   Delimited,
0019   Loop,
0020   None,
0021   Separating,
0022 };
0023 
0024 static constexpr std::size_t Association_enumSize = 6;
0025 
0026 enum class Category {
0027   Declarative,
0028   Executable,
0029   Informational,
0030   Meta,
0031   Subsidiary,
0032   Utility,
0033 };
0034 
0035 static constexpr std::size_t Category_enumSize = 6;
0036 
0037 enum class Directive {
0038   ACCD_atomic,
0039   ACCD_cache,
0040   ACCD_data,
0041   ACCD_declare,
0042   ACCD_enter_data,
0043   ACCD_exit_data,
0044   ACCD_host_data,
0045   ACCD_init,
0046   ACCD_kernels,
0047   ACCD_kernels_loop,
0048   ACCD_loop,
0049   ACCD_parallel,
0050   ACCD_parallel_loop,
0051   ACCD_routine,
0052   ACCD_serial,
0053   ACCD_serial_loop,
0054   ACCD_set,
0055   ACCD_shutdown,
0056   ACCD_unknown,
0057   ACCD_update,
0058   ACCD_wait,
0059 };
0060 
0061 static constexpr std::size_t Directive_enumSize = 21;
0062 
0063 constexpr auto ACCD_atomic = llvm::acc::Directive::ACCD_atomic;
0064 constexpr auto ACCD_cache = llvm::acc::Directive::ACCD_cache;
0065 constexpr auto ACCD_data = llvm::acc::Directive::ACCD_data;
0066 constexpr auto ACCD_declare = llvm::acc::Directive::ACCD_declare;
0067 constexpr auto ACCD_enter_data = llvm::acc::Directive::ACCD_enter_data;
0068 constexpr auto ACCD_exit_data = llvm::acc::Directive::ACCD_exit_data;
0069 constexpr auto ACCD_host_data = llvm::acc::Directive::ACCD_host_data;
0070 constexpr auto ACCD_init = llvm::acc::Directive::ACCD_init;
0071 constexpr auto ACCD_kernels = llvm::acc::Directive::ACCD_kernels;
0072 constexpr auto ACCD_kernels_loop = llvm::acc::Directive::ACCD_kernels_loop;
0073 constexpr auto ACCD_loop = llvm::acc::Directive::ACCD_loop;
0074 constexpr auto ACCD_parallel = llvm::acc::Directive::ACCD_parallel;
0075 constexpr auto ACCD_parallel_loop = llvm::acc::Directive::ACCD_parallel_loop;
0076 constexpr auto ACCD_routine = llvm::acc::Directive::ACCD_routine;
0077 constexpr auto ACCD_serial = llvm::acc::Directive::ACCD_serial;
0078 constexpr auto ACCD_serial_loop = llvm::acc::Directive::ACCD_serial_loop;
0079 constexpr auto ACCD_set = llvm::acc::Directive::ACCD_set;
0080 constexpr auto ACCD_shutdown = llvm::acc::Directive::ACCD_shutdown;
0081 constexpr auto ACCD_unknown = llvm::acc::Directive::ACCD_unknown;
0082 constexpr auto ACCD_update = llvm::acc::Directive::ACCD_update;
0083 constexpr auto ACCD_wait = llvm::acc::Directive::ACCD_wait;
0084 
0085 enum class Clause {
0086   ACCC_async,
0087   ACCC_attach,
0088   ACCC_auto,
0089   ACCC_bind,
0090   ACCC_capture,
0091   ACCC_collapse,
0092   ACCC_copy,
0093   ACCC_copyin,
0094   ACCC_copyout,
0095   ACCC_create,
0096   ACCC_default,
0097   ACCC_default_async,
0098   ACCC_delete,
0099   ACCC_detach,
0100   ACCC_device,
0101   ACCC_device_num,
0102   ACCC_deviceptr,
0103   ACCC_device_resident,
0104   ACCC_device_type,
0105   ACCC_finalize,
0106   ACCC_firstprivate,
0107   ACCC_gang,
0108   ACCC_host,
0109   ACCC_if,
0110   ACCC_if_present,
0111   ACCC_independent,
0112   ACCC_link,
0113   ACCC_no_create,
0114   ACCC_nohost,
0115   ACCC_num_gangs,
0116   ACCC_num_workers,
0117   ACCC_present,
0118   ACCC_private,
0119   ACCC_read,
0120   ACCC_reduction,
0121   ACCC_self,
0122   ACCC_seq,
0123   ACCC_shortloop,
0124   ACCC_tile,
0125   ACCC_unknown,
0126   ACCC_use_device,
0127   ACCC_vector,
0128   ACCC_vector_length,
0129   ACCC_wait,
0130   ACCC_worker,
0131   ACCC_write,
0132 };
0133 
0134 static constexpr std::size_t Clause_enumSize = 46;
0135 
0136 constexpr auto ACCC_async = llvm::acc::Clause::ACCC_async;
0137 constexpr auto ACCC_attach = llvm::acc::Clause::ACCC_attach;
0138 constexpr auto ACCC_auto = llvm::acc::Clause::ACCC_auto;
0139 constexpr auto ACCC_bind = llvm::acc::Clause::ACCC_bind;
0140 constexpr auto ACCC_capture = llvm::acc::Clause::ACCC_capture;
0141 constexpr auto ACCC_collapse = llvm::acc::Clause::ACCC_collapse;
0142 constexpr auto ACCC_copy = llvm::acc::Clause::ACCC_copy;
0143 constexpr auto ACCC_copyin = llvm::acc::Clause::ACCC_copyin;
0144 constexpr auto ACCC_copyout = llvm::acc::Clause::ACCC_copyout;
0145 constexpr auto ACCC_create = llvm::acc::Clause::ACCC_create;
0146 constexpr auto ACCC_default = llvm::acc::Clause::ACCC_default;
0147 constexpr auto ACCC_default_async = llvm::acc::Clause::ACCC_default_async;
0148 constexpr auto ACCC_delete = llvm::acc::Clause::ACCC_delete;
0149 constexpr auto ACCC_detach = llvm::acc::Clause::ACCC_detach;
0150 constexpr auto ACCC_device = llvm::acc::Clause::ACCC_device;
0151 constexpr auto ACCC_device_num = llvm::acc::Clause::ACCC_device_num;
0152 constexpr auto ACCC_deviceptr = llvm::acc::Clause::ACCC_deviceptr;
0153 constexpr auto ACCC_device_resident = llvm::acc::Clause::ACCC_device_resident;
0154 constexpr auto ACCC_device_type = llvm::acc::Clause::ACCC_device_type;
0155 constexpr auto ACCC_finalize = llvm::acc::Clause::ACCC_finalize;
0156 constexpr auto ACCC_firstprivate = llvm::acc::Clause::ACCC_firstprivate;
0157 constexpr auto ACCC_gang = llvm::acc::Clause::ACCC_gang;
0158 constexpr auto ACCC_host = llvm::acc::Clause::ACCC_host;
0159 constexpr auto ACCC_if = llvm::acc::Clause::ACCC_if;
0160 constexpr auto ACCC_if_present = llvm::acc::Clause::ACCC_if_present;
0161 constexpr auto ACCC_independent = llvm::acc::Clause::ACCC_independent;
0162 constexpr auto ACCC_link = llvm::acc::Clause::ACCC_link;
0163 constexpr auto ACCC_no_create = llvm::acc::Clause::ACCC_no_create;
0164 constexpr auto ACCC_nohost = llvm::acc::Clause::ACCC_nohost;
0165 constexpr auto ACCC_num_gangs = llvm::acc::Clause::ACCC_num_gangs;
0166 constexpr auto ACCC_num_workers = llvm::acc::Clause::ACCC_num_workers;
0167 constexpr auto ACCC_present = llvm::acc::Clause::ACCC_present;
0168 constexpr auto ACCC_private = llvm::acc::Clause::ACCC_private;
0169 constexpr auto ACCC_read = llvm::acc::Clause::ACCC_read;
0170 constexpr auto ACCC_reduction = llvm::acc::Clause::ACCC_reduction;
0171 constexpr auto ACCC_self = llvm::acc::Clause::ACCC_self;
0172 constexpr auto ACCC_seq = llvm::acc::Clause::ACCC_seq;
0173 constexpr auto ACCC_shortloop = llvm::acc::Clause::ACCC_shortloop;
0174 constexpr auto ACCC_tile = llvm::acc::Clause::ACCC_tile;
0175 constexpr auto ACCC_unknown = llvm::acc::Clause::ACCC_unknown;
0176 constexpr auto ACCC_use_device = llvm::acc::Clause::ACCC_use_device;
0177 constexpr auto ACCC_vector = llvm::acc::Clause::ACCC_vector;
0178 constexpr auto ACCC_vector_length = llvm::acc::Clause::ACCC_vector_length;
0179 constexpr auto ACCC_wait = llvm::acc::Clause::ACCC_wait;
0180 constexpr auto ACCC_worker = llvm::acc::Clause::ACCC_worker;
0181 constexpr auto ACCC_write = llvm::acc::Clause::ACCC_write;
0182 
0183 enum class DefaultValue {
0184   ACC_Default_present=0,
0185   ACC_Default_none=1,
0186 };
0187 
0188 constexpr auto ACC_Default_present = llvm::acc::DefaultValue::ACC_Default_present;
0189 constexpr auto ACC_Default_none = llvm::acc::DefaultValue::ACC_Default_none;
0190 
0191 // Enumeration helper functions
0192 LLVM_ABI Directive getOpenACCDirectiveKind(llvm::StringRef Str);
0193 
0194 LLVM_ABI llvm::StringRef getOpenACCDirectiveName(Directive D);
0195 
0196 LLVM_ABI Clause getOpenACCClauseKind(llvm::StringRef Str);
0197 
0198 LLVM_ABI llvm::StringRef getOpenACCClauseName(Clause C);
0199 
0200 /// Return true if \p C is a valid clause for \p D in version \p Version.
0201 LLVM_ABI bool isAllowedClauseForDirective(Directive D, Clause C, unsigned Version);
0202 
0203 constexpr std::size_t getMaxLeafCount() { return 2; }
0204 LLVM_ABI Association getDirectiveAssociation(Directive D);
0205 LLVM_ABI Category getDirectiveCategory(Directive D);
0206 LLVM_ABI DefaultValue getDefaultValue(StringRef);
0207 LLVM_ABI llvm::StringRef getOpenACCDefaultValueName(DefaultValue);
0208 
0209 } // namespace acc
0210 } // namespace llvm
0211 #endif // LLVM_OpenACC_INC