clang 24.0.0git
CIRGenStmtOpenMP.cpp File Reference
#include "CIRGenBuilder.h"
#include "CIRGenFunction.h"
#include "CIRGenOpenMPClause.h"
#include "CIRGenOpenMPConstructDecomposition.h"
#include "mlir/Dialect/OpenMP/OpenMPDialect.h"
#include "clang/AST/OpenMPClause.h"
#include "clang/AST/StmtOpenMP.h"
#include "llvm/ADT/STLFunctionalExtras.h"
#include "llvm/Frontend/OpenMP/OMP.h"
#include "llvm/Frontend/OpenMP/OMPConstants.h"

Go to the source code of this file.

Functions

static mlir::LogicalResult checkSynthesizedClauses (CIRGenFunction &cgf, const OMPExecutableDirective &s, omp::ConstructQueue::const_iterator item)
 Report item's synthesized clauses as not-yet-implemented: having no AST node, they cannot go through the clause emitters.
static mlir::LogicalResult emitParallelClauses (CIRGenFunction &cgf, CIRGenModule &cgm, CIRGenBuilderTy &builder, mlir::Location loc, llvm::ArrayRef< const OMPClause * > clauses, mlir::omp::ParallelOperands &clauseOps)
template<typename DirectiveTy>
static mlir::LogicalResult emitParallelOp (CIRGenFunction &cgf, const DirectiveTy &s, const omp::ConstructQueue &queue, omp::ConstructQueue::const_iterator item, mlir::Location begin, mlir::Location end, const mlir::omp::ParallelOperands &clauseOps, llvm::function_ref< mlir::LogicalResult()> emitBody)
static mlir::LogicalResult emitOMPTargetImplicitCaptures (CIRGenFunction &cgf, const OMPExecutableDirective &s, llvm::ArrayRef< const VarDecl * > mapSyms)
 Check for unsupported implicit captures in a target region.
static mlir::LogicalResult emitTargetClauses (CIRGenFunction &cgf, CIRGenModule &cgm, CIRGenBuilderTy &builder, mlir::Location loc, llvm::ArrayRef< const OMPClause * > clauses, mlir::omp::TargetExtOperands &clauseOps, llvm::SmallVectorImpl< const VarDecl * > &mapSyms)
template<typename DirectiveTy>
static mlir::LogicalResult emitTargetOp (CIRGenFunction &cgf, const DirectiveTy &s, const omp::ConstructQueue &queue, omp::ConstructQueue::const_iterator item, mlir::Location begin, mlir::Location end, mlir::omp::TargetExtOperands &clauseOps, llvm::ArrayRef< const VarDecl * > mapSyms, llvm::function_ref< mlir::LogicalResult()> emitBody)

Function Documentation

◆ checkSynthesizedClauses()

mlir::LogicalResult checkSynthesizedClauses ( CIRGenFunction & cgf,
const OMPExecutableDirective & s,
omp::ConstructQueue::const_iterator item )
static

Report item's synthesized clauses as not-yet-implemented: having no AST node, they cannot go through the clause emitters.

Definition at line 40 of file CIRGenStmtOpenMP.cpp.

References clang::CIRGen::CIRGenModule::errorNYI(), and clang::CIRGen::CIRGenFunction::getCIRGenModule().

Referenced by clang::CIRGen::CIRGenFunction::emitOMPParallelDirective(), clang::CIRGen::CIRGenFunction::emitOMPTargetDirective(), and clang::CIRGen::CIRGenFunction::emitOMPTargetParallelDirective().

◆ emitOMPTargetImplicitCaptures()

mlir::LogicalResult emitOMPTargetImplicitCaptures ( CIRGenFunction & cgf,
const OMPExecutableDirective & s,
llvm::ArrayRef< const VarDecl * > mapSyms )
static

Check for unsupported implicit captures in a target region.

Definition at line 287 of file CIRGenStmtOpenMP.cpp.

References clang::CapturedStmt::captures(), clang::CIRGen::CIRGenModule::errorNYI(), and clang::CIRGen::CIRGenFunction::getCIRGenModule().

Referenced by emitTargetOp().

◆ emitParallelClauses()

◆ emitParallelOp()

template<typename DirectiveTy>
mlir::LogicalResult emitParallelOp ( CIRGenFunction & cgf,
const DirectiveTy & s,
const omp::ConstructQueue & queue,
omp::ConstructQueue::const_iterator item,
mlir::Location begin,
mlir::Location end,
const mlir::omp::ParallelOperands & clauseOps,
llvm::function_ref< mlir::LogicalResult()> emitBody )
static

◆ emitTargetClauses()

mlir::LogicalResult emitTargetClauses ( CIRGenFunction & cgf,
CIRGenModule & cgm,
CIRGenBuilderTy & builder,
mlir::Location loc,
llvm::ArrayRef< const OMPClause * > clauses,
mlir::omp::TargetExtOperands & clauseOps,
llvm::SmallVectorImpl< const VarDecl * > & mapSyms )
static

◆ emitTargetOp()

template<typename DirectiveTy>
mlir::LogicalResult emitTargetOp ( CIRGenFunction & cgf,
const DirectiveTy & s,
const omp::ConstructQueue & queue,
omp::ConstructQueue::const_iterator item,
mlir::Location begin,
mlir::Location end,
mlir::omp::TargetExtOperands & clauseOps,
llvm::ArrayRef< const VarDecl * > mapSyms,
llvm::function_ref< mlir::LogicalResult()> emitBody )
static