clang  3.9.0
Functions
CGStmtOpenMP.cpp File Reference
#include "CGCleanup.h"
#include "CGOpenMPRuntime.h"
#include "CodeGenFunction.h"
#include "CodeGenModule.h"
#include "TargetInfo.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtOpenMP.h"
#include "clang/AST/DeclOpenMP.h"
#include "llvm/IR/CallSite.h"
Include dependency graph for CGStmtOpenMP.cpp:

Go to the source code of this file.

Functions

static Address castValueFromUintptr (CodeGenFunction &CGF, QualType DstType, StringRef Name, LValue AddrLV, bool isReferenceType=false)
 
static const
OMPDeclareReductionDecl
getReductionInit (const Expr *ReductionOp)
 Check if the combiner is a call to UDR combiner and if it is so return the UDR decl used for reduction. More...
 
static void emitInitWithReductionInitializer (CodeGenFunction &CGF, const OMPDeclareReductionDecl *DRD, const Expr *InitOp, Address Private, Address Original, QualType Ty)
 
static void EmitOMPAggregateInit (CodeGenFunction &CGF, Address DestAddr, QualType Type, const Expr *Init, Address SrcAddr=Address::invalid())
 Emit initialization of arrays of complex types. More...
 
static Address castToBase (CodeGenFunction &CGF, QualType BaseTy, QualType ElTy, LValue BaseLV, llvm::Value *Addr)
 
static LValue loadToBegin (CodeGenFunction &CGF, QualType BaseTy, QualType ElTy, LValue BaseLV)
 
static void emitPostUpdateForReductionClause (CodeGenFunction &CGF, const OMPExecutableDirective &D, const llvm::function_ref< llvm::Value *(CodeGenFunction &)> &CondGen)
 
static void emitCommonOMPParallelDirective (CodeGenFunction &CGF, const OMPExecutableDirective &S, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen)
 
static void emitAlignedClause (CodeGenFunction &CGF, const OMPExecutableDirective &D)
 
static void emitPreCond (CodeGenFunction &CGF, const OMPLoopDirective &S, const Expr *Cond, llvm::BasicBlock *TrueBlock, llvm::BasicBlock *FalseBlock, uint64_t TrueCount)
 
static void emitSimdlenSafelenClause (CodeGenFunction &CGF, const OMPExecutableDirective &D, bool IsMonotonic)
 
static LValue EmitOMPHelperVar (CodeGenFunction &CGF, const DeclRefExpr *Helper)
 Emit a helper variable and return corresponding lvalue. More...
 
static LValue createSectionLVal (CodeGenFunction &CGF, QualType Ty, const Twine &Name, llvm::Value *Init=nullptr)
 
static llvm::Function * emitOutlinedOrderedFunction (CodeGenModule &CGM, const CapturedStmt *S)
 
static llvm::ValueconvertToScalarValue (CodeGenFunction &CGF, RValue Val, QualType SrcType, QualType DestType, SourceLocation Loc)
 
static
CodeGenFunction::ComplexPairTy 
convertToComplexValue (CodeGenFunction &CGF, RValue Val, QualType SrcType, QualType DestType, SourceLocation Loc)
 
static void emitSimpleAtomicStore (CodeGenFunction &CGF, bool IsSeqCst, LValue LVal, RValue RVal)
 
static void EmitOMPAtomicReadExpr (CodeGenFunction &CGF, bool IsSeqCst, const Expr *X, const Expr *V, SourceLocation Loc)
 
static void EmitOMPAtomicWriteExpr (CodeGenFunction &CGF, bool IsSeqCst, const Expr *X, const Expr *E, SourceLocation Loc)
 
static std::pair< bool, RValueemitOMPAtomicRMW (CodeGenFunction &CGF, LValue X, RValue Update, BinaryOperatorKind BO, llvm::AtomicOrdering AO, bool IsXLHSInRHSPart)
 
static void EmitOMPAtomicUpdateExpr (CodeGenFunction &CGF, bool IsSeqCst, const Expr *X, const Expr *E, const Expr *UE, bool IsXLHSInRHSPart, SourceLocation Loc)
 
static RValue convertToType (CodeGenFunction &CGF, RValue Value, QualType SourceType, QualType ResType, SourceLocation Loc)
 
static void EmitOMPAtomicCaptureExpr (CodeGenFunction &CGF, bool IsSeqCst, bool IsPostfixUpdate, const Expr *V, const Expr *X, const Expr *E, const Expr *UE, bool IsXLHSInRHSPart, SourceLocation Loc)
 
static void EmitOMPAtomicExpr (CodeGenFunction &CGF, OpenMPClauseKind Kind, bool IsSeqCst, bool IsPostfixUpdate, const Expr *X, const Expr *V, const Expr *E, const Expr *UE, bool IsXLHSInRHSPart, SourceLocation Loc)
 
static void emitCommonOMPTeamsDirective (CodeGenFunction &CGF, const OMPExecutableDirective &S, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen)
 
static void mapParam (CodeGenFunction &CGF, const DeclRefExpr *Helper, const ImplicitParamDecl *PVD, CodeGenFunction::OMPPrivateScope &Privates)
 Emit a helper variable and return corresponding lvalue. More...
 

Function Documentation

static Address castToBase ( CodeGenFunction CGF,
QualType  BaseTy,
QualType  ElTy,
LValue  BaseLV,
llvm::Value Addr 
)
static
static Address castValueFromUintptr ( CodeGenFunction CGF,
QualType  DstType,
StringRef  Name,
LValue  AddrLV,
bool  isReferenceType = false 
)
static
static CodeGenFunction::ComplexPairTy convertToComplexValue ( CodeGenFunction CGF,
RValue  Val,
QualType  SrcType,
QualType  DestType,
SourceLocation  Loc 
)
static
static llvm::Value* convertToScalarValue ( CodeGenFunction CGF,
RValue  Val,
QualType  SrcType,
QualType  DestType,
SourceLocation  Loc 
)
static
static RValue convertToType ( CodeGenFunction CGF,
RValue  Value,
QualType  SourceType,
QualType  ResType,
SourceLocation  Loc 
)
static
static LValue createSectionLVal ( CodeGenFunction CGF,
QualType  Ty,
const Twine &  Name,
llvm::Value Init = nullptr 
)
static
static void emitAlignedClause ( CodeGenFunction CGF,
const OMPExecutableDirective D 
)
static
static void emitCommonOMPParallelDirective ( CodeGenFunction CGF,
const OMPExecutableDirective S,
OpenMPDirectiveKind  InnermostKind,
const RegionCodeGenTy CodeGen 
)
static
static void emitCommonOMPTeamsDirective ( CodeGenFunction CGF,
const OMPExecutableDirective S,
OpenMPDirectiveKind  InnermostKind,
const RegionCodeGenTy CodeGen 
)
static
static void emitInitWithReductionInitializer ( CodeGenFunction CGF,
const OMPDeclareReductionDecl DRD,
const Expr InitOp,
Address  Private,
Address  Original,
QualType  Ty 
)
static
static void EmitOMPAggregateInit ( CodeGenFunction CGF,
Address  DestAddr,
QualType  Type,
const Expr Init,
Address  SrcAddr = Address::invalid() 
)
static
static void EmitOMPAtomicCaptureExpr ( CodeGenFunction CGF,
bool  IsSeqCst,
bool  IsPostfixUpdate,
const Expr V,
const Expr X,
const Expr E,
const Expr UE,
bool  IsXLHSInRHSPart,
SourceLocation  Loc 
)
static
static void EmitOMPAtomicExpr ( CodeGenFunction CGF,
OpenMPClauseKind  Kind,
bool  IsSeqCst,
bool  IsPostfixUpdate,
const Expr X,
const Expr V,
const Expr E,
const Expr UE,
bool  IsXLHSInRHSPart,
SourceLocation  Loc 
)
static
static void EmitOMPAtomicReadExpr ( CodeGenFunction CGF,
bool  IsSeqCst,
const Expr X,
const Expr V,
SourceLocation  Loc 
)
static
static std::pair<bool, RValue> emitOMPAtomicRMW ( CodeGenFunction CGF,
LValue  X,
RValue  Update,
BinaryOperatorKind  BO,
llvm::AtomicOrdering  AO,
bool  IsXLHSInRHSPart 
)
static
static void EmitOMPAtomicUpdateExpr ( CodeGenFunction CGF,
bool  IsSeqCst,
const Expr X,
const Expr E,
const Expr UE,
bool  IsXLHSInRHSPart,
SourceLocation  Loc 
)
static
static void EmitOMPAtomicWriteExpr ( CodeGenFunction CGF,
bool  IsSeqCst,
const Expr X,
const Expr E,
SourceLocation  Loc 
)
static
static LValue EmitOMPHelperVar ( CodeGenFunction CGF,
const DeclRefExpr Helper 
)
static
static llvm::Function* emitOutlinedOrderedFunction ( CodeGenModule CGM,
const CapturedStmt S 
)
static
static void emitPostUpdateForReductionClause ( CodeGenFunction CGF,
const OMPExecutableDirective D,
const llvm::function_ref< llvm::Value *(CodeGenFunction &)> &  CondGen 
)
static
static void emitPreCond ( CodeGenFunction CGF,
const OMPLoopDirective S,
const Expr Cond,
llvm::BasicBlock *  TrueBlock,
llvm::BasicBlock *  FalseBlock,
uint64_t  TrueCount 
)
static
static void emitSimdlenSafelenClause ( CodeGenFunction CGF,
const OMPExecutableDirective D,
bool  IsMonotonic 
)
static
static void emitSimpleAtomicStore ( CodeGenFunction CGF,
bool  IsSeqCst,
LValue  LVal,
RValue  RVal 
)
static
static const OMPDeclareReductionDecl* getReductionInit ( const Expr ReductionOp)
static

Check if the combiner is a call to UDR combiner and if it is so return the UDR decl used for reduction.

Definition at line 387 of file CGStmtOpenMP.cpp.

Referenced by EmitOMPAggregateInit(), and clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit().

static LValue loadToBegin ( CodeGenFunction CGF,
QualType  BaseTy,
QualType  ElTy,
LValue  BaseLV 
)
static
static void mapParam ( CodeGenFunction CGF,
const DeclRefExpr Helper,
const ImplicitParamDecl PVD,
CodeGenFunction::OMPPrivateScope Privates 
)
static