8#ifndef FORTRAN_LOWER_OPENMP_DECOMPOSER_H
9#define FORTRAN_LOWER_OPENMP_DECOMPOSER_H
11#include "flang/Lower/OpenMP/Clauses.h"
12#include "mlir/IR/BuiltinOps.h"
13#include "llvm/Frontend/OpenMP/OMP.h"
14#include "llvm/Support/Compiler.h"
29namespace Fortran::lower::omp {
30using UnitConstruct = tomp::DirectiveWithClauses<lower::omp::Clause>;
31using ConstructQueue = List<UnitConstruct>;
33LLVM_DUMP_METHOD llvm::raw_ostream &operator<<(llvm::raw_ostream &os,
34 const UnitConstruct &uc);
41ConstructQueue buildConstructQueue(mlir::ModuleOp modOp,
42 semantics::SemanticsContext &semaCtx,
43 lower::pft::Evaluation &eval,
44 const parser::CharBlock &source,
45 llvm::omp::Directive compound,
46 const List<Clause> &clauses);
48bool isLastItemInQueue(ConstructQueue::const_iterator item,
49 const ConstructQueue &queue);
56bool matchLeafSequence(ConstructQueue::const_iterator item,
57 const ConstructQueue &queue,
58 llvm::omp::Directive directive);
Definition semantics.h:67
Definition bit-population-count.h:20
Definition PFTBuilder.h:221