#include #include #include #include #include ">

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

#include "[llvm/ADT/ArrayRef.h](ArrayRef%5F8h%5Fsource.html)"
#include "[llvm/ADT/DenseMap.h](DenseMap%5F8h%5Fsource.html)"
#include "[llvm/ADT/DenseSet.h](DenseSet%5F8h%5Fsource.html)"
#include "[llvm/ADT/STLExtras.h](STLExtras%5F8h%5Fsource.html)"
#include "[llvm/ADT/SmallVector.h](SmallVector%5F8h%5Fsource.html)"
#include "[llvm/Frontend/OpenMP/OMP.h](OMP%5F8h%5Fsource.html)"
#include "[llvm/Support/ErrorHandling.h](llvm%5F2Support%5F2ErrorHandling%5F8h%5Fsource.html)"
#include "[llvm/Support/raw_ostream.h](raw%5F%5Fostream%5F8h%5Fsource.html)"
#include <iterator>
#include <optional>
#include <tuple>
#include <type_traits>
#include <utility>
#include <variant>

Go to the source code of this file.

Classes
struct detail::is_variant< T >
struct detail::is_variant< std::variant< Ts... > >
struct detail::UnionOfTwo< std::variant< Types1... >, std::variant< Types2... > >
struct tomp::type::Union<>
struct tomp::type::Union< T, Ts... >
struct tomp::type::DefinedOperatorT< I, E >
struct tomp::type::DefinedOperatorT< I, E >::DefinedOpName
struct tomp::type::RangeT< E >
struct tomp::type::IteratorSpecifierT< TypeType, IdType, ExprType >
struct tomp::type::MapperT< I, E >
struct tomp::type::LoopIterationT< I, E >
struct tomp::type::LoopIterationT< I, E >::Distance
struct tomp::type::ProcedureDesignatorT< I, E >
struct tomp::type::ReductionIdentifierT< I, E >
struct tomp::clause::AbsentT< T, I, E >
struct tomp::clause::AcqRelT< T, I, E >
struct tomp::clause::AcquireT< T, I, E >
struct tomp::clause::AdjustArgsT< T, I, E >
struct tomp::clause::AffinityT< T, I, E >
struct tomp::clause::AlignT< T, I, E >
struct tomp::clause::AlignedT< T, I, E >
struct tomp::clause::AllocateT< T, I, E >
struct tomp::clause::AllocatorT< T, I, E >
struct tomp::clause::AppendArgsT< T, I, E >
struct tomp::clause::AtT< T, I, E >
struct tomp::clause::AtomicDefaultMemOrderT< T, I, E >
struct tomp::clause::BindT< T, I, E >
struct tomp::clause::CaptureT< T, I, E >
struct tomp::clause::CollapseT< T, I, E >
struct tomp::clause::CollectorT< T, I, E >
struct tomp::clause::CompareT< T, I, E >
struct tomp::clause::ContainsT< T, I, E >
struct tomp::clause::CopyinT< T, I, E >
struct tomp::clause::CopyprivateT< T, I, E >
struct tomp::clause::DefaultT< T, I, E >
struct tomp::clause::DefaultmapT< T, I, E >
struct tomp::clause::DependT< T, I, E >
struct tomp::clause::DependT< T, I, E >::TaskDep
struct tomp::clause::DestroyT< T, I, E >
struct tomp::clause::DetachT< T, I, E >
struct tomp::clause::DeviceT< T, I, E >
struct tomp::clause::DeviceSafesyncT< T, I, E >
struct tomp::clause::DeviceTypeT< T, I, E >
struct tomp::clause::DistScheduleT< T, I, E >
struct tomp::clause::DoacrossT< T, I, E >
struct tomp::clause::DynamicAllocatorsT< T, I, E >
struct tomp::clause::DynGroupprivateT< T, I, E >
struct tomp::clause::EnterT< T, I, E >
struct tomp::clause::ExclusiveT< T, I, E >
struct tomp::clause::FailT< T, I, E >
struct tomp::clause::FilterT< T, I, E >
struct tomp::clause::FinalT< T, I, E >
struct tomp::clause::FirstprivateT< T, I, E >
struct tomp::clause::FromT< T, I, E >
struct tomp::clause::FullT< T, I, E >
struct tomp::clause::GrainsizeT< T, I, E >
struct tomp::clause::GraphIdT< T, I, E >
struct tomp::clause::GraphResetT< T, I, E >
struct tomp::clause::HasDeviceAddrT< T, I, E >
struct tomp::clause::HintT< T, I, E >
struct tomp::clause::HoldsT< T, I, E >
struct tomp::clause::IfT< T, I, E >
struct tomp::clause::InbranchT< T, I, E >
struct tomp::clause::InclusiveT< T, I, E >
struct tomp::clause::IndirectT< T, I, E >
struct tomp::clause::InductorT< T, I, E >
struct tomp::clause::InitT< T, I, E >
struct tomp::clause::InitializerT< T, I, E >
struct tomp::clause::InReductionT< T, I, E >
struct tomp::clause::IsDevicePtrT< T, I, E >
struct tomp::clause::LastprivateT< T, I, E >
struct tomp::clause::LinearT< T, I, E >
struct tomp::clause::LinkT< T, I, E >
struct tomp::clause::MapT< T, I, E >
struct tomp::clause::MatchT< T, I, E >
struct tomp::clause::MergeableT< T, I, E >
struct tomp::clause::MessageT< T, I, E >
struct tomp::clause::NocontextT< T, I, E >
struct tomp::clause::NogroupT< T, I, E >
struct tomp::clause::NontemporalT< T, I, E >
struct tomp::clause::NoOpenmpT< T, I, E >
struct tomp::clause::NoOpenmpRoutinesT< T, I, E >
struct tomp::clause::NoOpenmpConstructsT< T, I, E >
struct tomp::clause::NoParallelismT< T, I, E >
struct tomp::clause::NotinbranchT< T, I, E >
struct tomp::clause::NovariantsT< T, I, E >
struct tomp::clause::NowaitT< T, I, E >
struct tomp::clause::NumTasksT< T, I, E >
struct tomp::clause::NumTeamsT< T, I, E >
struct tomp::clause::NumTeamsT< T, I, E >::Range
struct tomp::clause::NumThreadsT< T, I, E >
struct tomp::clause::OmpxAttributeT< T, I, E >
struct tomp::clause::OmpxBareT< T, I, E >
struct tomp::clause::OmpxDynCgroupMemT< T, I, E >
struct tomp::clause::OrderT< T, I, E >
struct tomp::clause::OrderedT< T, I, E >
struct tomp::clause::OtherwiseT< T, I, E >
struct tomp::clause::PartialT< T, I, E >
struct tomp::clause::PermutationT< T, I, E >
struct tomp::clause::PriorityT< T, I, E >
struct tomp::clause::PrivateT< T, I, E >
struct tomp::clause::ProcBindT< T, I, E >
struct tomp::clause::ReadT< T, I, E >
struct tomp::clause::ReductionT< T, I, E >
struct tomp::clause::RelaxedT< T, I, E >
struct tomp::clause::ReleaseT< T, I, E >
struct tomp::clause::ReplayableT< T, I, E >
struct tomp::clause::ReverseOffloadT< T, I, E >
struct tomp::clause::SafelenT< T, I, E >
struct tomp::clause::ScheduleT< T, I, E >
struct tomp::clause::SelfMapsT< T, I, E >
struct tomp::clause::SeqCstT< T, I, E >
struct tomp::clause::SeverityT< T, I, E >
struct tomp::clause::SharedT< T, I, E >
struct tomp::clause::SimdT< T, I, E >
struct tomp::clause::SimdlenT< T, I, E >
struct tomp::clause::SizesT< T, I, E >
struct tomp::clause::TaskReductionT< T, I, E >
struct tomp::clause::ThreadLimitT< T, I, E >
struct tomp::clause::ThreadsT< T, I, E >
struct tomp::clause::ThreadsetT< T, I, E >
struct tomp::clause::ToT< T, I, E >
struct tomp::clause::TransparentT< T, I, E >
struct tomp::clause::UnifiedAddressT< T, I, E >
struct tomp::clause::UnifiedSharedMemoryT< T, I, E >
struct tomp::clause::UniformT< T, I, E >
struct tomp::clause::UnknownT< T, I, E >
struct tomp::clause::UntiedT< T, I, E >
struct tomp::clause::UpdateT< T, I, E >
struct tomp::clause::UseT< T, I, E >
struct tomp::clause::UseDeviceAddrT< T, I, E >
struct tomp::clause::UseDevicePtrT< T, I, E >
struct tomp::clause::UsesAllocatorsT< T, I, E >
struct tomp::clause::UsesAllocatorsT< T, I, E >::AllocatorSpec
struct tomp::clause::WeakT< T, I, E >
struct tomp::clause::WhenT< T, I, E >
struct tomp::clause::WriteT< T, I, E >
struct tomp::clause::LooprangeT< T, I, E >
struct tomp::ClauseT< TypeType, IdType, ExprType, Extras >
struct tomp::DirectiveWithClauses< ClauseType >
Macros
#define ENUM(Name, ...)
#define OPT(x)
#define CLAUSET_SCOPED_ENUM_MEMBER_CONVERT(Ov, Tv)
#define CLAUSET_UNSCOPED_ENUM_MEMBER_CONVERT(Ov, Tv)
#define CLAUSET_ENUM_CONVERT(func, OtherE, ThisE, Maps)
Typedefs
template<typename T>
using tomp::type::ListT = llvm::SmallVector<T, 0>
template<typename I, typename E>
using tomp::type::ObjectListT = ListT<ObjectT<I, E>>
using tomp::type::DirectiveName = llvm::omp::Directive
template<typename T, typename I, typename E>
using tomp::type::IteratorT = ListT<IteratorSpecifierT<T, I, E>>
template<typename T>
using tomp::ListT = type::ListT<T>
template<typename I, typename E>
using tomp::ObjectT = type::ObjectT<I, E>
template<typename I, typename E>
using tomp::ObjectListT = type::ObjectListT<I, E>
template<typename T, typename I, typename E>
using tomp::IteratorT = type::IteratorT<T, I, E>
template<typename T, typename I, typename E>
using tomp::clause::ExtensionClausesT
template<typename T, typename I, typename E>
using tomp::clause::EmptyClausesT
template<typename T, typename I, typename E>
using tomp::clause::IncompleteClausesT
template<typename T, typename I, typename E>
using tomp::clause::TupleClausesT
template<typename T, typename I, typename E>
using tomp::clause::UnionClausesT = std::variant<DependT<T, I, E>>
template<typename T, typename I, typename E>
using tomp::clause::WrapperClausesT
template<typename T, typename I, typename E>
using tomp::clause::UnionOfAllClausesT
Functions
template<typename I, typename E>
bool tomp::type::operator== (const ObjectT< I, E > &o1, const ObjectT< I, E > &o2)
tomp::type::ENUM (MemoryOrder, AcqRel, Acquire, Relaxed, Release, SeqCst)
tomp::type::ENUM (MotionExpectation, Present)
tomp::type::ENUM (DependenceType, Depobj, In, Inout, Inoutset, Mutexinoutset, Out, Sink, Source)
tomp::type::ENUM (Prescriptiveness, Strict)
template<typename T>
std::enable_if_t< T::EmptyTrait::value, bool > tomp::type::operator== (const T &a, const T &b)
template<typename T>
std::enable_if_t< T::IncompleteTrait::value, bool > tomp::type::operator== (const T &a, const T &b)
template<typename T>
std::enable_if_t< T::WrapperTrait::value, bool > tomp::type::operator== (const T &a, const T &b)
template<typename T>
std::enable_if_t< T::TupleTrait::value, bool > tomp::type::operator== (const T &a, const T &b)
template<typename T>
std::enable_if_t< T::UnionTrait::value, bool > tomp::type::operator== (const T &a, const T &b)
template<typename ContainerTy, typename FunctionTy, typename ElemTy = typename llvm::remove_cvref_t::value_type, typename ResultTy = std::invoke_result_t<FunctionTy, ElemTy>>
ListT< ResultTy > tomp::makeList (ContainerTy &&container, FunctionTy &&func)
template<typename I, typename E>
bool tomp::clause::operator== (const ObjectT< I, E > &o1, const ObjectT< I, E > &o2)
template<typename I, typename E>
bool tomp::operator== (const ObjectT< I, E > &o1, const ObjectT< I, E > &o2)

CLAUSET_ENUM_CONVERT

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

Value:

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

using ThisEnum = ThisE; \

using OtherEnum = OtherE; \

(void)sizeof(OtherEnum); \

Maps; \

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

}

Definition at line 86 of file ClauseT.h.

CLAUSET_SCOPED_ENUM_MEMBER_CONVERT

#define CLAUSET_SCOPED_ENUM_MEMBER_CONVERT ( Ov,
Tv )

Value:

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

return ThisEnum::Tv; \

}

Definition at line 75 of file ClauseT.h.

CLAUSET_UNSCOPED_ENUM_MEMBER_CONVERT

#define CLAUSET_UNSCOPED_ENUM_MEMBER_CONVERT ( Ov,
Tv )

Value:

if (v == Ov) { \

return ThisEnum::Tv; \

}

Definition at line 81 of file ClauseT.h.

ENUM

#define ENUM ( Name,
... )

OPT