diff options
Diffstat (limited to 'flang/lib/Semantics/openmp-utils.h')
-rw-r--r-- | flang/lib/Semantics/openmp-utils.h | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/flang/lib/Semantics/openmp-utils.h b/flang/lib/Semantics/openmp-utils.h deleted file mode 100644 index b8ad9ed..0000000 --- a/flang/lib/Semantics/openmp-utils.h +++ /dev/null @@ -1,81 +0,0 @@ -//===-- lib/Semantics/openmp-utils.h --------------------------------------===// -// -// 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 -// -//===----------------------------------------------------------------------===// -// -// Common utilities used in OpenMP semantic checks. -// -//===----------------------------------------------------------------------===// - -#ifndef FORTRAN_SEMANTICS_OPENMP_UTILS_H -#define FORTRAN_SEMANTICS_OPENMP_UTILS_H - -#include "flang/Evaluate/type.h" -#include "flang/Parser/char-block.h" -#include "flang/Parser/parse-tree.h" -#include "flang/Semantics/tools.h" - -#include "llvm/ADT/ArrayRef.h" - -#include <optional> -#include <string> - -namespace Fortran::semantics { -class SemanticsContext; -class Symbol; - -// Add this namespace to avoid potential conflicts -namespace omp { -// There is no consistent way to get the source of an ActionStmt, but there -// is "source" in Statement<T>. This structure keeps the ActionStmt with the -// extracted source for further use. -struct SourcedActionStmt { - const parser::ActionStmt *stmt{nullptr}; - parser::CharBlock source; - - operator bool() const { return stmt != nullptr; } -}; - -SourcedActionStmt GetActionStmt(const parser::ExecutionPartConstruct *x); -SourcedActionStmt GetActionStmt(const parser::Block &block); - -std::string ThisVersion(unsigned version); -std::string TryVersion(unsigned version); - -const parser::Designator *GetDesignatorFromObj(const parser::OmpObject &object); -const parser::DataRef *GetDataRefFromObj(const parser::OmpObject &object); -const parser::ArrayElement *GetArrayElementFromObj( - const parser::OmpObject &object); -const Symbol *GetObjectSymbol(const parser::OmpObject &object); -const Symbol *GetArgumentSymbol(const parser::OmpArgument &argument); -std::optional<parser::CharBlock> GetObjectSource( - const parser::OmpObject &object); - -bool IsCommonBlock(const Symbol &sym); -bool IsExtendedListItem(const Symbol &sym); -bool IsVariableListItem(const Symbol &sym); -bool IsVarOrFunctionRef(const MaybeExpr &expr); - -bool IsMapEnteringType(parser::OmpMapType::Value type); -bool IsMapExitingType(parser::OmpMapType::Value type); - -std::optional<SomeExpr> GetEvaluateExpr(const parser::Expr &parserExpr); -std::optional<evaluate::DynamicType> GetDynamicType( - const parser::Expr &parserExpr); - -std::optional<bool> IsContiguous( - SemanticsContext &semaCtx, const parser::OmpObject &object); - -std::vector<SomeExpr> GetAllDesignators(const SomeExpr &expr); -const SomeExpr *HasStorageOverlap( - const SomeExpr &base, llvm::ArrayRef<SomeExpr> exprs); -bool IsAssignment(const parser::ActionStmt *x); -bool IsPointerAssignment(const evaluate::Assignment &x); -const parser::Block &GetInnermostExecPart(const parser::Block &block); -} // namespace omp -} // namespace Fortran::semantics - -#endif // FORTRAN_SEMANTICS_OPENMP_UTILS_H |