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