LLVM: include/llvm/Frontend/OpenMP/ClauseT.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41#ifndef LLVM_FRONTEND_OPENMP_CLAUSET_H

42#define LLVM_FRONTEND_OPENMP_CLAUSET_H

43

52

53#include

54#include

55#include

56#include <type_traits>

57#include

58#include

59

60#define ENUM(Name, ...) enum class Name { __VA_ARGS__ }

61#define OPT(x) std::optional

62

63

64

65

66

67

68

69

70

71

72

73

74

75#define CLAUSET_SCOPED_ENUM_MEMBER_CONVERT(Ov, Tv) \

76 if (v == OtherEnum::Ov) { \

77 return ThisEnum::Tv; \

78 }

79

80

81#define CLAUSET_UNSCOPED_ENUM_MEMBER_CONVERT(Ov, Tv) \

82 if (v == Ov) { \

83 return ThisEnum::Tv; \

84 }

85

86#define CLAUSET_ENUM_CONVERT(func, OtherE, ThisE, Maps) \

87 auto func = [](OtherE v) -> ThisE { \

88 using ThisEnum = ThisE; \

89 using OtherEnum = OtherE; \

90 (void)sizeof(OtherEnum); \

91 Maps; \

92 llvm_unreachable("Unexpected value in " #OtherE); \

93 }

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

112

114 static constexpr bool value = false;

115};

116

120

122

123

125

126template <typename... Types1, typename... Types2>

127struct UnionOfTwo<std::variant<Types1...>, std::variant<Types2...>> {

128 using type = std::variant<Types1..., Types2...>;

129};

130}

131

134

135

136

137template <typename...> struct Union;

138

140

141 using type = std::variant<>;

142};

143

144template <typename T, typename... Ts> struct Union<T, Ts...> {

148};

149

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180template <typename IdType, typename ExprType> struct ObjectT;

181

182

183template <typename I, typename E>

185 return o1.id() == o2.id();

186}

187

189

191

192template <typename I, typename E>

198 ENUM(IntrinsicOperator, Power, Multiply, Divide, Add, Subtract, Concat, LT,

199 LE, EQ, NE, GE, GT, NOT, AND, OR, EQV, NEQV, Min, Max);

201 std::variant<DefinedOpName, IntrinsicOperator> u;

202};

203

204

205template

211

212

213template <typename TypeType, typename IdType, typename ExprType>

219

220

221

222

223

224

225

226

227

228

229template <typename I, typename E>

235

236

237

238ENUM(MemoryOrder, AcqRel, Acquire, Relaxed, Release, SeqCst);

239ENUM(MotionExpectation, Present);

240

241

242ENUM(DependenceType, Depobj, In, Inout, Inoutset, Mutexinoutset, Out, Sink,

243 Source);

244ENUM(Prescriptiveness, Strict);

245

246template <typename I, typename E>

250 std::tuple<DefinedOperatorT<I, E>, E> t;

251 };

254};

255

256template <typename I, typename E>

261

262

263

264

265

266

267

268

269template <typename I, typename E>

274

275template <typename T, typename I, typename E>

277

278template

279std::enable_if_t<T::EmptyTrait::value, bool> operator==(const T &a,

280 const T &b) {

281 return true;

282}

283template

284std::enable_if_t<T::IncompleteTrait::value, bool> operator==(const T &a,

285 const T &b) {

286 return true;

287}

288template

289std::enable_if_t<T::WrapperTrait::value, bool> operator==(const T &a,

290 const T &b) {

291 return a.v == b.v;

292}

293template

294std::enable_if_t<T::TupleTrait::value, bool> operator==(const T &a,

295 const T &b) {

296 return a.t == b.t;

297}

298template

299std::enable_if_t<T::UnionTrait::value, bool> operator==(const T &a,

300 const T &b) {

301 return a.u == b.u;

302}

303}

304

306

309

310template <typename T, typename I, typename E>

312

313template <

314 typename ContainerTy, typename FunctionTy,

316 typename ResultTy = std::invoke_result_t<FunctionTy, ElemTy>>

322

324using type::operator==;

325

326

327template <typename T, typename I, typename E>

333

334

335template <typename T, typename I, typename E>

339

340

341template <typename T, typename I, typename E>

345

346

347template <typename T, typename I, typename E>

351

352

353template <typename T, typename I, typename E>

361

362

363template <typename T, typename I, typename E>

370

371

372template <typename T, typename I, typename E>

380

381template <typename T, typename I, typename E>

383

384

385template <typename T, typename I, typename E>

395

396

397template <typename T, typename I, typename E>

403

404

405template <typename T, typename I, typename E>

409

410

411template <typename T, typename I, typename E>

413 ENUM(ActionTime, Compilation, Execution);

415 ActionTime v;

416};

417

418

419template <typename T, typename I, typename E>

425

426

427template <typename T, typename I, typename E>

433

434

435template <typename T, typename I, typename E>

439

440

441template <typename T, typename I, typename E>

447

448

449template <typename T, typename I, typename E>

453

454template <typename T, typename I, typename E>

458

459

460template <typename T, typename I, typename E>

466

467

468template <typename T, typename I, typename E>

474

475

476template <typename T, typename I, typename E>

482

483

484template <typename T, typename I, typename E>

486 ENUM(DataSharingAttribute, Firstprivate, None, Private, Shared);

488 DataSharingAttribute v;

489};

490

491

492template <typename T, typename I, typename E>

495 Present);

496 ENUM(VariableCategory, All, Scalar, Aggregate, Pointer, Allocatable);

498 std::tuple<ImplicitBehavior, OPT(VariableCategory)> t;

499};

500

501template <typename T, typename I, typename E>

503

504

505template <typename T, typename I, typename E>

510

516

519 std::variant<Doacross, TaskDep> u;

520};

521

522

523template <typename T, typename I, typename E>

530

531

532template <typename T, typename I, typename E>

538

539

540template <typename T, typename I, typename E>

543 ENUM(DeviceModifier, Ancestor, DeviceNum);

546};

547

548

549template <typename T, typename I, typename E>

555

556

557template <typename T, typename I, typename E>

559 ENUM(DeviceTypeDescription, Any, Host, Nohost);

561 DeviceTypeDescription v;

562};

563

564

565template <typename T, typename I, typename E>

572

573

574template <typename T, typename I, typename E>

579

580 std::tuple<DependenceType, Vector> t;

581};

582

583

584template <typename T, typename I, typename E>

590

591template <typename T, typename I, typename E>

593 ENUM(AccessGroup, Cgroup);

598};

599

600

601template <typename T, typename I, typename E>

608

609

610template <typename T, typename I, typename E>

616

617

618template <typename T, typename I, typename E>

624

625

626template <typename T, typename I, typename E>

632

633

634template <typename T, typename I, typename E>

640

641

642template <typename T, typename I, typename E>

648

649

650template <typename T, typename I, typename E>

661

662

663template <typename T, typename I, typename E>

667

668

669template <typename T, typename I, typename E>

676

677

678template <typename T, typename I, typename E>

682

683

684template <typename T, typename I, typename E>

688

689

690template <typename T, typename I, typename E>

696

697

698template <typename T, typename I, typename E>

704

705

706template <typename T, typename I, typename E>

711

712

713template <typename T, typename I, typename E>

720

721

722template <typename T, typename I, typename E>

726

727

728template <typename T, typename I, typename E>

734

735

736template <typename T, typename I, typename E>

742

743

744template <typename T, typename I, typename E>

748

749

750template <typename T, typename I, typename E>

755 ENUM(InteropType, Target, Targetsync);

757

760};

761

762

763template <typename T, typename I, typename E>

769

770

771template <typename T, typename I, typename E>

774

775

778 std::tuple<ReductionIdentifiers, List> t;

779};

780

781

782template <typename T, typename I, typename E>

788

789

790template <typename T, typename I, typename E>

793 ENUM(LastprivateModifier, Conditional);

795 std::tuple<OPT(LastprivateModifier), List> t;

796};

797

798

799template <typename T, typename I, typename E>

801

803

805 ENUM(LinearModifier, Ref, Val, Uval);

806

808

810};

811

812

813template <typename T, typename I, typename E>

819

820

821template <typename T, typename I, typename E>

824 ENUM(MapType, To, From, Tofrom, Storage);

826 ENUM(MapTypeModifier, Always, Close, Delete, Present, Self, OmpxHold);

827 ENUM(RefModifier, RefPtee, RefPtr, RefPtrPtee);

828

832

837};

838

839

840template <typename T, typename I, typename E>

844

845

846template <typename T, typename I, typename E>

850

851

852template <typename T, typename I, typename E>

858

859

860template <typename T, typename I, typename E>

866

867

868template <typename T, typename I, typename E>

872

873

874template <typename T, typename I, typename E>

880

881

882template <typename T, typename I, typename E>

886

887

888template <typename T, typename I, typename E>

892

893

894template <typename T, typename I, typename E>

898

899

900template <typename T, typename I, typename E>

904

905

906template <typename T, typename I, typename E>

910

911

912template <typename T, typename I, typename E>

918

919

920template <typename T, typename I, typename E>

924

925

926template <typename T, typename I, typename E>

933

934

935template <typename T, typename I, typename E>

939

940

945

946

947

951};

952

953

954template <typename T, typename I, typename E>

960

961template <typename T, typename I, typename E>

965

966template <typename T, typename I, typename E>

970

971template <typename T, typename I, typename E>

976

977

978template <typename T, typename I, typename E>

980 ENUM(OrderModifier, Reproducible, Unconstrained);

981 ENUM(Ordering, Concurrent);

983 std::tuple<OPT(OrderModifier), Ordering> t;

984};

985

986

987template <typename T, typename I, typename E>

993

994

995template <typename T, typename I, typename E>

999

1000

1001template <typename T, typename I, typename E>

1007

1008

1009template <typename T, typename I, typename E>

1015

1016

1017template <typename T, typename I, typename E>

1023

1024

1025template <typename T, typename I, typename E>

1031

1032

1033template <typename T, typename I, typename E>

1035 ENUM(AffinityPolicy, Close, Master, Spread, Primary);

1037 AffinityPolicy v;

1038};

1039

1040

1041template <typename T, typename I, typename E>

1045

1046

1047template <typename T, typename I, typename E>

1057

1058

1059template <typename T, typename I, typename E>

1063

1064

1065template <typename T, typename I, typename E>

1069

1070

1071template <typename T, typename I, typename E>

1075

1076

1077template <typename T, typename I, typename E>

1083

1084

1085template <typename T, typename I, typename E>

1091

1092

1093template <typename T, typename I, typename E>

1095 ENUM(Kind, Static, Dynamic, Guided, Auto, Runtime);

1097 ENUM(OrderingModifier, Monotonic, Nonmonotonic);

1101};

1102

1103

1104template <typename T, typename I, typename E>

1110

1111

1112template <typename T, typename I, typename E>

1116

1117

1118template <typename T, typename I, typename E>

1120 ENUM(SevLevel, Fatal, Warning);

1123};

1124

1125

1126template <typename T, typename I, typename E>

1132

1133

1134template <typename T, typename I, typename E>

1138

1139

1140template <typename T, typename I, typename E>

1146

1147

1148template <typename T, typename I, typename E>

1154

1155

1156template <typename T, typename I, typename E>

1159

1160

1163 std::tuple<ReductionIdentifiers, List> t;

1164};

1165

1166

1167template <typename T, typename I, typename E>

1173

1174

1175template <typename T, typename I, typename E>

1179

1180

1181template <typename T, typename I, typename E>

1183 ENUM(ThreadsetPolicy, Omp_Pool, Omp_Team);

1185 ThreadsetPolicy v;

1186};

1187

1188

1189template <typename T, typename I, typename E>

1200

1201

1202template <typename T, typename I, typename E>

1206

1207

1208template <typename T, typename I, typename E>

1214

1215

1216template <typename T, typename I, typename E>

1222

1223

1224template <typename T, typename I, typename E>

1230

1231template <typename T, typename I, typename E>

1235

1236

1237template <typename T, typename I, typename E>

1241

1242

1243

1244

1245template <typename T, typename I, typename E>

1251

1252

1253template <typename T, typename I, typename E>

1259

1260

1261template <typename T, typename I, typename E>

1267

1268

1269template <typename T, typename I, typename E>

1275

1276

1277template <typename T, typename I, typename E>

1290

1291

1292template <typename T, typename I, typename E>

1296

1297

1298template <typename T, typename I, typename E>

1302

1303

1304template <typename T, typename I, typename E>

1308

1309

1310template <typename T, typename I, typename E> struct LooprangeT {

1313

1315 std::tuple<Begin, End> t;

1316};

1317

1318

1319

1320template <typename T, typename I, typename E>

1324

1325template <typename T, typename I, typename E>

1327 AcqRelT<T, I, E>, AcquireT<T, I, E>, CaptureT<T, I, E>, CompareT<T, I, E>,

1328 FullT<T, I, E>, InbranchT<T, I, E>, MergeableT<T, I, E>, NogroupT<T, I, E>,

1331 NowaitT<T, I, E>, ReadT<T, I, E>, RelaxedT<T, I, E>, ReleaseT<T, I, E>,

1332 SeqCstT<T, I, E>, SimdT<T, I, E>, ThreadsT<T, I, E>, UnknownT<T, I, E>,

1333 UntiedT<T, I, E>, UseT<T, I, E>, WeakT<T, I, E>, WriteT<T, I, E>>;

1334

1335template <typename T, typename I, typename E>

1341

1342template <typename T, typename I, typename E>

1352

1353template <typename T, typename I, typename E>

1355

1356template <typename T, typename I, typename E>

1364 FailT<T, I, E>, FilterT<T, I, E>, FinalT<T, I, E>, FirstprivateT<T, I, E>,

1372 SelfMapsT<T, I, E>, SeverityT<T, I, E>, SharedT<T, I, E>, SimdlenT<T, I, E>,

1377

1378template <typename T, typename I, typename E>

1387}

1388

1389using type::operator==;

1390

1391

1392

1393

1394

1395

1396

1397

1398

1399

1400

1401

1402

1403template <typename TypeType, typename IdType, typename ExprType,

1404 typename... Extras>

1409

1410

1411 using BaseT = ClauseT<TypeType, IdType, ExprType, Extras...>;

1412

1415 std::variant<Extras...>>::type;

1416

1417 llvm::omp::Clause id;

1420};

1421

1423 llvm::omp::Directive id = llvm::omp::Directive::OMPD_unknown;

1425};

1426

1427}

1428

1429#undef OPT

1430#undef ENUM

1431

1432#endif

AMDGPU Prepare AGPR Alloc

static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")

#define ENUM(Name,...)

Definition ClauseT.h:60

#define OPT(x)

Definition ClauseT.h:61

DXIL Resource Implicit Binding

This file defines the DenseMap class.

This file defines the DenseSet and SmallDenseSet classes.

This file defines the SmallVector class.

static constexpr int Concat[]

This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.

constexpr bool is_variant_v

Definition ClauseT.h:121

OutputIt transform(R &&Range, OutputIt d_first, UnaryFunction F)

Wrapper function around std::transform to apply a function to a range and store the result elsewhere.

Implement std::hash so that hash_code can be used in STL containers.

typename type::Union< EmptyClausesT< T, I, E >, ExtensionClausesT< T, I, E >, IncompleteClausesT< T, I, E >, TupleClausesT< T, I, E >, UnionClausesT< T, I, E >, WrapperClausesT< T, I, E > >::type UnionOfAllClausesT

Definition ClauseT.h:1379

std::variant< OmpxAttributeT< T, I, E >, OmpxBareT< T, I, E >, OmpxDynCgroupMemT< T, I, E > > ExtensionClausesT

Definition ClauseT.h:1321

std::variant< AdjustArgsT< T, I, E >, AppendArgsT< T, I, E >, CollectorT< T, I, E >, GraphIdT< T, I, E >, GraphResetT< T, I, E >, InductorT< T, I, E >, MatchT< T, I, E >, OtherwiseT< T, I, E >, ReplayableT< T, I, E >, TransparentT< T, I, E >, WhenT< T, I, E > > IncompleteClausesT

Definition ClauseT.h:1336

std::variant< AcqRelT< T, I, E >, AcquireT< T, I, E >, CaptureT< T, I, E >, CompareT< T, I, E >, FullT< T, I, E >, InbranchT< T, I, E >, MergeableT< T, I, E >, NogroupT< T, I, E >, NoOpenmpConstructsT< T, I, E >, NoOpenmpRoutinesT< T, I, E >, NoOpenmpT< T, I, E >, NoParallelismT< T, I, E >, NotinbranchT< T, I, E >, NowaitT< T, I, E >, ReadT< T, I, E >, RelaxedT< T, I, E >, ReleaseT< T, I, E >, SeqCstT< T, I, E >, SimdT< T, I, E >, ThreadsT< T, I, E >, UnknownT< T, I, E >, UntiedT< T, I, E >, UseT< T, I, E >, WeakT< T, I, E >, WriteT< T, I, E > > EmptyClausesT

Definition ClauseT.h:1326

std::variant< DependT< T, I, E > > UnionClausesT

Definition ClauseT.h:1354

std::variant< AbsentT< T, I, E >, AlignT< T, I, E >, AllocatorT< T, I, E >, AtomicDefaultMemOrderT< T, I, E >, AtT< T, I, E >, BindT< T, I, E >, CollapseT< T, I, E >, ContainsT< T, I, E >, CopyinT< T, I, E >, CopyprivateT< T, I, E >, DefaultT< T, I, E >, DestroyT< T, I, E >, DetachT< T, I, E >, DeviceSafesyncT< T, I, E >, DeviceTypeT< T, I, E >, DynamicAllocatorsT< T, I, E >, EnterT< T, I, E >, ExclusiveT< T, I, E >, FailT< T, I, E >, FilterT< T, I, E >, FinalT< T, I, E >, FirstprivateT< T, I, E >, HasDeviceAddrT< T, I, E >, HintT< T, I, E >, HoldsT< T, I, E >, InclusiveT< T, I, E >, IndirectT< T, I, E >, InitializerT< T, I, E >, IsDevicePtrT< T, I, E >, LinkT< T, I, E >, MessageT< T, I, E >, NocontextT< T, I, E >, NontemporalT< T, I, E >, NovariantsT< T, I, E >, NumTeamsT< T, I, E >, NumThreadsT< T, I, E >, OrderedT< T, I, E >, PartialT< T, I, E >, PriorityT< T, I, E >, PrivateT< T, I, E >, ProcBindT< T, I, E >, ReverseOffloadT< T, I, E >, SafelenT< T, I, E >, SelfMapsT< T, I, E >, SeverityT< T, I, E >, SharedT< T, I, E >, SimdlenT< T, I, E >, SizesT< T, I, E >, PermutationT< T, I, E >, ThreadLimitT< T, I, E >, ThreadsetT< T, I, E >, UnifiedAddressT< T, I, E >, UnifiedSharedMemoryT< T, I, E >, UniformT< T, I, E >, UpdateT< T, I, E >, UseDeviceAddrT< T, I, E >, UseDevicePtrT< T, I, E >, UsesAllocatorsT< T, I, E > > WrapperClausesT

Definition ClauseT.h:1357

std::variant< AffinityT< T, I, E >, AlignedT< T, I, E >, AllocateT< T, I, E >, DefaultmapT< T, I, E >, DeviceT< T, I, E >, DistScheduleT< T, I, E >, DoacrossT< T, I, E >, DynGroupprivateT< T, I, E >, FromT< T, I, E >, GrainsizeT< T, I, E >, IfT< T, I, E >, InitT< T, I, E >, InReductionT< T, I, E >, LastprivateT< T, I, E >, LinearT< T, I, E >, LooprangeT< T, I, E >, MapT< T, I, E >, NumTasksT< T, I, E >, OrderT< T, I, E >, ReductionT< T, I, E >, ScheduleT< T, I, E >, TaskReductionT< T, I, E >, ToT< T, I, E > > TupleClausesT

Definition ClauseT.h:1343

llvm::omp::Directive DirectiveName

Definition ClauseT.h:190

ListT< IteratorSpecifierT< T, I, E > > IteratorT

Definition ClauseT.h:276

bool operator==(const ObjectT< I, E > &o1, const ObjectT< I, E > &o2)

Definition ClauseT.h:184

ListT< ObjectT< I, E > > ObjectListT

Definition ClauseT.h:188

llvm::SmallVector< T, 0 > ListT

Definition ClauseT.h:150

type::ObjectListT< I, E > ObjectListT

Definition ClauseT.h:308

type::IteratorT< T, I, E > IteratorT

Definition ClauseT.h:311

type::ListT< T > ListT

Definition ClauseT.h:305

ListT< ResultTy > makeList(ContainerTy &&container, FunctionTy &&func)

Definition ClauseT.h:317

type::ObjectT< I, E > ObjectT

Definition ClauseT.h:307

std::variant< Types1..., Types2... > type

Definition ClauseT.h:128

static constexpr bool value

Definition ClauseT.h:118

static constexpr bool value

Definition ClauseT.h:114

Definition ClauseT.h:1405

IdType IdTy

Definition ClauseT.h:1407

std::true_type UnionTrait

Definition ClauseT.h:1418

typename type::Union< clause::UnionOfAllClausesT< TypeType, IdType, ExprType >, std::variant< Extras... > >::type VariantTy

Definition ClauseT.h:1413

ExprType ExprTy

Definition ClauseT.h:1408

ClauseT< TypeType, IdType, ExprType, Extras... > BaseT

Definition ClauseT.h:1411

VariantTy u

Definition ClauseT.h:1419

llvm::omp::Clause id

Definition ClauseT.h:1417

TypeType TypeTy

Definition ClauseT.h:1406

Definition ClauseT.h:1422

tomp::type::ListT< ClauseType > clauses

Definition ClauseT.h:1424

List v

Definition ClauseT.h:331

std::true_type WrapperTrait

Definition ClauseT.h:330

ListT< type::DirectiveName > List

Definition ClauseT.h:329

std::true_type EmptyTrait

Definition ClauseT.h:337

std::true_type EmptyTrait

Definition ClauseT.h:343

std::true_type IncompleteTrait

Definition ClauseT.h:349

type::IteratorT< T, I, E > Iterator

Definition ClauseT.h:355

std::tuple< OPT(Iterator), LocatorList > t

Definition ClauseT.h:359

std::true_type TupleTrait

Definition ClauseT.h:358

ObjectListT< I, E > LocatorList

Definition ClauseT.h:356

Alignment v

Definition ClauseT.h:368

E Alignment

Definition ClauseT.h:365

std::true_type WrapperTrait

Definition ClauseT.h:367

std::tuple< OPT(Alignment), List > t

Definition ClauseT.h:378

E Alignment

Definition ClauseT.h:374

ObjectListT< I, E > List

Definition ClauseT.h:375

std::true_type TupleTrait

Definition ClauseT.h:377

std::true_type TupleTrait

Definition ClauseT.h:392

ObjectListT< I, E > List

Definition ClauseT.h:390

std::tuple< OPT(AllocatorComplexModifier), OPT(AlignModifier), List > t

Definition ClauseT.h:393

AllocatorT< T, I, E > AllocatorComplexModifier

Definition ClauseT.h:388

AlignT< T, I, E > AlignModifier

Definition ClauseT.h:389

std::true_type WrapperTrait

Definition ClauseT.h:400

Allocator v

Definition ClauseT.h:401

E Allocator

Definition ClauseT.h:399

std::true_type IncompleteTrait

Definition ClauseT.h:407

ActionTime v

Definition ClauseT.h:415

ENUM(ActionTime, Compilation, Execution)

std::true_type WrapperTrait

Definition ClauseT.h:414

std::true_type WrapperTrait

Definition ClauseT.h:422

type::MemoryOrder MemoryOrder

Definition ClauseT.h:421

MemoryOrder v

Definition ClauseT.h:423

Binding v

Definition ClauseT.h:431

ENUM(Binding, Teams, Parallel, Thread)

std::true_type WrapperTrait

Definition ClauseT.h:430

std::true_type EmptyTrait

Definition ClauseT.h:437

E N

Definition ClauseT.h:443

std::true_type WrapperTrait

Definition ClauseT.h:444

N v

Definition ClauseT.h:445

std::true_type IncompleteTrait

Definition ClauseT.h:451

std::true_type EmptyTrait

Definition ClauseT.h:456

List v

Definition ClauseT.h:464

ListT< type::DirectiveName > List

Definition ClauseT.h:462

std::true_type WrapperTrait

Definition ClauseT.h:463

std::true_type WrapperTrait

Definition ClauseT.h:471

List v

Definition ClauseT.h:472

ObjectListT< I, E > List

Definition ClauseT.h:470

ObjectListT< I, E > List

Definition ClauseT.h:478

List v

Definition ClauseT.h:480

std::true_type WrapperTrait

Definition ClauseT.h:479

DataSharingAttribute v

Definition ClauseT.h:488

std::true_type WrapperTrait

Definition ClauseT.h:487

ENUM(DataSharingAttribute, Firstprivate, None, Private, Shared)

ENUM(ImplicitBehavior, Alloc, To, From, Tofrom, Firstprivate, None, Default, Present)

ENUM(VariableCategory, All, Scalar, Aggregate, Pointer, Allocatable)

std::tuple< ImplicitBehavior, OPT(VariableCategory)> t

Definition ClauseT.h:498

std::true_type TupleTrait

Definition ClauseT.h:497

std::true_type TupleTrait

Definition ClauseT.h:512

std::tuple< DependenceType, OPT(Iterator), LocatorList > t

Definition ClauseT.h:514

tomp::type::DependenceType DependenceType

Definition ClauseT.h:509

DoacrossT< T, I, E > Doacross

Definition ClauseT.h:517

std::true_type UnionTrait

Definition ClauseT.h:518

ObjectListT< I, E > LocatorList

Definition ClauseT.h:508

type::IteratorT< T, I, E > Iterator

Definition ClauseT.h:507

std::variant< Doacross, TaskDep > u

Definition ClauseT.h:519

std::true_type WrapperTrait

Definition ClauseT.h:526

ObjectT< I, E > DestroyVar

Definition ClauseT.h:525

ObjectT< I, E > EventHandle

Definition ClauseT.h:534

EventHandle v

Definition ClauseT.h:536

std::true_type WrapperTrait

Definition ClauseT.h:535

E Requires

Definition ClauseT.h:551

std::true_type WrapperTrait

Definition ClauseT.h:552

std::tuple< OPT(DeviceModifier), DeviceDescription > t

Definition ClauseT.h:545

std::true_type TupleTrait

Definition ClauseT.h:544

ENUM(DeviceModifier, Ancestor, DeviceNum)

E DeviceDescription

Definition ClauseT.h:542

DeviceTypeDescription v

Definition ClauseT.h:561

std::true_type WrapperTrait

Definition ClauseT.h:560

ENUM(DeviceTypeDescription, Any, Host, Nohost)

std::tuple< Kind, OPT(ChunkSize)> t

Definition ClauseT.h:570

E ChunkSize

Definition ClauseT.h:568

std::true_type TupleTrait

Definition ClauseT.h:569

std::true_type TupleTrait

Definition ClauseT.h:578

ListT< type::LoopIterationT< I, E > > Vector

Definition ClauseT.h:576

tomp::type::DependenceType DependenceType

Definition ClauseT.h:577

std::tuple< DependenceType, Vector > t

Definition ClauseT.h:580

ENUM(AccessGroup, Cgroup)

ENUM(Fallback, Abort, Default_Mem, Null)

E Size

Definition ClauseT.h:595

std::true_type TupleTrait

Definition ClauseT.h:596

std::tuple< OPT(AccessGroup), OPT(Fallback), Size > t

Definition ClauseT.h:597

E Requires

Definition ClauseT.h:586

std::true_type WrapperTrait

Definition ClauseT.h:587

std::true_type TupleTrait

Definition ClauseT.h:605

std::tuple< OPT(Modifier), List > t

Definition ClauseT.h:606

ObjectListT< I, E > List

Definition ClauseT.h:603

std::true_type WrapperTrait

Definition ClauseT.h:612

ObjectListT< I, E > List

Definition ClauseT.h:613

List v

Definition ClauseT.h:614

MemoryOrder v

Definition ClauseT.h:622

std::true_type WrapperTrait

Definition ClauseT.h:621

type::MemoryOrder MemoryOrder

Definition ClauseT.h:620

std::true_type WrapperTrait

Definition ClauseT.h:629

E ThreadNum

Definition ClauseT.h:628

ThreadNum v

Definition ClauseT.h:630

E Finalize

Definition ClauseT.h:636

Finalize v

Definition ClauseT.h:638

std::true_type WrapperTrait

Definition ClauseT.h:637

std::true_type WrapperTrait

Definition ClauseT.h:645

List v

Definition ClauseT.h:646

ObjectListT< I, E > List

Definition ClauseT.h:644

std::true_type TupleTrait

Definition ClauseT.h:658

type::IteratorT< T, I, E > Iterator

Definition ClauseT.h:654

std::tuple< OPT(Expectation), OPT(Mappers), OPT(Iterator), LocatorList > t

Definition ClauseT.h:659

ListT< type::MapperT< I, E > > Mappers

Definition ClauseT.h:656

type::MotionExpectation Expectation

Definition ClauseT.h:653

ObjectListT< I, E > LocatorList

Definition ClauseT.h:652

std::true_type EmptyTrait

Definition ClauseT.h:665

type::Prescriptiveness Prescriptiveness

Definition ClauseT.h:671

std::true_type TupleTrait

Definition ClauseT.h:673

E GrainSize

Definition ClauseT.h:672

std::tuple< OPT(Prescriptiveness), GrainSize > t

Definition ClauseT.h:674

std::true_type IncompleteTrait

Definition ClauseT.h:680

std::true_type IncompleteTrait

Definition ClauseT.h:686

List v

Definition ClauseT.h:694

ObjectListT< I, E > List

Definition ClauseT.h:692

std::true_type WrapperTrait

Definition ClauseT.h:693

E HintExpr

Definition ClauseT.h:700

HintExpr v

Definition ClauseT.h:702

std::true_type WrapperTrait

Definition ClauseT.h:701

std::true_type WrapperTrait

Definition ClauseT.h:708

E v

Definition ClauseT.h:709

std::tuple< OPT(DirectiveNameModifier), IfExpression > t

Definition ClauseT.h:718

E IfExpression

Definition ClauseT.h:716

std::true_type TupleTrait

Definition ClauseT.h:717

type::DirectiveName DirectiveNameModifier

Definition ClauseT.h:715

std::tuple< ReductionIdentifiers, List > t

Definition ClauseT.h:778

std::true_type TupleTrait

Definition ClauseT.h:777

ObjectListT< I, E > List

Definition ClauseT.h:773

ListT< type::ReductionIdentifierT< I, E > > ReductionIdentifiers

Definition ClauseT.h:776

std::true_type EmptyTrait

Definition ClauseT.h:724

std::true_type WrapperTrait

Definition ClauseT.h:731

List v

Definition ClauseT.h:732

ObjectListT< I, E > List

Definition ClauseT.h:730

E InvokedByFptr

Definition ClauseT.h:738

std::true_type WrapperTrait

Definition ClauseT.h:739

std::true_type IncompleteTrait

Definition ClauseT.h:746

ListT< ForeignRuntimeId > InteropPreference

Definition ClauseT.h:754

E ForeignRuntimeId

Definition ClauseT.h:752

ObjectT< I, E > InteropVar

Definition ClauseT.h:753

ListT< InteropType > InteropTypes

Definition ClauseT.h:756

std::tuple< OPT(InteropPreference), InteropTypes, InteropVar > t

Definition ClauseT.h:759

ENUM(InteropType, Target, Targetsync)

std::true_type TupleTrait

Definition ClauseT.h:758

InitializerExpr v

Definition ClauseT.h:767

std::true_type WrapperTrait

Definition ClauseT.h:766

E InitializerExpr

Definition ClauseT.h:765

List v

Definition ClauseT.h:786

ObjectListT< I, E > List

Definition ClauseT.h:784

std::true_type WrapperTrait

Definition ClauseT.h:785

std::tuple< OPT(LastprivateModifier), List > t

Definition ClauseT.h:795

ENUM(LastprivateModifier, Conditional)

std::true_type TupleTrait

Definition ClauseT.h:794

ObjectListT< I, E > List

Definition ClauseT.h:792

std::true_type TupleTrait

Definition ClauseT.h:807

ObjectListT< I, E > List

Definition ClauseT.h:802

std::tuple< OPT(StepComplexModifier), OPT(LinearModifier), List > t

Definition ClauseT.h:809

ENUM(LinearModifier, Ref, Val, Uval)

E StepComplexModifier

Definition ClauseT.h:804

std::true_type WrapperTrait

Definition ClauseT.h:816

List v

Definition ClauseT.h:817

ObjectListT< I, E > List

Definition ClauseT.h:815

Definition ClauseT.h:1310

std::tuple< Begin, End > t

Definition ClauseT.h:1315

std::true_type TupleTrait

Definition ClauseT.h:1314

E End

Definition ClauseT.h:1312

E Begin

Definition ClauseT.h:1311

ENUM(RefModifier, RefPtee, RefPtr, RefPtrPtee)

ListT< type::MapperT< I, E > > Mappers

Definition ClauseT.h:829

std::tuple< OPT(MapType), OPT(MapTypeModifiers), OPT(AttachModifier), OPT(RefModifier), OPT(Mappers), OPT(Iterator), LocatorList > t

Definition ClauseT.h:836

ObjectListT< I, E > LocatorList

Definition ClauseT.h:823

type::IteratorT< T, I, E > Iterator

Definition ClauseT.h:830

ENUM(MapTypeModifier, Always, Close, Delete, Present, Self, OmpxHold)

ListT< MapTypeModifier > MapTypeModifiers

Definition ClauseT.h:831

ENUM(MapType, To, From, Tofrom, Storage)

ENUM(AttachModifier, Always, Auto, Never)

std::true_type TupleTrait

Definition ClauseT.h:833

std::true_type IncompleteTrait

Definition ClauseT.h:842

std::true_type EmptyTrait

Definition ClauseT.h:848

MsgString v

Definition ClauseT.h:856

E MsgString

Definition ClauseT.h:854

std::true_type WrapperTrait

Definition ClauseT.h:855

std::true_type EmptyTrait

Definition ClauseT.h:896

std::true_type EmptyTrait

Definition ClauseT.h:890

std::true_type EmptyTrait

Definition ClauseT.h:884

std::true_type EmptyTrait

Definition ClauseT.h:902

std::true_type WrapperTrait

Definition ClauseT.h:863

DoNotUpdateContext v

Definition ClauseT.h:864

E DoNotUpdateContext

Definition ClauseT.h:862

std::true_type EmptyTrait

Definition ClauseT.h:870

ObjectListT< I, E > List

Definition ClauseT.h:876

std::true_type WrapperTrait

Definition ClauseT.h:877

List v

Definition ClauseT.h:878

std::true_type EmptyTrait

Definition ClauseT.h:908

E DoNotUseVariant

Definition ClauseT.h:914

std::true_type WrapperTrait

Definition ClauseT.h:915

DoNotUseVariant v

Definition ClauseT.h:916

std::true_type EmptyTrait

Definition ClauseT.h:922

std::tuple< OPT(Prescriptiveness), NumTasks > t

Definition ClauseT.h:931

E NumTasks

Definition ClauseT.h:929

type::Prescriptiveness Prescriptiveness

Definition ClauseT.h:928

std::true_type TupleTrait

Definition ClauseT.h:930

std::true_type TupleTrait

Definition ClauseT.h:942

std::tuple< OPT(LowerBound), UpperBound > t

Definition ClauseT.h:943

std::true_type WrapperTrait

Definition ClauseT.h:949

ListT< Range > List

Definition ClauseT.h:948

E LowerBound

Definition ClauseT.h:937

E UpperBound

Definition ClauseT.h:938

List v

Definition ClauseT.h:950

Nthreads v

Definition ClauseT.h:958

E Nthreads

Definition ClauseT.h:956

std::true_type WrapperTrait

Definition ClauseT.h:957

std::true_type EmptyTrait

Definition ClauseT.h:963

std::true_type EmptyTrait

Definition ClauseT.h:968

E v

Definition ClauseT.h:974

std::true_type WrapperTrait

Definition ClauseT.h:973

std::tuple< OPT(OrderModifier), Ordering > t

Definition ClauseT.h:983

ENUM(OrderModifier, Reproducible, Unconstrained)

std::true_type TupleTrait

Definition ClauseT.h:982

ENUM(Ordering, Concurrent)

std::true_type WrapperTrait

Definition ClauseT.h:990

E N

Definition ClauseT.h:989

std::true_type IncompleteTrait

Definition ClauseT.h:997

Definition ClauseT.h:1002

std::true_type WrapperTrait

Definition ClauseT.h:1004

E UnrollFactor

Definition ClauseT.h:1003

Definition ClauseT.h:1010

ArgList v

Definition ClauseT.h:1013

ListT< E > ArgList

Definition ClauseT.h:1011

std::true_type WrapperTrait

Definition ClauseT.h:1012

Definition ClauseT.h:1018

E PriorityValue

Definition ClauseT.h:1019

std::true_type WrapperTrait

Definition ClauseT.h:1020

PriorityValue v

Definition ClauseT.h:1021

Definition ClauseT.h:1026

List v

Definition ClauseT.h:1029

std::true_type WrapperTrait

Definition ClauseT.h:1028

ObjectListT< I, E > List

Definition ClauseT.h:1027

Definition ClauseT.h:1034

AffinityPolicy v

Definition ClauseT.h:1037

std::true_type WrapperTrait

Definition ClauseT.h:1036

ENUM(AffinityPolicy, Close, Master, Spread, Primary)

Definition ClauseT.h:1042

std::true_type EmptyTrait

Definition ClauseT.h:1043

Definition ClauseT.h:1048

std::true_type TupleTrait

Definition ClauseT.h:1054

std::tuple< OPT(ReductionModifier), ReductionIdentifiers, List > t

Definition ClauseT.h:1055

ENUM(ReductionModifier, Default, Inscan, Task)

ObjectListT< I, E > List

Definition ClauseT.h:1049

ListT< type::ReductionIdentifierT< I, E > > ReductionIdentifiers

Definition ClauseT.h:1052

Definition ClauseT.h:1060

std::true_type EmptyTrait

Definition ClauseT.h:1061

Definition ClauseT.h:1066

std::true_type EmptyTrait

Definition ClauseT.h:1067

Definition ClauseT.h:1072

std::true_type IncompleteTrait

Definition ClauseT.h:1073

Definition ClauseT.h:1078

std::true_type WrapperTrait

Definition ClauseT.h:1080

E Requires

Definition ClauseT.h:1079

Definition ClauseT.h:1086

E Length

Definition ClauseT.h:1087

std::true_type WrapperTrait

Definition ClauseT.h:1088

Length v

Definition ClauseT.h:1089

Definition ClauseT.h:1094

std::true_type TupleTrait

Definition ClauseT.h:1099

E ChunkSize

Definition ClauseT.h:1096

std::tuple< Kind, OPT(OrderingModifier), OPT(ChunkModifier), OPT(ChunkSize)> t

Definition ClauseT.h:1100

ENUM(OrderingModifier, Monotonic, Nonmonotonic)

ENUM(ChunkModifier, Simd)

ENUM(Kind, Static, Dynamic, Guided, Auto, Runtime)

Definition ClauseT.h:1105

E Requires

Definition ClauseT.h:1106

std::true_type WrapperTrait

Definition ClauseT.h:1107

Definition ClauseT.h:1113

std::true_type EmptyTrait

Definition ClauseT.h:1114

Definition ClauseT.h:1119

ENUM(SevLevel, Fatal, Warning)

SevLevel v

Definition ClauseT.h:1122

std::true_type WrapperTrait

Definition ClauseT.h:1121

Definition ClauseT.h:1135

std::true_type EmptyTrait

Definition ClauseT.h:1136

Definition ClauseT.h:1141

std::true_type WrapperTrait

Definition ClauseT.h:1143

Length v

Definition ClauseT.h:1144

E Length

Definition ClauseT.h:1142

Definition ClauseT.h:1149

ListT< E > SizeList

Definition ClauseT.h:1150

std::true_type WrapperTrait

Definition ClauseT.h:1151

SizeList v

Definition ClauseT.h:1152

Definition ClauseT.h:1157

ObjectListT< I, E > List

Definition ClauseT.h:1158

std::true_type TupleTrait

Definition ClauseT.h:1162

ListT< type::ReductionIdentifierT< I, E > > ReductionIdentifiers

Definition ClauseT.h:1161

std::tuple< ReductionIdentifiers, List > t

Definition ClauseT.h:1163

Definition ClauseT.h:1168

Threadlim v

Definition ClauseT.h:1171

E Threadlim

Definition ClauseT.h:1169

std::true_type WrapperTrait

Definition ClauseT.h:1170

Definition ClauseT.h:1176

std::true_type EmptyTrait

Definition ClauseT.h:1177

Definition ClauseT.h:1182

ThreadsetPolicy v

Definition ClauseT.h:1185

std::true_type WrapperTrait

Definition ClauseT.h:1184

ENUM(ThreadsetPolicy, Omp_Pool, Omp_Team)

Definition ClauseT.h:1190

std::true_type TupleTrait

Definition ClauseT.h:1197

type::MotionExpectation Expectation

Definition ClauseT.h:1192

std::tuple< OPT(Expectation), OPT(Mappers), OPT(Iterator), LocatorList > t

Definition ClauseT.h:1198

type::IteratorT< T, I, E > Iterator

Definition ClauseT.h:1195

ObjectListT< I, E > LocatorList

Definition ClauseT.h:1191

ListT< type::MapperT< I, E > > Mappers

Definition ClauseT.h:1194

Definition ClauseT.h:1203

std::true_type IncompleteTrait

Definition ClauseT.h:1204

Definition ClauseT.h:1209

E Requires

Definition ClauseT.h:1210

std::true_type WrapperTrait

Definition ClauseT.h:1211

Definition ClauseT.h:1225

std::true_type WrapperTrait

Definition ClauseT.h:1227

ParameterList v

Definition ClauseT.h:1228

ObjectListT< I, E > ParameterList

Definition ClauseT.h:1226

Definition ClauseT.h:1232

std::true_type EmptyTrait

Definition ClauseT.h:1233

Definition ClauseT.h:1238

std::true_type EmptyTrait

Definition ClauseT.h:1239

Definition ClauseT.h:1246

std::true_type WrapperTrait

Definition ClauseT.h:1248

tomp::type::DependenceType DependenceType

Definition ClauseT.h:1247

Definition ClauseT.h:1262

std::true_type WrapperTrait

Definition ClauseT.h:1264

List v

Definition ClauseT.h:1265

ObjectListT< I, E > List

Definition ClauseT.h:1263

Definition ClauseT.h:1270

ObjectListT< I, E > List

Definition ClauseT.h:1271

List v

Definition ClauseT.h:1273

std::true_type WrapperTrait

Definition ClauseT.h:1272

Definition ClauseT.h:1254

ObjectT< I, E > InteropVar

Definition ClauseT.h:1255

InteropVar v

Definition ClauseT.h:1257

std::true_type WrapperTrait

Definition ClauseT.h:1256

Definition ClauseT.h:1282

std::tuple< OPT(MemSpace), OPT(TraitsArray), Allocator > t

Definition ClauseT.h:1284

std::true_type TupleTrait

Definition ClauseT.h:1283

Definition ClauseT.h:1278

ListT< AllocatorSpec > Allocators

Definition ClauseT.h:1286

std::true_type WrapperTrait

Definition ClauseT.h:1287

E Allocator

Definition ClauseT.h:1281

ObjectT< I, E > TraitsArray

Definition ClauseT.h:1280

Allocators v

Definition ClauseT.h:1288

E MemSpace

Definition ClauseT.h:1279

Definition ClauseT.h:1293

std::true_type EmptyTrait

Definition ClauseT.h:1294

Definition ClauseT.h:1299

std::true_type IncompleteTrait

Definition ClauseT.h:1300

Definition ClauseT.h:1305

std::true_type EmptyTrait

Definition ClauseT.h:1306

std::true_type WrapperTrait

Definition ClauseT.h:195

ObjectT< I, E > v

Definition ClauseT.h:196

std::true_type UnionTrait

Definition ClauseT.h:200

std::variant< DefinedOpName, IntrinsicOperator > u

Definition ClauseT.h:201

ENUM(IntrinsicOperator, Power, Multiply, Divide, Add, Subtract, Concat, LT, LE, EQ, NE, GE, GT, NOT, AND, OR, EQV, NEQV, Min, Max)

std::true_type TupleTrait

Definition ClauseT.h:216

std::tuple< OPT(TypeType), ObjectT< IdType, ExprType >, RangeT< ExprType > > t

Definition ClauseT.h:217

std::tuple< DefinedOperatorT< I, E >, E > t

Definition ClauseT.h:250

std::true_type TupleTrait

Definition ClauseT.h:249

std::tuple< ObjectT< I, E >, OPT(Distance)> t

Definition ClauseT.h:253

std::true_type TupleTrait

Definition ClauseT.h:252

MapperIdentifier v

Definition ClauseT.h:233

ObjectT< I, E > MapperIdentifier

Definition ClauseT.h:231

std::true_type WrapperTrait

Definition ClauseT.h:232

ObjectT< I, E > v

Definition ClauseT.h:259

std::true_type WrapperTrait

Definition ClauseT.h:258

std::true_type TupleTrait

Definition ClauseT.h:208

std::tuple< E, E, OPT(E)> t

Definition ClauseT.h:209

std::true_type UnionTrait

Definition ClauseT.h:271

std::variant< DefinedOperatorT< I, E >, ProcedureDesignatorT< I, E > > u

Definition ClauseT.h:272

typename detail::UnionOfTwo< T, typename Union< Ts... >::type >::type type

Definition ClauseT.h:146

std::variant<> type

Definition ClauseT.h:141