123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #pragma once
- #ifdef __GNUC__
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wunused-parameter"
- #endif
- //===- OpenMP/OMPAssume.h --- OpenMP assumption helper functions - C++ -*-===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- /// \file
- ///
- /// This file provides helper functions and classes to deal with OpenMP
- /// assumptions, e.g., as used by `[begin/end] assumes` and `assume`.
- ///
- //===----------------------------------------------------------------------===//
- #ifndef LLVM_FRONTEND_OPENMP_OMPASSUME_H
- #define LLVM_FRONTEND_OPENMP_OMPASSUME_H
- #include "llvm/ADT/StringRef.h"
- namespace llvm {
- namespace omp {
- /// Helper to describe assume clauses.
- struct AssumptionClauseMappingInfo {
- /// The identifier describing the (beginning of the) clause.
- llvm::StringLiteral Identifier;
- /// Flag to determine if the identifier is a full name or the start of a name.
- bool StartsWith;
- /// Flag to determine if a directive lists follows.
- bool HasDirectiveList;
- /// Flag to determine if an expression follows.
- bool HasExpression;
- };
- /// All known assume clauses.
- static constexpr AssumptionClauseMappingInfo AssumptionClauseMappings[] = {
- #define OMP_ASSUME_CLAUSE(Identifier, StartsWith, HasDirectiveList, \
- HasExpression) \
- {Identifier, StartsWith, HasDirectiveList, HasExpression},
- #include "llvm/Frontend/OpenMP/OMPKinds.def"
- };
- inline std::string getAllAssumeClauseOptions() {
- std::string S;
- for (const AssumptionClauseMappingInfo &ACMI : AssumptionClauseMappings)
- S += (S.empty() ? "'" : "', '") + ACMI.Identifier.str();
- return S + "'";
- }
- } // namespace omp
- } // namespace llvm
- #endif // LLVM_FRONTEND_OPENMP_OMPASSUME_H
- #ifdef __GNUC__
- #pragma GCC diagnostic pop
- #endif
|