Blame | Last modification | View Log | Download | RSS feed
#ifdef GEN_FLANG_DIRECTIVE_CLAUSE_SETS#undef GEN_FLANG_DIRECTIVE_CLAUSE_SETSnamespace llvm {namespace acc {// Sets for atomicstatic AccClauseSet allowedClauses_ACCD_atomic {};static AccClauseSet allowedOnceClauses_ACCD_atomic {};static AccClauseSet allowedExclusiveClauses_ACCD_atomic {};static AccClauseSet requiredClauses_ACCD_atomic {};// Sets for cachestatic AccClauseSet allowedClauses_ACCD_cache {};static AccClauseSet allowedOnceClauses_ACCD_cache {};static AccClauseSet allowedExclusiveClauses_ACCD_cache {};static AccClauseSet requiredClauses_ACCD_cache {};// Sets for datastatic AccClauseSet allowedClauses_ACCD_data {};static AccClauseSet allowedOnceClauses_ACCD_data {llvm::acc::Clause::ACCC_if,llvm::acc::Clause::ACCC_default,};static AccClauseSet allowedExclusiveClauses_ACCD_data {};static AccClauseSet requiredClauses_ACCD_data {llvm::acc::Clause::ACCC_attach,llvm::acc::Clause::ACCC_copy,llvm::acc::Clause::ACCC_copyin,llvm::acc::Clause::ACCC_copyout,llvm::acc::Clause::ACCC_create,llvm::acc::Clause::ACCC_default,llvm::acc::Clause::ACCC_deviceptr,llvm::acc::Clause::ACCC_no_create,llvm::acc::Clause::ACCC_present,};// Sets for declarestatic AccClauseSet allowedClauses_ACCD_declare {llvm::acc::Clause::ACCC_copy,llvm::acc::Clause::ACCC_copyin,llvm::acc::Clause::ACCC_copyout,llvm::acc::Clause::ACCC_create,llvm::acc::Clause::ACCC_present,llvm::acc::Clause::ACCC_deviceptr,llvm::acc::Clause::ACCC_device_resident,llvm::acc::Clause::ACCC_link,};static AccClauseSet allowedOnceClauses_ACCD_declare {};static AccClauseSet allowedExclusiveClauses_ACCD_declare {};static AccClauseSet requiredClauses_ACCD_declare {};// Sets for enter datastatic AccClauseSet allowedClauses_ACCD_enter_data {llvm::acc::Clause::ACCC_wait,};static AccClauseSet allowedOnceClauses_ACCD_enter_data {llvm::acc::Clause::ACCC_async,llvm::acc::Clause::ACCC_if,};static AccClauseSet allowedExclusiveClauses_ACCD_enter_data {};static AccClauseSet requiredClauses_ACCD_enter_data {llvm::acc::Clause::ACCC_attach,llvm::acc::Clause::ACCC_create,llvm::acc::Clause::ACCC_copyin,};// Sets for exit datastatic AccClauseSet allowedClauses_ACCD_exit_data {llvm::acc::Clause::ACCC_wait,};static AccClauseSet allowedOnceClauses_ACCD_exit_data {llvm::acc::Clause::ACCC_async,llvm::acc::Clause::ACCC_if,llvm::acc::Clause::ACCC_finalize,};static AccClauseSet allowedExclusiveClauses_ACCD_exit_data {};static AccClauseSet requiredClauses_ACCD_exit_data {llvm::acc::Clause::ACCC_copyout,llvm::acc::Clause::ACCC_delete,llvm::acc::Clause::ACCC_detach,};// Sets for host_datastatic AccClauseSet allowedClauses_ACCD_host_data {};static AccClauseSet allowedOnceClauses_ACCD_host_data {llvm::acc::Clause::ACCC_if,llvm::acc::Clause::ACCC_if_present,};static AccClauseSet allowedExclusiveClauses_ACCD_host_data {};static AccClauseSet requiredClauses_ACCD_host_data {llvm::acc::Clause::ACCC_use_device,};// Sets for initstatic AccClauseSet allowedClauses_ACCD_init {};static AccClauseSet allowedOnceClauses_ACCD_init {llvm::acc::Clause::ACCC_device_num,llvm::acc::Clause::ACCC_device_type,llvm::acc::Clause::ACCC_if,};static AccClauseSet allowedExclusiveClauses_ACCD_init {};static AccClauseSet requiredClauses_ACCD_init {};// Sets for kernelsstatic AccClauseSet allowedClauses_ACCD_kernels {llvm::acc::Clause::ACCC_attach,llvm::acc::Clause::ACCC_copy,llvm::acc::Clause::ACCC_copyin,llvm::acc::Clause::ACCC_copyout,llvm::acc::Clause::ACCC_create,llvm::acc::Clause::ACCC_device_type,llvm::acc::Clause::ACCC_no_create,llvm::acc::Clause::ACCC_present,llvm::acc::Clause::ACCC_deviceptr,llvm::acc::Clause::ACCC_wait,};static AccClauseSet allowedOnceClauses_ACCD_kernels {llvm::acc::Clause::ACCC_async,llvm::acc::Clause::ACCC_default,llvm::acc::Clause::ACCC_if,llvm::acc::Clause::ACCC_num_gangs,llvm::acc::Clause::ACCC_num_workers,llvm::acc::Clause::ACCC_self,llvm::acc::Clause::ACCC_vector_length,};static AccClauseSet allowedExclusiveClauses_ACCD_kernels {};static AccClauseSet requiredClauses_ACCD_kernels {};// Sets for kernels loopstatic AccClauseSet allowedClauses_ACCD_kernels_loop {llvm::acc::Clause::ACCC_copy,llvm::acc::Clause::ACCC_copyin,llvm::acc::Clause::ACCC_copyout,llvm::acc::Clause::ACCC_create,llvm::acc::Clause::ACCC_device_type,llvm::acc::Clause::ACCC_no_create,llvm::acc::Clause::ACCC_present,llvm::acc::Clause::ACCC_private,llvm::acc::Clause::ACCC_deviceptr,llvm::acc::Clause::ACCC_attach,llvm::acc::Clause::ACCC_wait,};static AccClauseSet allowedOnceClauses_ACCD_kernels_loop {llvm::acc::Clause::ACCC_async,llvm::acc::Clause::ACCC_collapse,llvm::acc::Clause::ACCC_default,llvm::acc::Clause::ACCC_gang,llvm::acc::Clause::ACCC_if,llvm::acc::Clause::ACCC_num_gangs,llvm::acc::Clause::ACCC_num_workers,llvm::acc::Clause::ACCC_reduction,llvm::acc::Clause::ACCC_self,llvm::acc::Clause::ACCC_tile,llvm::acc::Clause::ACCC_vector,llvm::acc::Clause::ACCC_vector_length,llvm::acc::Clause::ACCC_worker,};static AccClauseSet allowedExclusiveClauses_ACCD_kernels_loop {llvm::acc::Clause::ACCC_auto,llvm::acc::Clause::ACCC_independent,llvm::acc::Clause::ACCC_seq,};static AccClauseSet requiredClauses_ACCD_kernels_loop {};// Sets for loopstatic AccClauseSet allowedClauses_ACCD_loop {llvm::acc::Clause::ACCC_device_type,llvm::acc::Clause::ACCC_private,};static AccClauseSet allowedOnceClauses_ACCD_loop {llvm::acc::Clause::ACCC_collapse,llvm::acc::Clause::ACCC_gang,llvm::acc::Clause::ACCC_reduction,llvm::acc::Clause::ACCC_tile,llvm::acc::Clause::ACCC_vector,llvm::acc::Clause::ACCC_worker,};static AccClauseSet allowedExclusiveClauses_ACCD_loop {llvm::acc::Clause::ACCC_auto,llvm::acc::Clause::ACCC_independent,llvm::acc::Clause::ACCC_seq,};static AccClauseSet requiredClauses_ACCD_loop {};// Sets for parallelstatic AccClauseSet allowedClauses_ACCD_parallel {llvm::acc::Clause::ACCC_attach,llvm::acc::Clause::ACCC_copy,llvm::acc::Clause::ACCC_copyin,llvm::acc::Clause::ACCC_copyout,llvm::acc::Clause::ACCC_create,llvm::acc::Clause::ACCC_deviceptr,llvm::acc::Clause::ACCC_device_type,llvm::acc::Clause::ACCC_no_create,llvm::acc::Clause::ACCC_present,llvm::acc::Clause::ACCC_private,llvm::acc::Clause::ACCC_firstprivate,llvm::acc::Clause::ACCC_wait,};static AccClauseSet allowedOnceClauses_ACCD_parallel {llvm::acc::Clause::ACCC_async,llvm::acc::Clause::ACCC_default,llvm::acc::Clause::ACCC_if,llvm::acc::Clause::ACCC_num_gangs,llvm::acc::Clause::ACCC_num_workers,llvm::acc::Clause::ACCC_reduction,llvm::acc::Clause::ACCC_self,llvm::acc::Clause::ACCC_vector_length,};static AccClauseSet allowedExclusiveClauses_ACCD_parallel {};static AccClauseSet requiredClauses_ACCD_parallel {};// Sets for parallel loopstatic AccClauseSet allowedClauses_ACCD_parallel_loop {llvm::acc::Clause::ACCC_attach,llvm::acc::Clause::ACCC_copy,llvm::acc::Clause::ACCC_copyin,llvm::acc::Clause::ACCC_copyout,llvm::acc::Clause::ACCC_create,llvm::acc::Clause::ACCC_deviceptr,llvm::acc::Clause::ACCC_device_type,llvm::acc::Clause::ACCC_firstprivate,llvm::acc::Clause::ACCC_no_create,llvm::acc::Clause::ACCC_present,llvm::acc::Clause::ACCC_private,llvm::acc::Clause::ACCC_tile,llvm::acc::Clause::ACCC_wait,};static AccClauseSet allowedOnceClauses_ACCD_parallel_loop {llvm::acc::Clause::ACCC_async,llvm::acc::Clause::ACCC_collapse,llvm::acc::Clause::ACCC_default,llvm::acc::Clause::ACCC_gang,llvm::acc::Clause::ACCC_if,llvm::acc::Clause::ACCC_num_gangs,llvm::acc::Clause::ACCC_num_workers,llvm::acc::Clause::ACCC_reduction,llvm::acc::Clause::ACCC_self,llvm::acc::Clause::ACCC_vector,llvm::acc::Clause::ACCC_vector_length,llvm::acc::Clause::ACCC_worker,};static AccClauseSet allowedExclusiveClauses_ACCD_parallel_loop {llvm::acc::Clause::ACCC_auto,llvm::acc::Clause::ACCC_independent,llvm::acc::Clause::ACCC_seq,};static AccClauseSet requiredClauses_ACCD_parallel_loop {};// Sets for routinestatic AccClauseSet allowedClauses_ACCD_routine {};static AccClauseSet allowedOnceClauses_ACCD_routine {llvm::acc::Clause::ACCC_bind,llvm::acc::Clause::ACCC_device_type,llvm::acc::Clause::ACCC_nohost,};static AccClauseSet allowedExclusiveClauses_ACCD_routine {};static AccClauseSet requiredClauses_ACCD_routine {llvm::acc::Clause::ACCC_gang,llvm::acc::Clause::ACCC_seq,llvm::acc::Clause::ACCC_vector,llvm::acc::Clause::ACCC_worker,};// Sets for serialstatic AccClauseSet allowedClauses_ACCD_serial {llvm::acc::Clause::ACCC_attach,llvm::acc::Clause::ACCC_copy,llvm::acc::Clause::ACCC_copyin,llvm::acc::Clause::ACCC_copyout,llvm::acc::Clause::ACCC_create,llvm::acc::Clause::ACCC_deviceptr,llvm::acc::Clause::ACCC_device_type,llvm::acc::Clause::ACCC_no_create,llvm::acc::Clause::ACCC_present,llvm::acc::Clause::ACCC_private,llvm::acc::Clause::ACCC_firstprivate,llvm::acc::Clause::ACCC_wait,};static AccClauseSet allowedOnceClauses_ACCD_serial {llvm::acc::Clause::ACCC_async,llvm::acc::Clause::ACCC_default,llvm::acc::Clause::ACCC_if,llvm::acc::Clause::ACCC_reduction,llvm::acc::Clause::ACCC_self,};static AccClauseSet allowedExclusiveClauses_ACCD_serial {};static AccClauseSet requiredClauses_ACCD_serial {};// Sets for serial loopstatic AccClauseSet allowedClauses_ACCD_serial_loop {llvm::acc::Clause::ACCC_attach,llvm::acc::Clause::ACCC_copy,llvm::acc::Clause::ACCC_copyin,llvm::acc::Clause::ACCC_copyout,llvm::acc::Clause::ACCC_create,llvm::acc::Clause::ACCC_deviceptr,llvm::acc::Clause::ACCC_device_type,llvm::acc::Clause::ACCC_firstprivate,llvm::acc::Clause::ACCC_no_create,llvm::acc::Clause::ACCC_present,llvm::acc::Clause::ACCC_private,llvm::acc::Clause::ACCC_wait,};static AccClauseSet allowedOnceClauses_ACCD_serial_loop {llvm::acc::Clause::ACCC_async,llvm::acc::Clause::ACCC_collapse,llvm::acc::Clause::ACCC_default,llvm::acc::Clause::ACCC_gang,llvm::acc::Clause::ACCC_if,llvm::acc::Clause::ACCC_reduction,llvm::acc::Clause::ACCC_self,llvm::acc::Clause::ACCC_tile,llvm::acc::Clause::ACCC_vector,llvm::acc::Clause::ACCC_worker,};static AccClauseSet allowedExclusiveClauses_ACCD_serial_loop {llvm::acc::Clause::ACCC_auto,llvm::acc::Clause::ACCC_independent,llvm::acc::Clause::ACCC_seq,};static AccClauseSet requiredClauses_ACCD_serial_loop {};// Sets for setstatic AccClauseSet allowedClauses_ACCD_set {};static AccClauseSet allowedOnceClauses_ACCD_set {llvm::acc::Clause::ACCC_default_async,llvm::acc::Clause::ACCC_device_num,llvm::acc::Clause::ACCC_device_type,llvm::acc::Clause::ACCC_if,};static AccClauseSet allowedExclusiveClauses_ACCD_set {};static AccClauseSet requiredClauses_ACCD_set {llvm::acc::Clause::ACCC_default_async,llvm::acc::Clause::ACCC_device_num,llvm::acc::Clause::ACCC_device_type,};// Sets for shutdownstatic AccClauseSet allowedClauses_ACCD_shutdown {};static AccClauseSet allowedOnceClauses_ACCD_shutdown {llvm::acc::Clause::ACCC_device_num,llvm::acc::Clause::ACCC_device_type,llvm::acc::Clause::ACCC_if,};static AccClauseSet allowedExclusiveClauses_ACCD_shutdown {};static AccClauseSet requiredClauses_ACCD_shutdown {};// Sets for unknownstatic AccClauseSet allowedClauses_ACCD_unknown {};static AccClauseSet allowedOnceClauses_ACCD_unknown {};static AccClauseSet allowedExclusiveClauses_ACCD_unknown {};static AccClauseSet requiredClauses_ACCD_unknown {};// Sets for updatestatic AccClauseSet allowedClauses_ACCD_update {llvm::acc::Clause::ACCC_device_type,llvm::acc::Clause::ACCC_wait,};static AccClauseSet allowedOnceClauses_ACCD_update {llvm::acc::Clause::ACCC_async,llvm::acc::Clause::ACCC_if,llvm::acc::Clause::ACCC_if_present,};static AccClauseSet allowedExclusiveClauses_ACCD_update {};static AccClauseSet requiredClauses_ACCD_update {llvm::acc::Clause::ACCC_device,llvm::acc::Clause::ACCC_host,llvm::acc::Clause::ACCC_self,};// Sets for waitstatic AccClauseSet allowedClauses_ACCD_wait {};static AccClauseSet allowedOnceClauses_ACCD_wait {llvm::acc::Clause::ACCC_async,llvm::acc::Clause::ACCC_if,};static AccClauseSet allowedExclusiveClauses_ACCD_wait {};static AccClauseSet requiredClauses_ACCD_wait {};} // namespace acc} // namespace llvm#endif // GEN_FLANG_DIRECTIVE_CLAUSE_SETS#ifdef GEN_FLANG_DIRECTIVE_CLAUSE_MAP#undef GEN_FLANG_DIRECTIVE_CLAUSE_MAP{{llvm::acc::Directive::ACCD_atomic,{llvm::acc::allowedClauses_ACCD_atomic,llvm::acc::allowedOnceClauses_ACCD_atomic,llvm::acc::allowedExclusiveClauses_ACCD_atomic,llvm::acc::requiredClauses_ACCD_atomic,}},{llvm::acc::Directive::ACCD_cache,{llvm::acc::allowedClauses_ACCD_cache,llvm::acc::allowedOnceClauses_ACCD_cache,llvm::acc::allowedExclusiveClauses_ACCD_cache,llvm::acc::requiredClauses_ACCD_cache,}},{llvm::acc::Directive::ACCD_data,{llvm::acc::allowedClauses_ACCD_data,llvm::acc::allowedOnceClauses_ACCD_data,llvm::acc::allowedExclusiveClauses_ACCD_data,llvm::acc::requiredClauses_ACCD_data,}},{llvm::acc::Directive::ACCD_declare,{llvm::acc::allowedClauses_ACCD_declare,llvm::acc::allowedOnceClauses_ACCD_declare,llvm::acc::allowedExclusiveClauses_ACCD_declare,llvm::acc::requiredClauses_ACCD_declare,}},{llvm::acc::Directive::ACCD_enter_data,{llvm::acc::allowedClauses_ACCD_enter_data,llvm::acc::allowedOnceClauses_ACCD_enter_data,llvm::acc::allowedExclusiveClauses_ACCD_enter_data,llvm::acc::requiredClauses_ACCD_enter_data,}},{llvm::acc::Directive::ACCD_exit_data,{llvm::acc::allowedClauses_ACCD_exit_data,llvm::acc::allowedOnceClauses_ACCD_exit_data,llvm::acc::allowedExclusiveClauses_ACCD_exit_data,llvm::acc::requiredClauses_ACCD_exit_data,}},{llvm::acc::Directive::ACCD_host_data,{llvm::acc::allowedClauses_ACCD_host_data,llvm::acc::allowedOnceClauses_ACCD_host_data,llvm::acc::allowedExclusiveClauses_ACCD_host_data,llvm::acc::requiredClauses_ACCD_host_data,}},{llvm::acc::Directive::ACCD_init,{llvm::acc::allowedClauses_ACCD_init,llvm::acc::allowedOnceClauses_ACCD_init,llvm::acc::allowedExclusiveClauses_ACCD_init,llvm::acc::requiredClauses_ACCD_init,}},{llvm::acc::Directive::ACCD_kernels,{llvm::acc::allowedClauses_ACCD_kernels,llvm::acc::allowedOnceClauses_ACCD_kernels,llvm::acc::allowedExclusiveClauses_ACCD_kernels,llvm::acc::requiredClauses_ACCD_kernels,}},{llvm::acc::Directive::ACCD_kernels_loop,{llvm::acc::allowedClauses_ACCD_kernels_loop,llvm::acc::allowedOnceClauses_ACCD_kernels_loop,llvm::acc::allowedExclusiveClauses_ACCD_kernels_loop,llvm::acc::requiredClauses_ACCD_kernels_loop,}},{llvm::acc::Directive::ACCD_loop,{llvm::acc::allowedClauses_ACCD_loop,llvm::acc::allowedOnceClauses_ACCD_loop,llvm::acc::allowedExclusiveClauses_ACCD_loop,llvm::acc::requiredClauses_ACCD_loop,}},{llvm::acc::Directive::ACCD_parallel,{llvm::acc::allowedClauses_ACCD_parallel,llvm::acc::allowedOnceClauses_ACCD_parallel,llvm::acc::allowedExclusiveClauses_ACCD_parallel,llvm::acc::requiredClauses_ACCD_parallel,}},{llvm::acc::Directive::ACCD_parallel_loop,{llvm::acc::allowedClauses_ACCD_parallel_loop,llvm::acc::allowedOnceClauses_ACCD_parallel_loop,llvm::acc::allowedExclusiveClauses_ACCD_parallel_loop,llvm::acc::requiredClauses_ACCD_parallel_loop,}},{llvm::acc::Directive::ACCD_routine,{llvm::acc::allowedClauses_ACCD_routine,llvm::acc::allowedOnceClauses_ACCD_routine,llvm::acc::allowedExclusiveClauses_ACCD_routine,llvm::acc::requiredClauses_ACCD_routine,}},{llvm::acc::Directive::ACCD_serial,{llvm::acc::allowedClauses_ACCD_serial,llvm::acc::allowedOnceClauses_ACCD_serial,llvm::acc::allowedExclusiveClauses_ACCD_serial,llvm::acc::requiredClauses_ACCD_serial,}},{llvm::acc::Directive::ACCD_serial_loop,{llvm::acc::allowedClauses_ACCD_serial_loop,llvm::acc::allowedOnceClauses_ACCD_serial_loop,llvm::acc::allowedExclusiveClauses_ACCD_serial_loop,llvm::acc::requiredClauses_ACCD_serial_loop,}},{llvm::acc::Directive::ACCD_set,{llvm::acc::allowedClauses_ACCD_set,llvm::acc::allowedOnceClauses_ACCD_set,llvm::acc::allowedExclusiveClauses_ACCD_set,llvm::acc::requiredClauses_ACCD_set,}},{llvm::acc::Directive::ACCD_shutdown,{llvm::acc::allowedClauses_ACCD_shutdown,llvm::acc::allowedOnceClauses_ACCD_shutdown,llvm::acc::allowedExclusiveClauses_ACCD_shutdown,llvm::acc::requiredClauses_ACCD_shutdown,}},{llvm::acc::Directive::ACCD_unknown,{llvm::acc::allowedClauses_ACCD_unknown,llvm::acc::allowedOnceClauses_ACCD_unknown,llvm::acc::allowedExclusiveClauses_ACCD_unknown,llvm::acc::requiredClauses_ACCD_unknown,}},{llvm::acc::Directive::ACCD_update,{llvm::acc::allowedClauses_ACCD_update,llvm::acc::allowedOnceClauses_ACCD_update,llvm::acc::allowedExclusiveClauses_ACCD_update,llvm::acc::requiredClauses_ACCD_update,}},{llvm::acc::Directive::ACCD_wait,{llvm::acc::allowedClauses_ACCD_wait,llvm::acc::allowedOnceClauses_ACCD_wait,llvm::acc::allowedExclusiveClauses_ACCD_wait,llvm::acc::requiredClauses_ACCD_wait,}},}#endif // GEN_FLANG_DIRECTIVE_CLAUSE_MAP#ifdef GEN_FLANG_CLAUSE_PARSER_CLASSES#undef GEN_FLANG_CLAUSE_PARSER_CLASSESWRAPPER_CLASS(Async, std::optional<ScalarIntExpr>);WRAPPER_CLASS(Attach, AccObjectList);EMPTY_CLASS(Auto);WRAPPER_CLASS(Bind, AccBindClause);EMPTY_CLASS(Capture);WRAPPER_CLASS(Collapse, ScalarIntConstantExpr);WRAPPER_CLASS(Copy, AccObjectList);WRAPPER_CLASS(Copyin, AccObjectListWithModifier);WRAPPER_CLASS(Copyout, AccObjectListWithModifier);WRAPPER_CLASS(Create, AccObjectListWithModifier);WRAPPER_CLASS(Default, AccDefaultClause);WRAPPER_CLASS(DefaultAsync, ScalarIntExpr);WRAPPER_CLASS(Delete, AccObjectList);WRAPPER_CLASS(Detach, AccObjectList);WRAPPER_CLASS(Device, AccObjectList);WRAPPER_CLASS(DeviceNum, ScalarIntExpr);WRAPPER_CLASS(Deviceptr, AccObjectList);WRAPPER_CLASS(DeviceResident, AccObjectList);WRAPPER_CLASS(DeviceType, AccDeviceTypeExprList);EMPTY_CLASS(Finalize);WRAPPER_CLASS(Firstprivate, AccObjectList);WRAPPER_CLASS(Gang, std::optional<AccGangArgument>);WRAPPER_CLASS(Host, AccObjectList);WRAPPER_CLASS(If, ScalarLogicalExpr);EMPTY_CLASS(IfPresent);EMPTY_CLASS(Independent);WRAPPER_CLASS(Link, AccObjectList);WRAPPER_CLASS(NoCreate, AccObjectList);EMPTY_CLASS(Nohost);WRAPPER_CLASS(NumGangs, ScalarIntExpr);WRAPPER_CLASS(NumWorkers, ScalarIntExpr);WRAPPER_CLASS(Present, AccObjectList);WRAPPER_CLASS(Private, AccObjectList);EMPTY_CLASS(Read);WRAPPER_CLASS(Reduction, AccObjectListWithReduction);WRAPPER_CLASS(Self, std::optional<AccSelfClause>);EMPTY_CLASS(Seq);WRAPPER_CLASS(Tile, AccTileExprList);EMPTY_CLASS(Unknown);WRAPPER_CLASS(UseDevice, AccObjectList);WRAPPER_CLASS(Vector, std::optional<ScalarIntExpr>);WRAPPER_CLASS(VectorLength, ScalarIntExpr);WRAPPER_CLASS(Wait, std::optional<AccWaitArgument>);WRAPPER_CLASS(Worker, std::optional<ScalarIntExpr>);EMPTY_CLASS(Write);#endif // GEN_FLANG_CLAUSE_PARSER_CLASSES#ifdef GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST#undef GEN_FLANG_CLAUSE_PARSER_CLASSES_LISTAsync, Attach, Auto, Bind, Capture, Collapse, Copy, Copyin, Copyout, Create, Default, DefaultAsync, Delete, Detach, Device, DeviceNum, Deviceptr, DeviceResident, DeviceType, Finalize, Firstprivate, Gang, Host, If, IfPresent, Independent, Link, NoCreate, Nohost, NumGangs, NumWorkers, Present, Private, Read, Reduction, Self, Seq, Tile, Unknown, UseDevice, Vector, VectorLength, Wait, Worker, Write#endif // GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST#ifdef GEN_FLANG_DUMP_PARSE_TREE_CLAUSES#undef GEN_FLANG_DUMP_PARSE_TREE_CLAUSESNODE(AccClause, Async)NODE(AccClause, Attach)NODE(AccClause, Auto)NODE(AccClause, Bind)NODE(AccClause, Capture)NODE(AccClause, Collapse)NODE(AccClause, Copy)NODE(AccClause, Copyin)NODE(AccClause, Copyout)NODE(AccClause, Create)NODE(AccClause, Default)NODE(AccClause, DefaultAsync)NODE(AccClause, Delete)NODE(AccClause, Detach)NODE(AccClause, Device)NODE(AccClause, DeviceNum)NODE(AccClause, Deviceptr)NODE(AccClause, DeviceResident)NODE(AccClause, DeviceType)NODE(AccClause, Finalize)NODE(AccClause, Firstprivate)NODE(AccClause, Gang)NODE(AccClause, Host)NODE(AccClause, If)NODE(AccClause, IfPresent)NODE(AccClause, Independent)NODE(AccClause, Link)NODE(AccClause, NoCreate)NODE(AccClause, Nohost)NODE(AccClause, NumGangs)NODE(AccClause, NumWorkers)NODE(AccClause, Present)NODE(AccClause, Private)NODE(AccClause, Read)NODE(AccClause, Reduction)NODE(AccClause, Self)NODE(AccClause, Seq)NODE(AccClause, Tile)NODE(AccClause, Unknown)NODE(AccClause, UseDevice)NODE(AccClause, Vector)NODE(AccClause, VectorLength)NODE(AccClause, Wait)NODE(AccClause, Worker)NODE(AccClause, Write)#endif // GEN_FLANG_DUMP_PARSE_TREE_CLAUSES#ifdef GEN_FLANG_CLAUSE_UNPARSE#undef GEN_FLANG_CLAUSE_UNPARSEvoid Unparse(const AccClause::Async &x) {Word("ASYNC");Walk("(", x.v, ")");}void Unparse(const AccClause::Attach &x) {Word("ATTACH");Put("(");Walk(x.v);Put(")");}void Before(const AccClause::Auto &) { Word("AUTO"); }void Unparse(const AccClause::Bind &x) {Word("BIND");Put("(");Walk(x.v);Put(")");}void Before(const AccClause::Capture &) { Word("CAPTURE"); }void Unparse(const AccClause::Collapse &x) {Word("COLLAPSE");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Copy &x) {Word("COPY");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Copyin &x) {Word("COPYIN");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Copyout &x) {Word("COPYOUT");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Create &x) {Word("CREATE");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Default &x) {Word("DEFAULT");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::DefaultAsync &x) {Word("DEFAULT_ASYNC");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Delete &x) {Word("DELETE");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Detach &x) {Word("DETACH");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Device &x) {Word("DEVICE");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::DeviceNum &x) {Word("DEVICE_NUM");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Deviceptr &x) {Word("DEVICEPTR");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::DeviceResident &x) {Word("DEVICE_RESIDENT");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::DeviceType &x) {Word("DEVICE_TYPE");Put("(");Walk(x.v);Put(")");}void Before(const AccClause::Finalize &) { Word("FINALIZE"); }void Unparse(const AccClause::Firstprivate &x) {Word("FIRSTPRIVATE");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Gang &x) {Word("GANG");Walk("(", x.v, ")");}void Unparse(const AccClause::Host &x) {Word("HOST");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::If &x) {Word("IF");Put("(");Walk(x.v);Put(")");}void Before(const AccClause::IfPresent &) { Word("IF_PRESENT"); }void Before(const AccClause::Independent &) { Word("INDEPENDENT"); }void Unparse(const AccClause::Link &x) {Word("LINK");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::NoCreate &x) {Word("NO_CREATE");Put("(");Walk(x.v);Put(")");}void Before(const AccClause::Nohost &) { Word("NOHOST"); }void Unparse(const AccClause::NumGangs &x) {Word("NUM_GANGS");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::NumWorkers &x) {Word("NUM_WORKERS");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Present &x) {Word("PRESENT");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Private &x) {Word("PRIVATE");Put("(");Walk(x.v);Put(")");}void Before(const AccClause::Read &) { Word("READ"); }void Unparse(const AccClause::Reduction &x) {Word("REDUCTION");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Self &x) {Word("SELF");Walk("(", x.v, ")");}void Before(const AccClause::Seq &) { Word("SEQ"); }void Unparse(const AccClause::Tile &x) {Word("TILE");Put("(");Walk(x.v);Put(")");}void Before(const AccClause::Unknown &) { Word("UNKNOWN"); }void Unparse(const AccClause::UseDevice &x) {Word("USE_DEVICE");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Vector &x) {Word("VECTOR");Walk("(", x.v, ")");}void Unparse(const AccClause::VectorLength &x) {Word("VECTOR_LENGTH");Put("(");Walk(x.v);Put(")");}void Unparse(const AccClause::Wait &x) {Word("WAIT");Walk("(", x.v, ")");}void Unparse(const AccClause::Worker &x) {Word("WORKER");Walk("(", x.v, ")");}void Before(const AccClause::Write &) { Word("WRITE"); }#endif // GEN_FLANG_CLAUSE_UNPARSE#ifdef GEN_FLANG_CLAUSE_CHECK_ENTER#undef GEN_FLANG_CLAUSE_CHECK_ENTERvoid Enter(const parser::AccClause::Async &);void Enter(const parser::AccClause::Attach &);void Enter(const parser::AccClause::Auto &);void Enter(const parser::AccClause::Bind &);void Enter(const parser::AccClause::Capture &);void Enter(const parser::AccClause::Collapse &);void Enter(const parser::AccClause::Copy &);void Enter(const parser::AccClause::Copyin &);void Enter(const parser::AccClause::Copyout &);void Enter(const parser::AccClause::Create &);void Enter(const parser::AccClause::Default &);void Enter(const parser::AccClause::DefaultAsync &);void Enter(const parser::AccClause::Delete &);void Enter(const parser::AccClause::Detach &);void Enter(const parser::AccClause::Device &);void Enter(const parser::AccClause::DeviceNum &);void Enter(const parser::AccClause::Deviceptr &);void Enter(const parser::AccClause::DeviceResident &);void Enter(const parser::AccClause::DeviceType &);void Enter(const parser::AccClause::Finalize &);void Enter(const parser::AccClause::Firstprivate &);void Enter(const parser::AccClause::Gang &);void Enter(const parser::AccClause::Host &);void Enter(const parser::AccClause::If &);void Enter(const parser::AccClause::IfPresent &);void Enter(const parser::AccClause::Independent &);void Enter(const parser::AccClause::Link &);void Enter(const parser::AccClause::NoCreate &);void Enter(const parser::AccClause::Nohost &);void Enter(const parser::AccClause::NumGangs &);void Enter(const parser::AccClause::NumWorkers &);void Enter(const parser::AccClause::Present &);void Enter(const parser::AccClause::Private &);void Enter(const parser::AccClause::Read &);void Enter(const parser::AccClause::Reduction &);void Enter(const parser::AccClause::Self &);void Enter(const parser::AccClause::Seq &);void Enter(const parser::AccClause::Tile &);void Enter(const parser::AccClause::Unknown &);void Enter(const parser::AccClause::UseDevice &);void Enter(const parser::AccClause::Vector &);void Enter(const parser::AccClause::VectorLength &);void Enter(const parser::AccClause::Wait &);void Enter(const parser::AccClause::Worker &);void Enter(const parser::AccClause::Write &);#endif // GEN_FLANG_CLAUSE_CHECK_ENTER#ifdef GEN_FLANG_CLAUSE_PARSER_KIND_MAP#undef GEN_FLANG_CLAUSE_PARSER_KIND_MAPif constexpr (std::is_same_v<A, parser::AccClause::Async>)return llvm::acc::Clause::ACCC_async;if constexpr (std::is_same_v<A, parser::AccClause::Attach>)return llvm::acc::Clause::ACCC_attach;if constexpr (std::is_same_v<A, parser::AccClause::Auto>)return llvm::acc::Clause::ACCC_auto;if constexpr (std::is_same_v<A, parser::AccClause::Bind>)return llvm::acc::Clause::ACCC_bind;if constexpr (std::is_same_v<A, parser::AccClause::Capture>)return llvm::acc::Clause::ACCC_capture;if constexpr (std::is_same_v<A, parser::AccClause::Collapse>)return llvm::acc::Clause::ACCC_collapse;if constexpr (std::is_same_v<A, parser::AccClause::Copy>)return llvm::acc::Clause::ACCC_copy;if constexpr (std::is_same_v<A, parser::AccClause::Copyin>)return llvm::acc::Clause::ACCC_copyin;if constexpr (std::is_same_v<A, parser::AccClause::Copyout>)return llvm::acc::Clause::ACCC_copyout;if constexpr (std::is_same_v<A, parser::AccClause::Create>)return llvm::acc::Clause::ACCC_create;if constexpr (std::is_same_v<A, parser::AccClause::Default>)return llvm::acc::Clause::ACCC_default;if constexpr (std::is_same_v<A, parser::AccClause::DefaultAsync>)return llvm::acc::Clause::ACCC_default_async;if constexpr (std::is_same_v<A, parser::AccClause::Delete>)return llvm::acc::Clause::ACCC_delete;if constexpr (std::is_same_v<A, parser::AccClause::Detach>)return llvm::acc::Clause::ACCC_detach;if constexpr (std::is_same_v<A, parser::AccClause::Device>)return llvm::acc::Clause::ACCC_device;if constexpr (std::is_same_v<A, parser::AccClause::DeviceNum>)return llvm::acc::Clause::ACCC_device_num;if constexpr (std::is_same_v<A, parser::AccClause::Deviceptr>)return llvm::acc::Clause::ACCC_deviceptr;if constexpr (std::is_same_v<A, parser::AccClause::DeviceResident>)return llvm::acc::Clause::ACCC_device_resident;if constexpr (std::is_same_v<A, parser::AccClause::DeviceType>)return llvm::acc::Clause::ACCC_device_type;if constexpr (std::is_same_v<A, parser::AccClause::Finalize>)return llvm::acc::Clause::ACCC_finalize;if constexpr (std::is_same_v<A, parser::AccClause::Firstprivate>)return llvm::acc::Clause::ACCC_firstprivate;if constexpr (std::is_same_v<A, parser::AccClause::Gang>)return llvm::acc::Clause::ACCC_gang;if constexpr (std::is_same_v<A, parser::AccClause::Host>)return llvm::acc::Clause::ACCC_host;if constexpr (std::is_same_v<A, parser::AccClause::If>)return llvm::acc::Clause::ACCC_if;if constexpr (std::is_same_v<A, parser::AccClause::IfPresent>)return llvm::acc::Clause::ACCC_if_present;if constexpr (std::is_same_v<A, parser::AccClause::Independent>)return llvm::acc::Clause::ACCC_independent;if constexpr (std::is_same_v<A, parser::AccClause::Link>)return llvm::acc::Clause::ACCC_link;if constexpr (std::is_same_v<A, parser::AccClause::NoCreate>)return llvm::acc::Clause::ACCC_no_create;if constexpr (std::is_same_v<A, parser::AccClause::Nohost>)return llvm::acc::Clause::ACCC_nohost;if constexpr (std::is_same_v<A, parser::AccClause::NumGangs>)return llvm::acc::Clause::ACCC_num_gangs;if constexpr (std::is_same_v<A, parser::AccClause::NumWorkers>)return llvm::acc::Clause::ACCC_num_workers;if constexpr (std::is_same_v<A, parser::AccClause::Present>)return llvm::acc::Clause::ACCC_present;if constexpr (std::is_same_v<A, parser::AccClause::Private>)return llvm::acc::Clause::ACCC_private;if constexpr (std::is_same_v<A, parser::AccClause::Read>)return llvm::acc::Clause::ACCC_read;if constexpr (std::is_same_v<A, parser::AccClause::Reduction>)return llvm::acc::Clause::ACCC_reduction;if constexpr (std::is_same_v<A, parser::AccClause::Self>)return llvm::acc::Clause::ACCC_self;if constexpr (std::is_same_v<A, parser::AccClause::Seq>)return llvm::acc::Clause::ACCC_seq;if constexpr (std::is_same_v<A, parser::AccClause::Tile>)return llvm::acc::Clause::ACCC_tile;if constexpr (std::is_same_v<A, parser::AccClause::Unknown>)return llvm::acc::Clause::ACCC_unknown;if constexpr (std::is_same_v<A, parser::AccClause::UseDevice>)return llvm::acc::Clause::ACCC_use_device;if constexpr (std::is_same_v<A, parser::AccClause::Vector>)return llvm::acc::Clause::ACCC_vector;if constexpr (std::is_same_v<A, parser::AccClause::VectorLength>)return llvm::acc::Clause::ACCC_vector_length;if constexpr (std::is_same_v<A, parser::AccClause::Wait>)return llvm::acc::Clause::ACCC_wait;if constexpr (std::is_same_v<A, parser::AccClause::Worker>)return llvm::acc::Clause::ACCC_worker;if constexpr (std::is_same_v<A, parser::AccClause::Write>)return llvm::acc::Clause::ACCC_write;llvm_unreachable("Invalid OpenACC Parser clause");#endif // GEN_FLANG_CLAUSE_PARSER_KIND_MAP#ifdef GEN_FLANG_CLAUSES_PARSER#undef GEN_FLANG_CLAUSES_PARSERTYPE_PARSER("write" >> construct<AccClause>(construct<AccClause::Write>()) ||"worker" >> construct<AccClause>(construct<AccClause::Worker>(maybe(parenthesized("num:" >> scalarIntExpr || scalarIntExpr)))) ||"wait" >> construct<AccClause>(construct<AccClause::Wait>(maybe(parenthesized(Parser<AccWaitArgument>{})))) ||"vector_length" >> construct<AccClause>(construct<AccClause::VectorLength>(parenthesized(scalarIntExpr))) ||"vector" >> construct<AccClause>(construct<AccClause::Vector>(maybe(parenthesized("length:" >> scalarIntExpr || scalarIntExpr)))) ||"use_device" >> construct<AccClause>(construct<AccClause::UseDevice>(parenthesized(Parser<AccObjectList>{}))) ||"unknown" >> construct<AccClause>(construct<AccClause::Unknown>()) ||"tile" >> construct<AccClause>(construct<AccClause::Tile>(parenthesized(Parser<AccTileExprList>{}))) ||"seq" >> construct<AccClause>(construct<AccClause::Seq>()) ||"self" >> construct<AccClause>(construct<AccClause::Self>(maybe(parenthesized(Parser<AccSelfClause>{})))) ||"reduction" >> construct<AccClause>(construct<AccClause::Reduction>(parenthesized(Parser<AccObjectListWithReduction>{}))) ||"read" >> construct<AccClause>(construct<AccClause::Read>()) ||"private" >> construct<AccClause>(construct<AccClause::Private>(parenthesized(Parser<AccObjectList>{}))) ||"present" >> construct<AccClause>(construct<AccClause::Present>(parenthesized(Parser<AccObjectList>{}))) ||"num_workers" >> construct<AccClause>(construct<AccClause::NumWorkers>(parenthesized(scalarIntExpr))) ||"num_gangs" >> construct<AccClause>(construct<AccClause::NumGangs>(parenthesized(scalarIntExpr))) ||"nohost" >> construct<AccClause>(construct<AccClause::Nohost>()) ||"no_create" >> construct<AccClause>(construct<AccClause::NoCreate>(parenthesized(Parser<AccObjectList>{}))) ||"link" >> construct<AccClause>(construct<AccClause::Link>(parenthesized(Parser<AccObjectList>{}))) ||"independent" >> construct<AccClause>(construct<AccClause::Independent>()) ||"if_present" >> construct<AccClause>(construct<AccClause::IfPresent>()) ||"if" >> construct<AccClause>(construct<AccClause::If>(parenthesized(scalarLogicalExpr))) ||"host" >> construct<AccClause>(construct<AccClause::Host>(parenthesized(Parser<AccObjectList>{}))) ||"gang" >> construct<AccClause>(construct<AccClause::Gang>(maybe(parenthesized(Parser<AccGangArgument>{})))) ||"firstprivate" >> construct<AccClause>(construct<AccClause::Firstprivate>(parenthesized(Parser<AccObjectList>{}))) ||"finalize" >> construct<AccClause>(construct<AccClause::Finalize>()) ||"deviceptr" >> construct<AccClause>(construct<AccClause::Deviceptr>(parenthesized(Parser<AccObjectList>{}))) ||("device_type"_tok || "dtype"_tok) >> construct<AccClause>(construct<AccClause::DeviceType>(parenthesized(Parser<AccDeviceTypeExprList>{}))) ||"device_resident" >> construct<AccClause>(construct<AccClause::DeviceResident>(parenthesized(Parser<AccObjectList>{}))) ||"device_num" >> construct<AccClause>(construct<AccClause::DeviceNum>(parenthesized(scalarIntExpr))) ||"device" >> construct<AccClause>(construct<AccClause::Device>(parenthesized(Parser<AccObjectList>{}))) ||"detach" >> construct<AccClause>(construct<AccClause::Detach>(parenthesized(Parser<AccObjectList>{}))) ||"delete" >> construct<AccClause>(construct<AccClause::Delete>(parenthesized(Parser<AccObjectList>{}))) ||"default_async" >> construct<AccClause>(construct<AccClause::DefaultAsync>(parenthesized(scalarIntExpr))) ||"default" >> construct<AccClause>(construct<AccClause::Default>(parenthesized(Parser<AccDefaultClause>{}))) ||("create"_tok || "present_or_create"_tok || "pcreate"_tok) >> construct<AccClause>(construct<AccClause::Create>(parenthesized(Parser<AccObjectListWithModifier>{}))) ||("copyout"_tok || "present_or_copyout"_tok || "pcopyout"_tok) >> construct<AccClause>(construct<AccClause::Copyout>(parenthesized(Parser<AccObjectListWithModifier>{}))) ||("copyin"_tok || "present_or_copyin"_tok || "pcopyin"_tok) >> construct<AccClause>(construct<AccClause::Copyin>(parenthesized(Parser<AccObjectListWithModifier>{}))) ||("copy"_tok || "present_or_copy"_tok || "pcopy"_tok) >> construct<AccClause>(construct<AccClause::Copy>(parenthesized(Parser<AccObjectList>{}))) ||"collapse" >> construct<AccClause>(construct<AccClause::Collapse>(parenthesized(scalarIntConstantExpr))) ||"capture" >> construct<AccClause>(construct<AccClause::Capture>()) ||"bind" >> construct<AccClause>(construct<AccClause::Bind>(parenthesized(Parser<AccBindClause>{}))) ||"auto" >> construct<AccClause>(construct<AccClause::Auto>()) ||"attach" >> construct<AccClause>(construct<AccClause::Attach>(parenthesized(Parser<AccObjectList>{}))) ||"async" >> construct<AccClause>(construct<AccClause::Async>(maybe(parenthesized(scalarIntExpr)))))#endif // GEN_FLANG_CLAUSES_PARSER#ifdef GEN_CLANG_CLAUSE_CLASS#undef GEN_CLANG_CLAUSE_CLASS#ifndef CLAUSE#define CLAUSE(Enum, Str, Implicit)#endif#ifndef CLAUSE_CLASS#define CLAUSE_CLASS(Enum, Str, Class)#endif#ifndef CLAUSE_NO_CLASS#define CLAUSE_NO_CLASS(Enum, Str)#endif#define __CLAUSE(Name, Class) \CLAUSE(ACCC_##Name, #Name, /* Implicit */ false) \CLAUSE_CLASS(ACCC_##Name, #Name, Class)#define __CLAUSE_NO_CLASS(Name) \CLAUSE(ACCC_##Name, #Name, /* Implicit */ false) \CLAUSE_NO_CLASS(ACCC_##Name, #Name)#define __IMPLICIT_CLAUSE_CLASS(Name, Str, Class) \CLAUSE(ACCC_##Name, Str, /* Implicit */ true) \CLAUSE_CLASS(ACCC_##Name, Str, Class)#define __IMPLICIT_CLAUSE_NO_CLASS(Name, Str) \CLAUSE(ACCC_##Name, Str, /* Implicit */ true) \CLAUSE_NO_CLASS(ACCC_##Name, Str)__CLAUSE_NO_CLASS(async)__CLAUSE_NO_CLASS(attach)__CLAUSE_NO_CLASS(auto)__CLAUSE_NO_CLASS(bind)__CLAUSE_NO_CLASS(capture)__CLAUSE_NO_CLASS(collapse)__CLAUSE_NO_CLASS(copy)__CLAUSE_NO_CLASS(copyin)__CLAUSE_NO_CLASS(copyout)__CLAUSE_NO_CLASS(create)__CLAUSE_NO_CLASS(default)__CLAUSE_NO_CLASS(default_async)__CLAUSE_NO_CLASS(delete)__CLAUSE_NO_CLASS(detach)__CLAUSE_NO_CLASS(device)__CLAUSE_NO_CLASS(device_num)__CLAUSE_NO_CLASS(deviceptr)__CLAUSE_NO_CLASS(device_resident)__CLAUSE_NO_CLASS(device_type)__CLAUSE_NO_CLASS(finalize)__CLAUSE_NO_CLASS(firstprivate)__CLAUSE_NO_CLASS(gang)__CLAUSE_NO_CLASS(host)__CLAUSE_NO_CLASS(if)__CLAUSE_NO_CLASS(if_present)__CLAUSE_NO_CLASS(independent)__CLAUSE_NO_CLASS(link)__CLAUSE_NO_CLASS(no_create)__CLAUSE_NO_CLASS(nohost)__CLAUSE_NO_CLASS(num_gangs)__CLAUSE_NO_CLASS(num_workers)__CLAUSE_NO_CLASS(present)__CLAUSE_NO_CLASS(private)__CLAUSE_NO_CLASS(read)__CLAUSE_NO_CLASS(reduction)__CLAUSE_NO_CLASS(self)__CLAUSE_NO_CLASS(seq)__CLAUSE_NO_CLASS(tile)__CLAUSE_NO_CLASS(unknown)__CLAUSE_NO_CLASS(use_device)__CLAUSE_NO_CLASS(vector)__CLAUSE_NO_CLASS(vector_length)__CLAUSE_NO_CLASS(wait)__CLAUSE_NO_CLASS(worker)__CLAUSE_NO_CLASS(write)#undef __IMPLICIT_CLAUSE_NO_CLASS#undef __IMPLICIT_CLAUSE_CLASS#undef __CLAUSE#undef CLAUSE_NO_CLASS#undef CLAUSE_CLASS#undef CLAUSE#endif // GEN_CLANG_CLAUSE_CLASS#ifdef GEN_DIRECTIVES_IMPL#undef GEN_DIRECTIVES_IMPLDirective llvm::acc::getOpenACCDirectiveKind(llvm::StringRef Str) {return llvm::StringSwitch<Directive>(Str).Case("atomic",ACCD_atomic).Case("cache",ACCD_cache).Case("data",ACCD_data).Case("declare",ACCD_declare).Case("enter data",ACCD_enter_data).Case("exit data",ACCD_exit_data).Case("host_data",ACCD_host_data).Case("init",ACCD_init).Case("kernels",ACCD_kernels).Case("kernels loop",ACCD_kernels_loop).Case("loop",ACCD_loop).Case("parallel",ACCD_parallel).Case("parallel loop",ACCD_parallel_loop).Case("routine",ACCD_routine).Case("serial",ACCD_serial).Case("serial loop",ACCD_serial_loop).Case("set",ACCD_set).Case("shutdown",ACCD_shutdown).Case("unknown",ACCD_unknown).Case("update",ACCD_update).Case("wait",ACCD_wait).Default(ACCD_unknown);}llvm::StringRef llvm::acc::getOpenACCDirectiveName(Directive Kind) {switch (Kind) {case ACCD_atomic:return "atomic";case ACCD_cache:return "cache";case ACCD_data:return "data";case ACCD_declare:return "declare";case ACCD_enter_data:return "enter data";case ACCD_exit_data:return "exit data";case ACCD_host_data:return "host_data";case ACCD_init:return "init";case ACCD_kernels:return "kernels";case ACCD_kernels_loop:return "kernels loop";case ACCD_loop:return "loop";case ACCD_parallel:return "parallel";case ACCD_parallel_loop:return "parallel loop";case ACCD_routine:return "routine";case ACCD_serial:return "serial";case ACCD_serial_loop:return "serial loop";case ACCD_set:return "set";case ACCD_shutdown:return "shutdown";case ACCD_unknown:return "unknown";case ACCD_update:return "update";case ACCD_wait:return "wait";}llvm_unreachable("Invalid OpenACC Directive kind");}Clause llvm::acc::getOpenACCClauseKind(llvm::StringRef Str) {return llvm::StringSwitch<Clause>(Str).Case("async",ACCC_async).Case("attach",ACCC_attach).Case("auto",ACCC_auto).Case("bind",ACCC_bind).Case("capture",ACCC_capture).Case("collapse",ACCC_collapse).Case("copy",ACCC_copy).Case("copyin",ACCC_copyin).Case("copyout",ACCC_copyout).Case("create",ACCC_create).Case("default",ACCC_default).Case("default_async",ACCC_default_async).Case("delete",ACCC_delete).Case("detach",ACCC_detach).Case("device",ACCC_device).Case("device_num",ACCC_device_num).Case("deviceptr",ACCC_deviceptr).Case("device_resident",ACCC_device_resident).Case("device_type",ACCC_device_type).Case("finalize",ACCC_finalize).Case("firstprivate",ACCC_firstprivate).Case("gang",ACCC_gang).Case("host",ACCC_host).Case("if",ACCC_if).Case("if_present",ACCC_if_present).Case("independent",ACCC_independent).Case("link",ACCC_link).Case("no_create",ACCC_no_create).Case("nohost",ACCC_nohost).Case("num_gangs",ACCC_num_gangs).Case("num_workers",ACCC_num_workers).Case("present",ACCC_present).Case("private",ACCC_private).Case("read",ACCC_read).Case("reduction",ACCC_reduction).Case("self",ACCC_self).Case("seq",ACCC_seq).Case("tile",ACCC_tile).Case("unknown",ACCC_unknown).Case("use_device",ACCC_use_device).Case("vector",ACCC_vector).Case("vector_length",ACCC_vector_length).Case("wait",ACCC_wait).Case("worker",ACCC_worker).Case("write",ACCC_write).Default(ACCC_unknown);}llvm::StringRef llvm::acc::getOpenACCClauseName(Clause Kind) {switch (Kind) {case ACCC_async:return "async";case ACCC_attach:return "attach";case ACCC_auto:return "auto";case ACCC_bind:return "bind";case ACCC_capture:return "capture";case ACCC_collapse:return "collapse";case ACCC_copy:return "copy";case ACCC_copyin:return "copyin";case ACCC_copyout:return "copyout";case ACCC_create:return "create";case ACCC_default:return "default";case ACCC_default_async:return "default_async";case ACCC_delete:return "delete";case ACCC_detach:return "detach";case ACCC_device:return "device";case ACCC_device_num:return "device_num";case ACCC_deviceptr:return "deviceptr";case ACCC_device_resident:return "device_resident";case ACCC_device_type:return "device_type";case ACCC_finalize:return "finalize";case ACCC_firstprivate:return "firstprivate";case ACCC_gang:return "gang";case ACCC_host:return "host";case ACCC_if:return "if";case ACCC_if_present:return "if_present";case ACCC_independent:return "independent";case ACCC_link:return "link";case ACCC_no_create:return "no_create";case ACCC_nohost:return "nohost";case ACCC_num_gangs:return "num_gangs";case ACCC_num_workers:return "num_workers";case ACCC_present:return "present";case ACCC_private:return "private";case ACCC_read:return "read";case ACCC_reduction:return "reduction";case ACCC_self:return "self";case ACCC_seq:return "seq";case ACCC_tile:return "tile";case ACCC_unknown:return "unknown";case ACCC_use_device:return "use_device";case ACCC_vector:return "vector";case ACCC_vector_length:return "vector_length";case ACCC_wait:return "wait";case ACCC_worker:return "worker";case ACCC_write:return "write";}llvm_unreachable("Invalid OpenACC Clause kind");}DefaultValue llvm::acc::getDefaultValue(llvm::StringRef Str) {return llvm::StringSwitch<DefaultValue>(Str).Case("present",ACC_Default_present).Case("none",ACC_Default_none).Default(ACC_Default_none);}llvm::StringRef llvm::acc::getOpenACCDefaultValueName(llvm::acc::DefaultValue x) {switch (x) {case ACC_Default_present:return "present";case ACC_Default_none:return "none";}llvm_unreachable("Invalid OpenACC DefaultValue kind");}bool llvm::acc::isAllowedClauseForDirective(Directive D, Clause C, unsigned Version) {assert(unsigned(D) <= llvm::acc::Directive_enumSize);assert(unsigned(C) <= llvm::acc::Clause_enumSize);switch (D) {case ACCD_atomic:return false;break;case ACCD_cache:return false;break;case ACCD_data:switch (C) {case ACCC_if:return 1 <= Version && 2147483647 >= Version;case ACCC_default:return 1 <= Version && 2147483647 >= Version;case ACCC_attach:return 1 <= Version && 2147483647 >= Version;case ACCC_copy:return 1 <= Version && 2147483647 >= Version;case ACCC_copyin:return 1 <= Version && 2147483647 >= Version;case ACCC_copyout:return 1 <= Version && 2147483647 >= Version;case ACCC_create:return 1 <= Version && 2147483647 >= Version;case ACCC_deviceptr:return 1 <= Version && 2147483647 >= Version;case ACCC_no_create:return 1 <= Version && 2147483647 >= Version;case ACCC_present:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_declare:switch (C) {case ACCC_copy:return 1 <= Version && 2147483647 >= Version;case ACCC_copyin:return 1 <= Version && 2147483647 >= Version;case ACCC_copyout:return 1 <= Version && 2147483647 >= Version;case ACCC_create:return 1 <= Version && 2147483647 >= Version;case ACCC_present:return 1 <= Version && 2147483647 >= Version;case ACCC_deviceptr:return 1 <= Version && 2147483647 >= Version;case ACCC_device_resident:return 1 <= Version && 2147483647 >= Version;case ACCC_link:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_enter_data:switch (C) {case ACCC_wait:return 1 <= Version && 2147483647 >= Version;case ACCC_async:return 1 <= Version && 2147483647 >= Version;case ACCC_if:return 1 <= Version && 2147483647 >= Version;case ACCC_attach:return 1 <= Version && 2147483647 >= Version;case ACCC_create:return 1 <= Version && 2147483647 >= Version;case ACCC_copyin:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_exit_data:switch (C) {case ACCC_wait:return 1 <= Version && 2147483647 >= Version;case ACCC_async:return 1 <= Version && 2147483647 >= Version;case ACCC_if:return 1 <= Version && 2147483647 >= Version;case ACCC_finalize:return 1 <= Version && 2147483647 >= Version;case ACCC_copyout:return 1 <= Version && 2147483647 >= Version;case ACCC_delete:return 1 <= Version && 2147483647 >= Version;case ACCC_detach:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_host_data:switch (C) {case ACCC_if:return 1 <= Version && 2147483647 >= Version;case ACCC_if_present:return 1 <= Version && 2147483647 >= Version;case ACCC_use_device:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_init:switch (C) {case ACCC_device_num:return 1 <= Version && 2147483647 >= Version;case ACCC_device_type:return 1 <= Version && 2147483647 >= Version;case ACCC_if:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_kernels:switch (C) {case ACCC_attach:return 1 <= Version && 2147483647 >= Version;case ACCC_copy:return 1 <= Version && 2147483647 >= Version;case ACCC_copyin:return 1 <= Version && 2147483647 >= Version;case ACCC_copyout:return 1 <= Version && 2147483647 >= Version;case ACCC_create:return 1 <= Version && 2147483647 >= Version;case ACCC_device_type:return 1 <= Version && 2147483647 >= Version;case ACCC_no_create:return 1 <= Version && 2147483647 >= Version;case ACCC_present:return 1 <= Version && 2147483647 >= Version;case ACCC_deviceptr:return 1 <= Version && 2147483647 >= Version;case ACCC_wait:return 1 <= Version && 2147483647 >= Version;case ACCC_async:return 1 <= Version && 2147483647 >= Version;case ACCC_default:return 1 <= Version && 2147483647 >= Version;case ACCC_if:return 1 <= Version && 2147483647 >= Version;case ACCC_num_gangs:return 1 <= Version && 2147483647 >= Version;case ACCC_num_workers:return 1 <= Version && 2147483647 >= Version;case ACCC_self:return 1 <= Version && 2147483647 >= Version;case ACCC_vector_length:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_kernels_loop:switch (C) {case ACCC_copy:return 1 <= Version && 2147483647 >= Version;case ACCC_copyin:return 1 <= Version && 2147483647 >= Version;case ACCC_copyout:return 1 <= Version && 2147483647 >= Version;case ACCC_create:return 1 <= Version && 2147483647 >= Version;case ACCC_device_type:return 1 <= Version && 2147483647 >= Version;case ACCC_no_create:return 1 <= Version && 2147483647 >= Version;case ACCC_present:return 1 <= Version && 2147483647 >= Version;case ACCC_private:return 1 <= Version && 2147483647 >= Version;case ACCC_deviceptr:return 1 <= Version && 2147483647 >= Version;case ACCC_attach:return 1 <= Version && 2147483647 >= Version;case ACCC_wait:return 1 <= Version && 2147483647 >= Version;case ACCC_async:return 1 <= Version && 2147483647 >= Version;case ACCC_collapse:return 1 <= Version && 2147483647 >= Version;case ACCC_default:return 1 <= Version && 2147483647 >= Version;case ACCC_gang:return 1 <= Version && 2147483647 >= Version;case ACCC_if:return 1 <= Version && 2147483647 >= Version;case ACCC_num_gangs:return 1 <= Version && 2147483647 >= Version;case ACCC_num_workers:return 1 <= Version && 2147483647 >= Version;case ACCC_reduction:return 1 <= Version && 2147483647 >= Version;case ACCC_self:return 1 <= Version && 2147483647 >= Version;case ACCC_tile:return 1 <= Version && 2147483647 >= Version;case ACCC_vector:return 1 <= Version && 2147483647 >= Version;case ACCC_vector_length:return 1 <= Version && 2147483647 >= Version;case ACCC_worker:return 1 <= Version && 2147483647 >= Version;case ACCC_auto:return 1 <= Version && 2147483647 >= Version;case ACCC_independent:return 1 <= Version && 2147483647 >= Version;case ACCC_seq:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_loop:switch (C) {case ACCC_device_type:return 1 <= Version && 2147483647 >= Version;case ACCC_private:return 1 <= Version && 2147483647 >= Version;case ACCC_collapse:return 1 <= Version && 2147483647 >= Version;case ACCC_gang:return 1 <= Version && 2147483647 >= Version;case ACCC_reduction:return 1 <= Version && 2147483647 >= Version;case ACCC_tile:return 1 <= Version && 2147483647 >= Version;case ACCC_vector:return 1 <= Version && 2147483647 >= Version;case ACCC_worker:return 1 <= Version && 2147483647 >= Version;case ACCC_auto:return 1 <= Version && 2147483647 >= Version;case ACCC_independent:return 1 <= Version && 2147483647 >= Version;case ACCC_seq:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_parallel:switch (C) {case ACCC_attach:return 1 <= Version && 2147483647 >= Version;case ACCC_copy:return 1 <= Version && 2147483647 >= Version;case ACCC_copyin:return 1 <= Version && 2147483647 >= Version;case ACCC_copyout:return 1 <= Version && 2147483647 >= Version;case ACCC_create:return 1 <= Version && 2147483647 >= Version;case ACCC_deviceptr:return 1 <= Version && 2147483647 >= Version;case ACCC_device_type:return 1 <= Version && 2147483647 >= Version;case ACCC_no_create:return 1 <= Version && 2147483647 >= Version;case ACCC_present:return 1 <= Version && 2147483647 >= Version;case ACCC_private:return 1 <= Version && 2147483647 >= Version;case ACCC_firstprivate:return 1 <= Version && 2147483647 >= Version;case ACCC_wait:return 1 <= Version && 2147483647 >= Version;case ACCC_async:return 1 <= Version && 2147483647 >= Version;case ACCC_default:return 1 <= Version && 2147483647 >= Version;case ACCC_if:return 1 <= Version && 2147483647 >= Version;case ACCC_num_gangs:return 1 <= Version && 2147483647 >= Version;case ACCC_num_workers:return 1 <= Version && 2147483647 >= Version;case ACCC_reduction:return 1 <= Version && 2147483647 >= Version;case ACCC_self:return 1 <= Version && 2147483647 >= Version;case ACCC_vector_length:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_parallel_loop:switch (C) {case ACCC_attach:return 1 <= Version && 2147483647 >= Version;case ACCC_copy:return 1 <= Version && 2147483647 >= Version;case ACCC_copyin:return 1 <= Version && 2147483647 >= Version;case ACCC_copyout:return 1 <= Version && 2147483647 >= Version;case ACCC_create:return 1 <= Version && 2147483647 >= Version;case ACCC_deviceptr:return 1 <= Version && 2147483647 >= Version;case ACCC_device_type:return 1 <= Version && 2147483647 >= Version;case ACCC_firstprivate:return 1 <= Version && 2147483647 >= Version;case ACCC_no_create:return 1 <= Version && 2147483647 >= Version;case ACCC_present:return 1 <= Version && 2147483647 >= Version;case ACCC_private:return 1 <= Version && 2147483647 >= Version;case ACCC_tile:return 1 <= Version && 2147483647 >= Version;case ACCC_wait:return 1 <= Version && 2147483647 >= Version;case ACCC_async:return 1 <= Version && 2147483647 >= Version;case ACCC_collapse:return 1 <= Version && 2147483647 >= Version;case ACCC_default:return 1 <= Version && 2147483647 >= Version;case ACCC_gang:return 1 <= Version && 2147483647 >= Version;case ACCC_if:return 1 <= Version && 2147483647 >= Version;case ACCC_num_gangs:return 1 <= Version && 2147483647 >= Version;case ACCC_num_workers:return 1 <= Version && 2147483647 >= Version;case ACCC_reduction:return 1 <= Version && 2147483647 >= Version;case ACCC_self:return 1 <= Version && 2147483647 >= Version;case ACCC_vector:return 1 <= Version && 2147483647 >= Version;case ACCC_vector_length:return 1 <= Version && 2147483647 >= Version;case ACCC_worker:return 1 <= Version && 2147483647 >= Version;case ACCC_auto:return 1 <= Version && 2147483647 >= Version;case ACCC_independent:return 1 <= Version && 2147483647 >= Version;case ACCC_seq:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_routine:switch (C) {case ACCC_bind:return 1 <= Version && 2147483647 >= Version;case ACCC_device_type:return 1 <= Version && 2147483647 >= Version;case ACCC_nohost:return 1 <= Version && 2147483647 >= Version;case ACCC_gang:return 1 <= Version && 2147483647 >= Version;case ACCC_seq:return 1 <= Version && 2147483647 >= Version;case ACCC_vector:return 1 <= Version && 2147483647 >= Version;case ACCC_worker:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_serial:switch (C) {case ACCC_attach:return 1 <= Version && 2147483647 >= Version;case ACCC_copy:return 1 <= Version && 2147483647 >= Version;case ACCC_copyin:return 1 <= Version && 2147483647 >= Version;case ACCC_copyout:return 1 <= Version && 2147483647 >= Version;case ACCC_create:return 1 <= Version && 2147483647 >= Version;case ACCC_deviceptr:return 1 <= Version && 2147483647 >= Version;case ACCC_device_type:return 1 <= Version && 2147483647 >= Version;case ACCC_no_create:return 1 <= Version && 2147483647 >= Version;case ACCC_present:return 1 <= Version && 2147483647 >= Version;case ACCC_private:return 1 <= Version && 2147483647 >= Version;case ACCC_firstprivate:return 1 <= Version && 2147483647 >= Version;case ACCC_wait:return 1 <= Version && 2147483647 >= Version;case ACCC_async:return 1 <= Version && 2147483647 >= Version;case ACCC_default:return 1 <= Version && 2147483647 >= Version;case ACCC_if:return 1 <= Version && 2147483647 >= Version;case ACCC_reduction:return 1 <= Version && 2147483647 >= Version;case ACCC_self:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_serial_loop:switch (C) {case ACCC_attach:return 1 <= Version && 2147483647 >= Version;case ACCC_copy:return 1 <= Version && 2147483647 >= Version;case ACCC_copyin:return 1 <= Version && 2147483647 >= Version;case ACCC_copyout:return 1 <= Version && 2147483647 >= Version;case ACCC_create:return 1 <= Version && 2147483647 >= Version;case ACCC_deviceptr:return 1 <= Version && 2147483647 >= Version;case ACCC_device_type:return 1 <= Version && 2147483647 >= Version;case ACCC_firstprivate:return 1 <= Version && 2147483647 >= Version;case ACCC_no_create:return 1 <= Version && 2147483647 >= Version;case ACCC_present:return 1 <= Version && 2147483647 >= Version;case ACCC_private:return 1 <= Version && 2147483647 >= Version;case ACCC_wait:return 1 <= Version && 2147483647 >= Version;case ACCC_async:return 1 <= Version && 2147483647 >= Version;case ACCC_collapse:return 1 <= Version && 2147483647 >= Version;case ACCC_default:return 1 <= Version && 2147483647 >= Version;case ACCC_gang:return 1 <= Version && 2147483647 >= Version;case ACCC_if:return 1 <= Version && 2147483647 >= Version;case ACCC_reduction:return 1 <= Version && 2147483647 >= Version;case ACCC_self:return 1 <= Version && 2147483647 >= Version;case ACCC_tile:return 1 <= Version && 2147483647 >= Version;case ACCC_vector:return 1 <= Version && 2147483647 >= Version;case ACCC_worker:return 1 <= Version && 2147483647 >= Version;case ACCC_auto:return 1 <= Version && 2147483647 >= Version;case ACCC_independent:return 1 <= Version && 2147483647 >= Version;case ACCC_seq:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_set:switch (C) {case ACCC_default_async:return 1 <= Version && 2147483647 >= Version;case ACCC_device_num:return 1 <= Version && 2147483647 >= Version;case ACCC_device_type:return 1 <= Version && 2147483647 >= Version;case ACCC_if:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_shutdown:switch (C) {case ACCC_device_num:return 1 <= Version && 2147483647 >= Version;case ACCC_device_type:return 1 <= Version && 2147483647 >= Version;case ACCC_if:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_unknown:return false;break;case ACCD_update:switch (C) {case ACCC_device_type:return 1 <= Version && 2147483647 >= Version;case ACCC_wait:return 1 <= Version && 2147483647 >= Version;case ACCC_async:return 1 <= Version && 2147483647 >= Version;case ACCC_if:return 1 <= Version && 2147483647 >= Version;case ACCC_if_present:return 1 <= Version && 2147483647 >= Version;case ACCC_device:return 1 <= Version && 2147483647 >= Version;case ACCC_host:return 1 <= Version && 2147483647 >= Version;case ACCC_self:return 1 <= Version && 2147483647 >= Version;default:return false;}break;case ACCD_wait:switch (C) {case ACCC_async:return 1 <= Version && 2147483647 >= Version;case ACCC_if:return 1 <= Version && 2147483647 >= Version;default:return false;}break;}llvm_unreachable("Invalid OpenACC Directive kind");}#endif // GEN_DIRECTIVES_IMPL