FLANG
FIROpenACCSupportAnalysis.h
1//===- FIROpenACCSupportAnalysis.h - FIR OpenACCSupport Analysis ----------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file defines the FIR-specific implementation of OpenACCSupport analysis.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef FORTRAN_OPTIMIZER_OPENACC_ANALYSIS_FIROPENACCSUPPORTANALYSIS_H
14#define FORTRAN_OPTIMIZER_OPENACC_ANALYSIS_FIROPENACCSUPPORTANALYSIS_H
15
16#include "mlir/Dialect/OpenACC/OpenACC.h"
17#include "mlir/IR/Region.h"
18#include "mlir/IR/Value.h"
19#include <string>
20
21namespace fir {
22namespace acc {
23
36class FIROpenACCSupportAnalysis {
37public:
38 FIROpenACCSupportAnalysis() = default;
39
40 std::string getVariableName(mlir::Value v);
41
42 std::string getRecipeName(mlir::acc::RecipeKind kind, mlir::Type type,
43 mlir::Value var);
44
45 mlir::InFlightDiagnostic emitNYI(mlir::Location loc,
46 const mlir::Twine &message);
47
48 bool isValidValueUse(mlir::Value v, mlir::Region &region);
49};
50
51} // namespace acc
52} // namespace fir
53
54#endif // FORTRAN_OPTIMIZER_OPENACC_ANALYSIS_FIROPENACCSUPPORTANALYSIS_H
Definition AbstractConverter.h:37