|
clang 23.0.0git
|
#include "CGCleanup.h"#include "CGDebugInfo.h"#include "CGOpenMPRuntime.h"#include "CodeGenFunction.h"#include "CodeGenModule.h"#include "CodeGenPGO.h"#include "TargetInfo.h"#include "clang/AST/ASTContext.h"#include "clang/AST/Attr.h"#include "clang/AST/DeclOpenMP.h"#include "clang/AST/OpenMPClause.h"#include "clang/AST/Stmt.h"#include "clang/AST/StmtOpenMP.h"#include "clang/AST/StmtVisitor.h"#include "clang/Basic/DiagnosticFrontend.h"#include "clang/Basic/OpenMPKinds.h"#include "clang/Basic/PrettyStackTrace.h"#include "clang/Basic/SourceManager.h"#include "llvm/ADT/SmallSet.h"#include "llvm/BinaryFormat/Dwarf.h"#include "llvm/Frontend/OpenMP/OMPConstants.h"#include "llvm/Frontend/OpenMP/OMPIRBuilder.h"#include "llvm/IR/Constants.h"#include "llvm/IR/DebugInfoMetadata.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/IR/Metadata.h"#include "llvm/Support/AtomicOrdering.h"#include "llvm/Support/Debug.h"#include <optional>Go to the source code of this file.
Macros | |
| #define | TTL_CODEGEN_TYPE "target-teams-loop-codegen" |
Typedefs | |
| using | EmittedClosureTy = std::pair<llvm::Function *, llvm::Value *> |
| #define TTL_CODEGEN_TYPE "target-teams-loop-codegen" |
Definition at line 47 of file CGStmtOpenMP.cpp.
Referenced by emitTargetTeamsGenericLoopRegionAsDistribute(), and emitTargetTeamsGenericLoopRegionAsParallel().
| using EmittedClosureTy = std::pair<llvm::Function *, llvm::Value *> |
Definition at line 2335 of file CGStmtOpenMP.cpp.
|
static |
Definition at line 2843 of file CGStmtOpenMP.cpp.
References hasOrderedDirective(), clang::CodeGen::CodeGenFunction::LoopStack, and clang::CodeGen::LoopInfoStack::setParallel().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPSimdInit().
|
static |
Definition at line 5156 of file CGStmtOpenMP.cpp.
References clang::C, clang::Data, and clang::CodeGen::OMPTaskDataTy::DependData::DepExprs.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPDepobjDirective(), clang::CodeGen::CodeGenFunction::EmitOMPInteropDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetTaskBasedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskBasedDirective(), and clang::CodeGen::CodeGenFunction::EmitOMPTaskwaitDirective().
|
static |
Whether a combined distribute parallel for may use the fused distr_static_chunk + static_chunkone schedule (enum 93): one for_static_init, no surrounding distribute_static_init.
Definition at line 56 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenModule::getLangOpts(), clang::CodeGen::CodeGenModule::getTriple(), and clang::isOpenMPLoopBoundSharingDirective().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), and clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop().
|
static |
Definition at line 471 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::EmitScalarConversion(), clang::CodeGen::LValue::getAddress(), clang::CodeGen::CodeGenFunction::getContext(), clang::ASTContext::getPointerType(), clang::ASTContext::getUIntPtrType(), and clang::CodeGen::CodeGenFunction::MakeNaturalAlignAddrLValue().
Referenced by emitOutlinedFunctionPrologue().
|
static |
Definition at line 1832 of file CGStmtOpenMP.cpp.
References clang::C, clang::cast(), clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGOpenMPRuntime::checkAndEmitLastprivateConditional(), clang::CodeGen::CGOpenMPRuntime::checkAndEmitSharedLastprivateConditional(), clang::CodeGen::CodeGenFunction::getLangOpts(), and clang::CodeGen::CodeGenModule::getOpenMPRuntime().
Referenced by emitOMPForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelGenericLoopDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMaskedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMasterDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelSectionsDirective(), clang::CodeGen::CodeGenFunction::EmitOMPScopeDirective(), clang::CodeGen::CodeGenFunction::EmitOMPSectionsDirective(), emitOMPSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPSingleDirective(), and clang::CodeGen::CodeGenFunction::EmitSimpleOMPExecutableDirective().
|
static |
Definition at line 4395 of file CGStmtOpenMP.cpp.
References clang::OMPC_SCHEDULE_unknown.
Referenced by emitOMPForDirective().
|
static |
Definition at line 6597 of file CGStmtOpenMP.cpp.
References clang::Type::castAs(), clang::CodeGen::CodeGenFunction::EmitScalarConversion(), clang::CodeGen::RValue::getComplexVal(), clang::CodeGen::CodeGenFunction::getEvaluationKind(), clang::CodeGen::RValue::getScalarVal(), clang::CodeGen::RValue::isComplex(), clang::CodeGen::RValue::isScalar(), and clang::CodeGen::TEK_Complex.
Referenced by convertToType(), and clang::CodeGen::CodeGenFunction::emitOMPSimpleStore().
|
static |
Definition at line 6584 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::EmitComplexToScalarConversion(), clang::CodeGen::CodeGenFunction::EmitScalarConversion(), clang::CodeGen::RValue::getComplexVal(), clang::CodeGen::RValue::getScalarVal(), clang::CodeGen::CodeGenFunction::hasScalarEvaluationKind(), clang::CodeGen::RValue::isAggregate(), and clang::CodeGen::RValue::isScalar().
Referenced by convertToType(), and clang::CodeGen::CodeGenFunction::emitOMPSimpleStore().
|
static |
Definition at line 6907 of file CGStmtOpenMP.cpp.
References convertToComplexValue(), convertToScalarValue(), clang::CodeGen::RValue::get(), clang::CodeGen::RValue::getComplex(), clang::CodeGen::CodeGenFunction::getEvaluationKind(), clang::CodeGen::TEK_Aggregate, clang::CodeGen::TEK_Complex, and clang::CodeGen::TEK_Scalar.
Referenced by emitOMPAtomicCaptureExpr().
|
static |
Definition at line 5578 of file CGStmtOpenMP.cpp.
References clang::C, clang::VarDecl::CInit, clang::DeclRefExpr::Create(), clang::ImplicitCastExpr::Create(), clang::ImplicitParamDecl::Create(), clang::Data, clang::Other, clang::VK_LValue, and clang::VK_PRValue.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetTaskBasedDirective().
|
static |
Definition at line 4495 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CreateMemTemp(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), clang::CodeGen::RValue::get(), clang::Init, and clang::CodeGen::CodeGenFunction::MakeAddrLValue().
|
static |
Definition at line 2605 of file CGStmtOpenMP.cpp.
References clang::cast(), clang::CodeGen::CodeGenFunction::emitAlignmentAssumption(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), clang::CodeGen::CodeGenFunction::getContext(), clang::CodeGen::CodeGenFunction::getLLVMContext(), clang::ASTContext::getOpenMPDefaultSimdAlign(), clang::CharUnits::getQuantity(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), and clang::ASTContext::toCharUnitsFromBits().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), emitOMPSimdRegion(), and clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop().
|
static |
Definition at line 2227 of file CGStmtOpenMP.cpp.
References clang::cast(), emitBody(), clang::CodeGen::CodeGenFunction::EmitStmt(), clang::CodeGen::CodeGenFunction::getContext(), clang::ASTContext::getSourceManager(), clang::Stmt::getSourceRange(), clang::Stmt::IgnoreContainers(), and clang::isa().
Referenced by emitBody(), and clang::CodeGen::CodeGenFunction::EmitOMPLoopBody().
|
static |
Emit a call to a previously captured closure.
Definition at line 2353 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::ParentCGF.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPCanonicalLoop().
|
static |
Emit a captured statement and return the function as well as its captured closure context.
Definition at line 2339 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::GenerateCapturedStmtFunction(), clang::CodeGen::CodeGenFunction::InitCapturedStruct(), and clang::CodeGen::CodeGenFunction::ParentCGF.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPCanonicalLoop().
|
static |
Definition at line 1888 of file CGStmtOpenMP.cpp.
References clang::C, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGOpenMPRuntime::emitNumThreadsClause(), clang::CodeGen::CGOpenMPRuntime::emitParallelCall(), clang::CodeGen::CGOpenMPRuntime::emitParallelOutlinedFunction(), clang::CodeGen::CGOpenMPRuntime::emitProcBindClause(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedVars(), clang::CapturedStmt::getCapturedDecl(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::OMPC_NUMTHREADS_unknown, and clang::CapturedDecl::param_begin().
Referenced by emitInnerParallelForWhenCombined(), clang::CodeGen::CodeGenFunction::EmitOMPParallelDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelGenericLoopDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMaskedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMaskedTaskLoopDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMaskedTaskLoopSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMasterDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMasterTaskLoopDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMasterTaskLoopSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelSectionsDirective(), emitTargetParallelForRegion(), emitTargetParallelForSimdRegion(), emitTargetParallelGenericLoopRegion(), and emitTargetParallelRegion().
|
static |
Definition at line 7227 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::C, clang::cast(), clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::ConstantFoldsToSimpleInteger(), clang::Ctor_Complete, clang::CodeGen::CodeGenFunction::CurFuncDecl, clang::Device, clang::CodeGen::CGOpenMPRuntime::LastprivateConditionalRAII::disable(), clang::Dtor_Complete, clang::CodeGen::CGOpenMPRuntime::emitInlinedDirective(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), clang::CodeGen::CodeGenFunction::EmitStmt(), clang::CodeGen::CGOpenMPRuntime::emitTargetCall(), clang::CodeGen::CGOpenMPRuntime::emitTargetOutlinedFunction(), clang::CodeGen::CodeGenModule::getDiags(), clang::CodeGen::CodeGenModule::getLangOpts(), clang::CodeGen::CodeGenModule::getMangledName(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::CodeGen::CodeGenTypeCache::Int64Ty, clang::isOpenMPTargetExecutionDirective(), clang::OMPC_DEVICE_unknown, clang::LangOptions::OMPTargetTriples, and clang::DiagnosticsEngine::Report().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelGenericLoopDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDistributeDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDistributeParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDistributeParallelForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDistributeSimdDirective(), and clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsGenericLoopDirective().
|
static |
Definition at line 7347 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGOpenMPRuntime::emitNumTeamsClause(), clang::CodeGen::CGOpenMPRuntime::emitTeamsCall(), clang::CodeGen::CGOpenMPRuntime::emitTeamsOutlinedFunction(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedVars(), clang::CapturedStmt::getCapturedDecl(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), and clang::CapturedDecl::param_begin().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTeamsDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDistributeDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDistributeParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDistributeParallelForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDistributeSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsGenericLoopDirective(), emitTargetTeamsDistributeParallelForRegion(), emitTargetTeamsDistributeParallelForSimdRegion(), emitTargetTeamsDistributeRegion(), emitTargetTeamsDistributeSimdRegion(), emitTargetTeamsGenericLoopRegionAsDistribute(), emitTargetTeamsGenericLoopRegionAsParallel(), and emitTargetTeamsRegion().
|
static |
Definition at line 2935 of file CGStmtOpenMP.cpp.
References clang::C, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGOpenMPRuntime::emitIfClause(), getEffectiveDirectiveKind(), clang::CodeGen::CodeGenFunction::getLangOpts(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::isOpenMPSimdDirective(), clang::CodeGen::CodeGenFunction::LoopStack, and clang::CodeGen::LoopInfoStack::setVectorizeEnable().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), emitOMPSimdRegion(), clang::CodeGen::CodeGenFunction::EmitOMPTaskLoopBasedDirective(), and clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop().
|
static |
When dealing with dispatch schedules (e.g.
dynamic, guided) we do not consider the lower and upper bound expressions generated by the worksharing loop support, but we use 0 and the iteration space size as constants
Definition at line 4041 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::cast(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), clang::CodeGen::CodeGenFunction::getContext(), clang::Expr::getType(), and clang::ASTContext::getTypeSize().
Referenced by emitTargetParallelForRegion(), emitTargetParallelForSimdRegion(), emitTargetParallelGenericLoopRegion(), and emitWorksharingDirective().
|
static |
if the 'for' loop has a dispatch schedule (e.g.
dynamic, guided) then we need to use the LB and UB expressions generated by the worksharing code generation support, whereas in non combined situations we would just emit 0 and the LastIteration expression This function is necessary due to the difference of the LB and UB types for the RT emission routines for 'for_static_init' and 'for_dispatch_init'
Definition at line 3650 of file CGStmtOpenMP.cpp.
References clang::cast(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), and clang::Expr::getType().
Referenced by emitInnerParallelForWhenCombined().
|
static |
Definition at line 3667 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::cast(), clang::CodeGen::CGBuilderTy::CreateLoad(), clang::CodeGen::CodeGenFunction::EmitLValue(), and clang::CodeGen::CodeGenTypeCache::SizeTy.
Referenced by emitInnerParallelForWhenCombined().
|
static |
Definition at line 3607 of file CGStmtOpenMP.cpp.
References clang::cast(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValue(), EmitOMPHelperVar(), clang::CodeGen::CodeGenFunction::EmitScalarConversion(), and clang::CodeGen::CodeGenFunction::EmitStoreOfScalar().
Referenced by emitInnerParallelForWhenCombined().
|
static |
Definition at line 1962 of file CGStmtOpenMP.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPParallelDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelGenericLoopDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMaskedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMaskedTaskLoopDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMaskedTaskLoopSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMasterDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMasterTaskLoopDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMasterTaskLoopSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelSectionsDirective(), emitTargetParallelForRegion(), emitTargetParallelForSimdRegion(), emitTargetParallelGenericLoopRegion(), and emitTargetParallelRegion().
|
static |
Definition at line 3541 of file CGStmtOpenMP.cpp.
|
static |
The following two functions generate expressions for the loop lower and upper bounds in case of static and dynamic (dispatch) schedule of the associated 'for' or 'distribute' loop.
Definition at line 4027 of file CGStmtOpenMP.cpp.
References clang::cast(), and EmitOMPHelperVar().
Referenced by emitTargetParallelForRegion(), emitTargetParallelForSimdRegion(), emitTargetParallelGenericLoopRegion(), and emitWorksharingDirective().
|
static |
Definition at line 3685 of file CGStmtOpenMP.cpp.
References emitCommonOMPParallelDirective(), emitDistributeParallelForDispatchBounds(), emitDistributeParallelForDistributeInnerBoundParams(), emitDistributeParallelForInnerBounds(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), getEffectiveDirectiveKind(), and clang::isOpenMPSimdDirective().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPDistributeParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeParallelForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDistributeParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDistributeParallelForSimdDirective(), emitTargetTeamsDistributeParallelForRegion(), emitTargetTeamsDistributeParallelForSimdRegion(), and emitTargetTeamsGenericLoopRegionAsParallel().
|
static |
Definition at line 4872 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGOpenMPRuntime::emitMaskedRegion(), clang::CodeGen::CodeGenFunction::EmitStmt(), and clang::CodeGen::CodeGenModule::getOpenMPRuntime().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPMaskedDirective(), and clang::CodeGen::CodeGenFunction::EmitOMPParallelMaskedDirective().
|
static |
Definition at line 4831 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGOpenMPRuntime::emitMasterRegion(), clang::CodeGen::CodeGenFunction::EmitStmt(), and clang::CodeGen::CodeGenModule::getOpenMPRuntime().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPMasterDirective(), and clang::CodeGen::CodeGenFunction::EmitOMPParallelMasterDirective().
|
static |
Definition at line 6924 of file CGStmtOpenMP.cpp.
References clang::cast(), clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGOpenMPRuntime::checkAndEmitLastprivateConditional(), convertToType(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CGOpenMPRuntime::emitFlush(), clang::CodeGen::CodeGenFunction::EmitLValue(), clang::CodeGen::CodeGenFunction::EmitOMPAtomicSimpleUpdateExpr(), clang::CodeGen::CodeGenFunction::emitOMPSimpleStore(), clang::CodeGen::CodeGenModule::getLangOpts(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::Expr::getType(), clang::Expr::IgnoreImpCasts(), clang::isa(), clang::IsPostfixUpdate, clang::IsXLHSInRHSPart, V, and X.
Referenced by emitOMPAtomicExpr().
|
static |
Definition at line 7031 of file CGStmtOpenMP.cpp.
References clang::Addr, clang::CodeGen::CodeGenFunction::Builder, clang::cast(), clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::EmitLValue(), clang::CodeGen::Address::emitRawPointer(), clang::CodeGen::CodeGenFunction::EmitScalarConversion(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), clang::CodeGen::Address::getElementType(), clang::CodeGen::CGOpenMPRuntime::getOMPBuilder(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::Expr::getType(), clang::Type::hasSignedIntegerRepresentation(), clang::Expr::IgnoreImplicitAsWritten(), clang::isa(), clang::IsFailOnly, clang::IsPostfixUpdate, V, and X.
Referenced by emitOMPAtomicExpr().
|
static |
Definition at line 7112 of file CGStmtOpenMP.cpp.
References emitOMPAtomicCaptureExpr(), emitOMPAtomicCompareExpr(), emitOMPAtomicReadExpr(), emitOMPAtomicUpdateExpr(), emitOMPAtomicWriteExpr(), clang::IsFailOnly, clang::IsPostfixUpdate, clang::IsXLHSInRHSPart, V, and X.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPAtomicDirective().
|
static |
Definition at line 6659 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGOpenMPRuntime::checkAndEmitLastprivateConditional(), clang::CodeGen::CGOpenMPRuntime::emitFlush(), clang::CodeGen::CodeGenFunction::EmitLValue(), clang::CodeGen::CodeGenFunction::emitOMPSimpleStore(), emitSimpleAtomicLoad(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), V, and X.
Referenced by emitOMPAtomicExpr().
|
static |
Definition at line 6717 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::emitAtomicRMWInst(), clang::CodeGen::RValue::get(), clang::CodeGen::CodeGenFunction::getContext(), clang::CodeGen::CodeGenModule::getDataLayout(), clang::isa(), clang::IsXLHSInRHSPart, clang::Update, and X.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPAtomicSimpleUpdateExpr().
|
static |
Definition at line 6859 of file CGStmtOpenMP.cpp.
References clang::cast(), clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGOpenMPRuntime::checkAndEmitLastprivateConditional(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CGOpenMPRuntime::emitFlush(), clang::CodeGen::CodeGenFunction::EmitLValue(), clang::CodeGen::CodeGenFunction::EmitOMPAtomicSimpleUpdateExpr(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::Expr::IgnoreImpCasts(), clang::isa(), clang::IsXLHSInRHSPart, and X.
Referenced by emitOMPAtomicExpr().
|
static |
Definition at line 6690 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGOpenMPRuntime::checkAndEmitLastprivateConditional(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CGOpenMPRuntime::emitFlush(), clang::CodeGen::CodeGenFunction::EmitLValue(), emitSimpleAtomicStore(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), and X.
Referenced by emitOMPAtomicExpr().
|
static |
Definition at line 1966 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGOpenMPRuntime::emitBarrierCall(), clang::CodeGen::CodeGenFunction::EmitOMPCopyinClause(), and clang::CodeGen::CodeGenModule::getOpenMPRuntime().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPParallelDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelGenericLoopDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMaskedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMasterDirective(), and clang::CodeGen::CodeGenFunction::EmitOMPParallelSectionsDirective().
|
static |
Definition at line 6443 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGOpenMPRuntime::emitInlinedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), emitOMPLoopBodyWithStopPoint(), and clang::CodeGen::CodeGenModule::getOpenMPRuntime().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPDistributeDirective(), and clang::CodeGen::CodeGenFunction::EmitOMPGenericLoopDirective().
|
static |
Definition at line 4415 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::AllocaInsertPt, clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, checkForLastprivateConditionalUpdate(), convertClauseKindToSchedKind(), clang::CodeGen::CGOpenMPRuntime::LastprivateConditionalRAII::disable(), clang::CodeGen::CGOpenMPRuntime::emitBarrierCall(), clang::CodeGen::CGOpenMPRuntime::emitInlinedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPCollapsedCanonicalLoopNest(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), emitWorksharingDirective(), clang::CodeGen::CodeGenModule::getLangOpts(), clang::CodeGen::CGOpenMPRuntime::getOMPBuilder(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), and isForSupportedByOpenMPIRBuilder().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPForDirective(), and clang::CodeGen::CodeGenFunction::EmitOMPGenericLoopDirective().
|
static |
Emit a helper variable and return corresponding lvalue.
Definition at line 2928 of file CGStmtOpenMP.cpp.
References clang::cast(), clang::CodeGen::CodeGenFunction::EmitLValue(), clang::CodeGen::CodeGenFunction::EmitVarDecl(), and clang::DeclRefExpr::getDecl().
Referenced by emitDistributeParallelForInnerBounds(), emitForLoopBounds(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), emitOMPSimdRegion(), and clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop().
|
static |
Definition at line 2920 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::EmitOMPLoopBody(), and clang::CodeGen::CodeGenFunction::EmitStopPoint().
Referenced by emitOMPDistributeDirective(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDistributeDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDistributeSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsGenericLoopDirective(), emitTargetTeamsDistributeRegion(), emitTargetTeamsDistributeSimdRegion(), and emitTargetTeamsGenericLoopRegionAsDistribute().
|
static |
Definition at line 3138 of file CGStmtOpenMP.cpp.
References clang::C, clang::cast(), clang::CodeGen::CodeGenFunction::CGM, checkForLastprivateConditionalUpdate(), clang::CodeGen::CGOpenMPRuntime::LastprivateConditionalRAII::disable(), clang::CodeGen::CGOpenMPRuntime::emitInlinedDirective(), emitOMPSimdRegion(), GetAlignedMapping(), clang::CodeGen::CodeGenModule::getLangOpts(), clang::CodeGen::CGOpenMPRuntime::getOMPBuilder(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::CodeGen::RValue::getScalarVal(), clang::CodeGen::AggValueSlot::ignored(), isSimdSupportedByOpenMPIRBuilder(), and clang::CodeGen::CodeGenFunction::OMPFirstScanLoop.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPGenericLoopDirective(), and clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective().
|
static |
Definition at line 2972 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CGOpenMPRuntime::adjustTargetSpecificDataForLambdas(), clang::cast(), clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::ConstantFoldsToSimpleInteger(), clang::CodeGen::CodeGenFunction::createBasicBlock(), emitAlignedClause(), clang::CodeGen::CodeGenFunction::EmitBlock(), clang::CodeGen::CodeGenFunction::EmitBranch(), emitCommonSimdLoop(), clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(), clang::CodeGen::CodeGenFunction::EmitLValue(), EmitOMPHelperVar(), clang::CodeGen::CodeGenFunction::EmitOMPInnerLoop(), clang::CodeGen::CodeGenFunction::EmitOMPLastprivateClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPLastprivateClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPLinearClause(), clang::CodeGen::CodeGenFunction::EmitOMPLinearClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPLinearClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPPrivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPPrivateLoopCounters(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPSimdFinal(), clang::CodeGen::CodeGenFunction::EmitOMPSimdInit(), emitPostUpdateForReductionClause(), emitPreCond(), clang::CodeGen::CodeGenFunction::EmitVarDecl(), clang::CodeGen::PrePostActionTy::Enter(), getEffectiveDirectiveKind(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::CodeGen::CodeGenFunction::getProfileCount(), clang::CodeGen::CodeGenFunction::incrementProfileCounter(), clang::isOpenMPDistributeDirective(), clang::isOpenMPGenericLoopDirective(), clang::isOpenMPTargetExecutionDirective(), clang::isOpenMPTaskLoopDirective(), clang::isOpenMPWorksharingDirective(), clang::CodeGen::CodeGenFunction::OMPPrivateScope::Privatize(), clang::CodeGen::CodeGenFunction::RunCleanupsScope::requiresCleanups(), and clang::CodeGen::CodeGenFunction::OMPPrivateScope::restoreMap().
Referenced by emitOMPSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetSimdDeviceFunction(), clang::CodeGen::CodeGenFunction::EmitOMPTargetSimdDirective(), and clang::CodeGen::CodeGenFunction::EmitSimpleOMPExecutableDirective().
|
static |
Definition at line 526 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenTypes::arrangeBuiltinFunctionDeclaration(), clang::CodeGen::CodeGenTypes::arrangeDeviceKernelCallerDeclaration(), clang::CapturedStmt::captures(), castValueFromUintptr(), clang::CodeGen::CodeGenFunction::CGM, clang::FunctionDecl::Create(), clang::ImplicitParamDecl::Create(), clang::ParmVarDecl::Create(), clang::CodeGen::Decl, clang::CodeGen::CodeGenFunction::EmitLoadOfPointer(), clang::CodeGen::CodeGenFunction::EmitLoadOfReference(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::RecordDecl::fields(), clang::IdentifierTable::get(), clang::CodeGen::CodeGenFunction::GetAddrOfLocalVar(), clang::CapturedStmt::getBeginLoc(), clang::DeclaratorDecl::getBeginLoc(), clang::Stmt::getBeginLoc(), clang::CapturedDecl::getBody(), getCanonicalParamType(), clang::CapturedStmt::getCapturedDecl(), clang::CapturedStmt::getCapturedRecordDecl(), clang::CodeGen::CodeGenModule::getCodeGenOpts(), clang::CodeGen::CodeGenModule::getContext(), clang::CapturedDecl::getContextParamPosition(), clang::ASTContext::getDeclAlign(), clang::CodeGen::CodeGenTypes::GetFunctionType(), clang::ASTContext::getFunctionType(), clang::NamedDecl::getIdentifier(), clang::Decl::getLocation(), clang::CodeGen::CodeGenModule::getModule(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::CodeGen::CGOpenMPRuntime::getParameterAddress(), clang::VariableArrayType::getSizeExpr(), clang::VarDecl::getTLSKind(), clang::ASTContext::getTranslationUnitDecl(), clang::CodeGen::CodeGenModule::getTriple(), clang::ASTContext::getTrivialTypeSourceInfo(), clang::CodeGen::Address::getType(), clang::ValueDecl::getType(), getType(), clang::CodeGen::CodeGenModule::getTypes(), clang::ASTContext::getUIntPtrType(), clang::Decl::hasBody(), clang::ASTContext::Idents, clang::CodeGen::Address::invalid(), clang::CapturedDecl::isNothrow(), clang::Type::isPointerType(), clang::Type::isVariablyModifiedType(), clang::CodeGen::CodeGenFunction::MakeAddrLValue(), clang::Other, clang::CapturedDecl::param_begin(), clang::CapturedDecl::param_end(), clang::CodeGenOptions::SampleProfileFile, clang::SC_None, clang::SC_Static, clang::CodeGen::CodeGenModule::SetInternalFunctionAttributes(), clang::CodeGen::CodeGenFunction::StartFunction(), clang::ThreadPrivateVar, clang::VarDecl::TLS_None, clang::CodeGen::CGOpenMPRuntime::translateParameter(), clang::ASTContext::VoidTy, and clang::CodeGen::Address::withAlignment().
Referenced by clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction(), and clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunctionAggregate().
|
static |
Definition at line 722 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenTypes::arrangeBuiltinFunctionDeclaration(), clang::CodeGen::CodeGenFunction::Builder, clang::C, clang::CapturedStmt::captures(), clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::ConvertTypeForMem(), clang::CodeGen::CGBuilderTy::CreateAlignedLoad(), clang::CodeGen::CGBuilderTy::CreateLoad(), clang::CodeGen::CodeGenFunction::CreateMemTemp(), clang::CodeGen::Decl, clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), clang::RecordDecl::fields(), clang::CharUnits::fromQuantity(), clang::CodeGen::CodeGenFunction::GetAddrOfLocalVar(), clang::CapturedStmt::getCapturedDecl(), clang::CapturedStmt::getCapturedRecordDecl(), clang::CodeGen::CodeGenModule::getContext(), clang::CapturedDecl::getContextParam(), clang::CodeGen::CodeGenModule::getDataLayout(), clang::ASTContext::getDeclAlign(), clang::CodeGen::CodeGenTypes::GetFunctionType(), clang::CodeGen::CodeGenModule::getModule(), clang::NamedDecl::getName(), clang::RecordDecl::getNumFields(), clang::VariableArrayType::getSizeExpr(), clang::CodeGen::Address::getType(), clang::ValueDecl::getType(), clang::CodeGen::CodeGenModule::getTypes(), clang::CodeGen::CodeGenTypeCache::IntPtrTy, clang::CapturedDecl::isNothrow(), clang::Type::isPointerType(), clang::Type::isVariablyModifiedType(), clang::CodeGen::CodeGenFunction::MakeAddrLValue(), clang::CodeGen::CodeGenModule::SetInternalFunctionAttributes(), clang::CodeGen::CodeGenFunction::StartFunction(), and clang::ASTContext::VoidTy.
Referenced by clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunctionAggregate().
|
static |
Definition at line 6459 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CapturedStmtInfo, clang::CodeGen::CodeGenFunction::CGM, and clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPOrderedDirective().
|
static |
Definition at line 1796 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::C, clang::Cond, clang::CodeGen::CodeGenFunction::createBasicBlock(), clang::CodeGen::CodeGenFunction::EmitBlock(), clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(), and clang::CodeGen::CodeGenFunction::HaveInsertPoint().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), clang::CodeGen::CodeGenFunction::EmitOMPParallelDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMaskedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelMasterDirective(), emitOMPSimdRegion(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDistributeDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDistributeParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDistributeParallelForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsDistributeSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTeamsGenericLoopDirective(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), emitTargetParallelRegion(), emitTargetTeamsDistributeParallelForRegion(), emitTargetTeamsDistributeParallelForSimdRegion(), emitTargetTeamsDistributeRegion(), emitTargetTeamsDistributeSimdRegion(), emitTargetTeamsGenericLoopRegionAsDistribute(), emitTargetTeamsGenericLoopRegionAsParallel(), and emitTargetTeamsRegion().
|
static |
Definition at line 2682 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::OMPMapVars::apply(), clang::cast(), clang::Cond, clang::CodeGen::CodeGenFunction::CreateMemTemp(), clang::CodeGen::CodeGenFunction::EmitBranchOnBoolExpr(), clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(), clang::CodeGen::CodeGenFunction::EmitOMPPrivateLoopCounters(), clang::QualType::getNonReferenceType(), clang::ValueDecl::getType(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), clang::CodeGen::CodeGenFunction::OMPPrivateScope::Privatize(), clang::CodeGen::CodeGenFunction::OMPMapVars::restore(), and clang::CodeGen::CodeGenFunction::OMPMapVars::setVarAddr().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), emitOMPSimdRegion(), clang::CodeGen::CodeGenFunction::EmitOMPTaskLoopBasedDirective(), and clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop().
|
static |
Definition at line 6470 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::C, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::EmitScalarConversion(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), clang::CodeGen::CodeGenModule::getContext(), clang::Expr::getExprLoc(), clang::ASTContext::getIntTypeForBitwidth(), clang::Expr::getType(), and clang::CodeGen::CodeGenTypeCache::Int64Ty.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPOrderedDirective().
|
static |
Emits the code for the directive with inscan reductions.
The code is the following:
Definition at line 4174 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::OMPPrivateScope::addPrivate(), clang::CodeGen::CodeGenFunction::Builder, clang::C, clang::cast(), Cmp, clang::CodeGen::ApplyDebugLocation::CreateDefaultArtificial(), clang::CodeGen::RValue::get(), clang::CodeGen::Address::invalid(), Next, clang::CodeGen::CodeGenFunction::OMPFirstScanLoop, clang::Privates, clang::CodeGen::CodeGenFunction::OMPPrivateScope::Privatize(), and clang::CodeGen::CodeGenTypeCache::SizeTy.
Referenced by emitWorksharingDirective().
|
static |
Emits internal temp array declarations for the directive with inscan reductions.
The code is the following:
Definition at line 4058 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::C, clang::cast(), clang::CodeGen::ReductionCodeGen::emitAggregateType(), clang::CodeGen::ReductionCodeGen::emitSharedOrigLValue(), clang::CodeGen::CodeGenFunction::EmitVarDecl(), clang::CodeGen::RValue::get(), clang::Privates, and clang::CodeGen::CodeGenTypeCache::SizeTy.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForSimdDirective(), and emitWorksharingDirective().
|
static |
Copies final inscan reductions values to the original variables.
The code is the following:
Definition at line 4110 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::C, clang::cast(), clang::CodeGen::CodeGenFunction::EmitLValue(), clang::CodeGen::CodeGenFunction::EmitOMPCopy(), clang::CodeGen::RValue::get(), clang::Expr::getType(), clang::Privates, and clang::CodeGen::CodeGenTypeCache::SizeTy.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForSimdDirective(), and emitWorksharingDirective().
|
static |
Definition at line 2755 of file CGStmtOpenMP.cpp.
References clang::C, clang::cast(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::RValue::getScalarVal(), clang::CodeGen::CodeGenFunction::HaveInsertPoint(), clang::CodeGen::AggValueSlot::ignored(), clang::CodeGen::CodeGenFunction::LoopStack, clang::CodeGen::LoopInfoStack::setParallel(), and clang::CodeGen::LoopInfoStack::setVectorizeWidth().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPSimdInit().
|
static |
Definition at line 6631 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), and clang::CodeGen::CodeGenFunction::EmitLoadOfLValue().
Referenced by emitOMPAtomicReadExpr().
|
static |
Definition at line 6623 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::EmitAtomicStore(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue().
Referenced by emitOMPAtomicWriteExpr().
|
static |
Definition at line 8148 of file CGStmtOpenMP.cpp.
References emitCommonOMPParallelDirective(), emitDispatchForLoopBounds(), emitEmptyBoundParameters(), emitForLoopBounds(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), clang::CodeGen::PrePostActionTy::Enter(), and OMPTargetParallelForDirective::hasCancel().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelForDeviceFunction(), and clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelForDirective().
|
static |
Definition at line 8189 of file CGStmtOpenMP.cpp.
References emitCommonOMPParallelDirective(), emitDispatchForLoopBounds(), emitEmptyBoundParameters(), emitForLoopBounds(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), and clang::CodeGen::PrePostActionTy::Enter().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelForSimdDeviceFunction(), and clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelForSimdDirective().
|
static |
Definition at line 8749 of file CGStmtOpenMP.cpp.
References emitCommonOMPParallelDirective(), emitDispatchForLoopBounds(), emitEmptyBoundParameters(), emitForLoopBounds(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), and clang::CodeGen::PrePostActionTy::Enter().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelGenericLoopDeviceFunction(), and clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelGenericLoopDirective().
|
static |
Definition at line 8101 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CGOpenMPRuntime::adjustTargetSpecificDataForLambdas(), clang::CodeGen::CodeGenFunction::CGM, emitCommonOMPParallelDirective(), emitEmptyBoundParameters(), clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPPrivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), emitPostUpdateForReductionClause(), clang::CodeGen::CodeGenFunction::EmitStmt(), clang::CodeGen::PrePostActionTy::Enter(), clang::CapturedStmt::getCapturedStmt(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::isOpenMPTargetExecutionDirective(), and clang::CodeGen::CodeGenFunction::OMPPrivateScope::Privatize().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelDeviceFunction(), and clang::CodeGen::CodeGenFunction::EmitOMPTargetParallelDirective().
|
static |
Definition at line 7312 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CGOpenMPRuntime::adjustTargetSpecificDataForLambdas(), clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPPrivateClause(), clang::CodeGen::CodeGenFunction::EmitStmt(), clang::CodeGen::CodeGenFunction::EnsureInsertPoint(), clang::CodeGen::PrePostActionTy::Enter(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::isOpenMPTargetExecutionDirective(), and clang::CodeGen::CodeGenFunction::OMPPrivateScope::Privatize().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetDeviceFunction(), and clang::CodeGen::CodeGenFunction::EmitOMPTargetDirective().
|
static |
Definition at line 7689 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, emitCommonOMPTeamsDirective(), clang::CodeGen::CGOpenMPRuntime::emitInlinedDirective(), emitInnerParallelForWhenCombined(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), emitPostUpdateForReductionClause(), clang::CodeGen::PrePostActionTy::Enter(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), and clang::CodeGen::CodeGenFunction::OMPPrivateScope::Privatize().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDistributeParallelForDeviceFunction(), and clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDistributeParallelForDirective().
|
static |
Definition at line 7740 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, emitCommonOMPTeamsDirective(), clang::CodeGen::CGOpenMPRuntime::emitInlinedDirective(), emitInnerParallelForWhenCombined(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), emitPostUpdateForReductionClause(), clang::CodeGen::PrePostActionTy::Enter(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), and clang::CodeGen::CodeGenFunction::OMPPrivateScope::Privatize().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDistributeParallelForSimdDeviceFunction(), and clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDistributeParallelForSimdDirective().
|
static |
Definition at line 7436 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, emitCommonOMPTeamsDirective(), clang::CodeGen::CGOpenMPRuntime::emitInlinedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), emitOMPLoopBodyWithStopPoint(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), emitPostUpdateForReductionClause(), clang::CodeGen::PrePostActionTy::Enter(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), and clang::CodeGen::CodeGenFunction::OMPPrivateScope::Privatize().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDistributeDeviceFunction(), and clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDistributeDirective().
|
static |
Definition at line 7481 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, emitCommonOMPTeamsDirective(), clang::CodeGen::CGOpenMPRuntime::emitInlinedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), emitOMPLoopBodyWithStopPoint(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), emitPostUpdateForReductionClause(), clang::CodeGen::PrePostActionTy::Enter(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), and clang::CodeGen::CodeGenFunction::OMPPrivateScope::Privatize().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDistributeSimdDeviceFunction(), and clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDistributeSimdDirective().
|
static |
Definition at line 8691 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, emitCommonOMPTeamsDirective(), clang::CodeGen::CGOpenMPRuntime::emitInlinedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), emitOMPLoopBodyWithStopPoint(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), emitPostUpdateForReductionClause(), emitTargetTeamsLoopCodegenStatus(), clang::CodeGen::PrePostActionTy::Enter(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::CodeGen::CodeGenFunction::OMPPrivateScope::Privatize(), and TTL_CODEGEN_TYPE.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsGenericLoopDeviceFunction(), and clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsGenericLoopDirective().
|
static |
Definition at line 8660 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, emitCommonOMPTeamsDirective(), clang::CodeGen::CGOpenMPRuntime::emitInlinedDirective(), emitInnerParallelForWhenCombined(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), emitPostUpdateForReductionClause(), emitTargetTeamsLoopCodegenStatus(), clang::CodeGen::PrePostActionTy::Enter(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::CodeGen::CodeGenFunction::OMPPrivateScope::Privatize(), and TTL_CODEGEN_TYPE.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsGenericLoopDeviceFunction(), and clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsGenericLoopDirective().
|
static |
Definition at line 8642 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::CGM, clang::FileName, clang::CodeGen::CodeGenFunction::getContext(), clang::PresumedLoc::getFilename(), clang::CodeGen::CodeGenModule::getLangOpts(), clang::PresumedLoc::getLine(), clang::ASTContext::getSourceManager(), clang::PresumedLoc::isValid(), and SM.
Referenced by emitTargetTeamsGenericLoopRegionAsDistribute(), and emitTargetTeamsGenericLoopRegionAsParallel().
|
static |
Definition at line 7391 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CGOpenMPRuntime::adjustTargetSpecificDataForLambdas(), clang::CodeGen::CodeGenFunction::CGM, emitCommonOMPTeamsDirective(), clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPPrivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), emitPostUpdateForReductionClause(), clang::CodeGen::CodeGenFunction::EmitStmt(), clang::CodeGen::PrePostActionTy::Enter(), clang::CapturedStmt::getCapturedStmt(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), clang::isOpenMPTargetExecutionDirective(), and clang::CodeGen::CodeGenFunction::OMPPrivateScope::Privatize().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDeviceFunction(), and clang::CodeGen::CodeGenFunction::EmitOMPTargetTeamsDirective().
|
static |
Definition at line 4317 of file CGStmtOpenMP.cpp.
References clang::C, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGOpenMPRuntime::emitBarrierCall(), emitDispatchForLoopBounds(), emitForLoopBounds(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), emitScanBasedDirective(), emitScanBasedDirectiveDecls(), emitScanBasedDirectiveFinals(), getEffectiveDirectiveKind(), clang::CodeGen::CodeGenModule::getOpenMPRuntime(), and clang::isOpenMPParallelDirective().
Referenced by emitOMPForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForSimdDirective(), and clang::CodeGen::CodeGenFunction::EmitOMPParallelGenericLoopDirective().
|
static |
Definition at line 3106 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::cast(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), clang::CodeGen::CodeGenFunction::getContext(), clang::ASTContext::getOpenMPDefaultSimdAlign(), clang::CharUnits::getQuantity(), and clang::ASTContext::toCharUnitsFromBits().
Referenced by emitOMPSimdDirective().
Definition at line 7885 of file CGStmtOpenMP.cpp.
References clang::cast(), and clang::Expr::IgnoreParenImpCasts().
|
static |
Definition at line 485 of file CGStmtOpenMP.cpp.
References clang::C, clang::Type::getAsArrayTypeUnsafe(), and getCanonicalParamType().
Referenced by emitOutlinedFunctionPrologue(), and getCanonicalParamType().
|
static |
Definition at line 363 of file CGStmtOpenMP.cpp.
References clang::C, and clang::OMPC_BIND_unknown.
Referenced by emitCommonSimdLoop(), emitInnerParallelForWhenCombined(), clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPLastprivateClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPLinearClause(), clang::CodeGen::CodeGenFunction::EmitOMPLoopBody(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPSimdInit(), emitOMPSimdRegion(), clang::CodeGen::CodeGenFunction::EmitOMPTargetTaskBasedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskBasedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), emitWorksharingDirective(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction(), and clang::CodeGen::CodeGenFunction::processInReduction().
Definition at line 2828 of file CGStmtOpenMP.cpp.
References clang::Stmt::children(), clang::CapturedStmt::getCapturedStmt(), hasOrderedDirective(), and clang::isa().
Referenced by applyConservativeSimdOrderedDirective(), and hasOrderedDirective().
Definition at line 1951 of file CGStmtOpenMP.cpp.
References clang::Decl::getAttr(), clang::VarDecl::getCanonicalDecl(), and clang::Decl::hasAttr().
|
static |
Definition at line 4363 of file CGStmtOpenMP.cpp.
References clang::C, clang::isa(), clang::OMPC_SCHEDULE_MODIFIER_unknown, and clang::OMPC_SCHEDULE_unknown.
Referenced by emitOMPForDirective().
|
static |
Definition at line 3073 of file CGStmtOpenMP.cpp.
References clang::C, clang::CapturedStmt::children(), clang::Stmt::children(), and clang::isa().
Referenced by emitOMPSimdDirective().
|
static |
Definition at line 5904 of file CGStmtOpenMP.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTaskgroupDirective().
|
static |
Emit a helper variable and return corresponding lvalue.
Definition at line 8228 of file CGStmtOpenMP.cpp.
References clang::cast(), clang::CodeGen::CodeGenFunction::GetAddrOfLocalVar(), clang::DeclRefExpr::getDecl(), and clang::Privates.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTaskLoopBasedDirective().