- //===- 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 
-