Lines Matching full:clause
9 // compound construct whose leaf constructs are the given list, and whose clause
51 All, // Clause is preesnt on all leaf constructs that allow it.
52 Some, // Clause is present on some, but not on all constructs.
53 None, // Clause is absent on all constructs.
57 ClauseTy makeClause(llvm::omp::Clause clauseId, S &&specific) { in makeClause()
64 Presence checkPresence(llvm::omp::Clause clauseId);
67 // 1. "if": the "directive-name-modifier" on the merged clause may need
78 // clause id -> set of leaf constructs that contain it
79 std::unordered_map<llvm::omp::Clause, llvm::BitVector> clausePresence;
80 // clause id -> set of instances of that clause
81 std::unordered_map<llvm::omp::Clause, ClauseSet> clauseSets;
115 for (const auto &clause : leaf.clauses) { in ConstructCompositionT() local
117 auto &pset = clausePresence[clause.id]; in ConstructCompositionT()
122 ClauseSet &cset = clauseSets[clause.id]; in ConstructCompositionT()
123 if (!llvm::is_contained(cset, clause)) in ConstructCompositionT()
124 cset.push_back(clause); in ConstructCompositionT()
136 case llvm::omp::Clause::OMPC_if: in ConstructCompositionT()
137 case llvm::omp::Clause::OMPC_reduction: in ConstructCompositionT()
138 case llvm::omp::Clause::OMPC_shared: in ConstructCompositionT()
139 case llvm::omp::Clause::OMPC_private: in ConstructCompositionT()
140 case llvm::omp::Clause::OMPC_firstprivate: in ConstructCompositionT()
141 case llvm::omp::Clause::OMPC_lastprivate: in ConstructCompositionT()
161 auto ConstructCompositionT<C>::checkPresence(llvm::omp::Clause clauseId)
186 using IfTy = tomp::clause::IfT<TypeTy, IdTy, ExprTy>; in mergeIf()
191 Presence presence = checkPresence(llvm::omp::Clause::OMPC_if); in mergeIf()
195 const ClauseTy &some = *clauseSets[llvm::omp::Clause::OMPC_if].begin(); in mergeIf()
201 makeClause(llvm::omp::Clause::OMPC_if, in mergeIf()
208 int Idx = clausePresence[llvm::omp::Clause::OMPC_if].find_first(); in mergeIf()
211 makeClause(llvm::omp::Clause::OMPC_if, in mergeIf()
219 Presence presence = checkPresence(llvm::omp::Clause::OMPC_reduction); in mergeReduction()
223 using ReductionTy = tomp::clause::ReductionT<TypeTy, IdTy, ExprTy>; in mergeReduction()
246 auto getModifier = [](const ClauseTy &clause) { in mergeReduction()
247 const ReductionTy &red = std::get<ReductionTy>(clause.u); in mergeReduction()
251 const ClauseSet &reductions = clauseSets[llvm::omp::Clause::OMPC_reduction]; in mergeReduction()
278 llvm::omp::Clause::OMPC_reduction, in mergeReduction()
311 using SharedTy = tomp::clause::SharedT<TypeTy, IdTy, ExprTy>; in mergeDSA()
312 using PrivateTy = tomp::clause::PrivateT<TypeTy, IdTy, ExprTy>; in mergeDSA()
313 using FirstprivateTy = tomp::clause::FirstprivateT<TypeTy, IdTy, ExprTy>; in mergeDSA()
314 using LastprivateTy = tomp::clause::LastprivateT<TypeTy, IdTy, ExprTy>; in mergeDSA()
317 for (auto &clause : clauseSets[llvm::omp::Clause::OMPC_shared]) { in mergeDSA()
318 for (auto &object : std::get<SharedTy>(clause.u).v) in mergeDSA()
322 for (auto &clause : clauseSets[llvm::omp::Clause::OMPC_private]) { in mergeDSA()
323 for (auto &object : std::get<PrivateTy>(clause.u).v) in mergeDSA()
327 for (auto &clause : clauseSets[llvm::omp::Clause::OMPC_firstprivate]) { in mergeDSA()
328 for (auto &object : std::get<FirstprivateTy>(clause.u).v) in mergeDSA()
332 for (auto &clause : clauseSets[llvm::omp::Clause::OMPC_lastprivate]) { in mergeDSA()
335 const auto &lastp = std::get<LastprivateTy>(clause.u); in mergeDSA()
347 for (auto &clause : clauseSets[llvm::omp::Clause::OMPC_in_reduction]) { in mergeDSA()
348 using InReductionTy = tomp::clause::InReductionT<TypeTy, IdTy, ExprTy>; in mergeDSA()
350 for (auto &object : std::get<ListTy>(std::get<InReductionTy>(clause.u).t)) in mergeDSA()
353 for (auto &clause : clauseSets[llvm::omp::Clause::OMPC_linear]) { in mergeDSA()
354 using LinearTy = tomp::clause::LinearT<TypeTy, IdTy, ExprTy>; in mergeDSA()
356 for (auto &object : std::get<ListTy>(std::get<LinearTy>(clause.u).t)) in mergeDSA()
359 for (auto &clause : clauseSets[llvm::omp::Clause::OMPC_reduction]) { in mergeDSA()
360 using ReductionTy = tomp::clause::ReductionT<TypeTy, IdTy, ExprTy>; in mergeDSA()
362 for (auto &object : std::get<ListTy>(std::get<ReductionTy>(clause.u).t)) in mergeDSA()
365 for (auto &clause : clauseSets[llvm::omp::Clause::OMPC_task_reduction]) { in mergeDSA()
366 using TaskReductionTy = tomp::clause::TaskReductionT<TypeTy, IdTy, ExprTy>; in mergeDSA()
368 for (auto &object : std::get<ListTy>(std::get<TaskReductionTy>(clause.u).t)) in mergeDSA()
389 // Materialize each clause. in mergeDSA()
392 makeClause(llvm::omp::Clause::OMPC_private, in mergeDSA()
397 makeClause(llvm::omp::Clause::OMPC_shared, in mergeDSA()
402 makeClause(llvm::omp::Clause::OMPC_firstprivate, in mergeDSA()
407 makeClause(llvm::omp::Clause::OMPC_lastprivate, in mergeDSA()
414 makeClause(llvm::omp::Clause::OMPC_lastprivate, in mergeDSA()