|
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 2312 of file CGStmtOpenMP.cpp.
|
static |
Definition at line 2820 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 5121 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 |
Definition at line 455 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 1810 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 4366 of file CGStmtOpenMP.cpp.
References clang::OMPC_SCHEDULE_unknown.
Referenced by emitOMPForDirective().
|
static |
Definition at line 6549 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 6536 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 6859 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 5543 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 4466 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 2582 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 2204 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 2330 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 2316 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 1866 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 7179 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 7299 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 2912 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 4012 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 3627 of file CGStmtOpenMP.cpp.
References clang::cast(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), and clang::Expr::getType().
Referenced by emitInnerParallelForWhenCombined().
|
static |
Definition at line 3644 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 3584 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 1940 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 3518 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 3998 of file CGStmtOpenMP.cpp.
References clang::cast(), and EmitOMPHelperVar().
Referenced by emitTargetParallelForRegion(), emitTargetParallelForSimdRegion(), emitTargetParallelGenericLoopRegion(), and emitWorksharingDirective().
|
static |
Definition at line 3662 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 4839 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 4799 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 6876 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 6983 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 7064 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 6611 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 6669 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 6811 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 6642 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 1944 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 6396 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 4386 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 2905 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 2897 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 3115 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 2949 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 510 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::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 700 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 6412 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 1774 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 2659 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 6423 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 4145 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 4029 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 4081 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 2732 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 6583 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), and clang::CodeGen::CodeGenFunction::EmitLoadOfLValue().
Referenced by emitOMPAtomicReadExpr().
|
static |
Definition at line 6575 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::EmitAtomicStore(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue().
Referenced by emitOMPAtomicWriteExpr().
|
static |
Definition at line 8100 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 8141 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 8701 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 8053 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 7264 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 7641 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 7692 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 7388 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 7433 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 8643 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 8612 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 8594 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 7343 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 4288 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 3083 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 7837 of file CGStmtOpenMP.cpp.
References clang::cast(), and clang::Expr::IgnoreParenImpCasts().
|
static |
Definition at line 469 of file CGStmtOpenMP.cpp.
References clang::C, clang::Type::getAsArrayTypeUnsafe(), and getCanonicalParamType().
Referenced by emitOutlinedFunctionPrologue(), and getCanonicalParamType().
|
static |
Definition at line 347 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 2805 of file CGStmtOpenMP.cpp.
References clang::Stmt::children(), clang::CapturedStmt::getCapturedStmt(), hasOrderedDirective(), and clang::isa().
Referenced by applyConservativeSimdOrderedDirective(), and hasOrderedDirective().
Definition at line 1929 of file CGStmtOpenMP.cpp.
References clang::Decl::getAttr(), clang::VarDecl::getCanonicalDecl(), and clang::Decl::hasAttr().
|
static |
Definition at line 4334 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 3050 of file CGStmtOpenMP.cpp.
References clang::C, clang::CapturedStmt::children(), clang::Stmt::children(), and clang::isa().
Referenced by emitOMPSimdDirective().
|
static |
Definition at line 5869 of file CGStmtOpenMP.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTaskgroupDirective().
|
static |
Emit a helper variable and return corresponding lvalue.
Definition at line 8180 of file CGStmtOpenMP.cpp.
References clang::cast(), clang::CodeGen::CodeGenFunction::GetAddrOfLocalVar(), clang::DeclRefExpr::getDecl(), and clang::Privates.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTaskLoopBasedDirective().