clang 22.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/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 46 of file CGStmtOpenMP.cpp.
Referenced by emitTargetTeamsGenericLoopRegionAsDistribute(), and emitTargetTeamsGenericLoopRegionAsParallel().
using EmittedClosureTy = std::pair<llvm::Function *, llvm::Value *> |
Definition at line 2082 of file CGStmtOpenMP.cpp.
|
static |
Definition at line 2590 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 4885 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 451 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 1580 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 4130 of file CGStmtOpenMP.cpp.
References clang::OMPC_SCHEDULE_unknown.
Referenced by emitOMPForDirective().
|
static |
Definition at line 6313 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 6300 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 6623 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 5307 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 4230 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 2352 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 1974 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 2100 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 2086 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 1636 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 6943 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::DiagnosticsEngine::Error, clang::DiagnosticsEngine::getCustomDiagID(), 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 7066 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 2682 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 3776 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 3391 of file CGStmtOpenMP.cpp.
References clang::cast(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), and clang::Expr::getType().
Referenced by emitInnerParallelForWhenCombined().
|
static |
Definition at line 3408 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 3348 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 1710 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 3282 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 3762 of file CGStmtOpenMP.cpp.
References clang::cast(), and EmitOMPHelperVar().
Referenced by emitTargetParallelForRegion(), emitTargetParallelForSimdRegion(), emitTargetParallelGenericLoopRegion(), and emitWorksharingDirective().
|
static |
Definition at line 3426 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 4603 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 4563 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 6640 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 6747 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, clang::QualType::isVolatileQualified(), V, and X.
Referenced by emitOMPAtomicExpr().
|
static |
Definition at line 6828 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 6375 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 6433 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::T, clang::Update, and X.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPAtomicSimpleUpdateExpr().
|
static |
Definition at line 6575 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 6406 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 1714 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 6160 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 4150 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 2675 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 2667 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 2885 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 2719 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 506 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::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().
|
static |
Definition at line 6176 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 1544 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 2429 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 6187 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(), clang::CodeGen::CodeGenTypeCache::Int64Ty, and clang::T.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPOrderedDirective().
|
static |
Emits the code for the directive with inscan reductions.
The code is the following:
Definition at line 3909 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::OMPPrivateScope::addPrivate(), clang::CodeGen::CodeGenFunction::Builder, clang::C, clang::cast(), clang::CodeGen::ApplyDebugLocation::CreateDefaultArtificial(), clang::CodeGen::RValue::get(), clang::CodeGen::Address::invalid(), Next, clang::CodeGen::CodeGenFunction::OMPFirstScanLoop, 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 3793 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(), 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 3845 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(), and clang::CodeGen::CodeGenTypeCache::SizeTy.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPParallelForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelForSimdDirective(), and emitWorksharingDirective().
|
static |
Definition at line 2502 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 6347 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), and clang::CodeGen::CodeGenFunction::EmitLoadOfLValue().
Referenced by emitOMPAtomicReadExpr().
|
static |
Definition at line 6339 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::EmitAtomicStore(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue().
Referenced by emitOMPAtomicWriteExpr().
|
static |
Definition at line 7863 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 7904 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 8464 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 7816 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 7031 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 7408 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 7459 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 7155 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 7200 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 8406 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 8375 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 8357 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 7110 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 4052 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 2853 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 7604 of file CGStmtOpenMP.cpp.
References clang::cast(), and clang::Expr::IgnoreParenImpCasts().
|
static |
Definition at line 465 of file CGStmtOpenMP.cpp.
References clang::C, getCanonicalParamType(), and clang::T.
Referenced by emitOutlinedFunctionPrologue(), and getCanonicalParamType().
|
static |
Definition at line 343 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 2575 of file CGStmtOpenMP.cpp.
References clang::Stmt::children(), clang::CapturedStmt::getCapturedStmt(), hasOrderedDirective(), and clang::isa().
Referenced by applyConservativeSimdOrderedDirective(), and hasOrderedDirective().
Definition at line 1699 of file CGStmtOpenMP.cpp.
References clang::Decl::getAttr(), clang::VarDecl::getCanonicalDecl(), and clang::Decl::hasAttr().
|
static |
Definition at line 4098 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 2820 of file CGStmtOpenMP.cpp.
References clang::C, clang::CapturedStmt::children(), clang::Stmt::children(), and clang::isa().
Referenced by emitOMPSimdDirective().
|
static |
Definition at line 5633 of file CGStmtOpenMP.cpp.
References clang::T.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTaskgroupDirective().
|
static |
Emit a helper variable and return corresponding lvalue.
Definition at line 7943 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::OMPPrivateScope::addPrivate(), clang::cast(), clang::CodeGen::CodeGenFunction::GetAddrOfLocalVar(), and clang::DeclRefExpr::getDecl().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPTaskLoopBasedDirective().