Viewing file: OMPAssume.h (1.83 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
//===- 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
|