clang  3.7.0
Functions
CGStmtOpenMP.cpp File Reference
#include "CGOpenMPRuntime.h"
#include "CodeGenFunction.h"
#include "CodeGenModule.h"
#include "TargetInfo.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtOpenMP.h"
Include dependency graph for CGStmtOpenMP.cpp:

Go to the source code of this file.

Functions

static void emitCommonOMPParallelDirective (CodeGenFunction &CGF, const OMPExecutableDirective &S, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen)
 
static void emitLinearClauseFinal (CodeGenFunction &CGF, const OMPLoopDirective &D)
 
static void emitAlignedClause (CodeGenFunction &CGF, const OMPExecutableDirective &D)
 
static void emitPrivateLoopCounters (CodeGenFunction &CGF, CodeGenFunction::OMPPrivateScope &LoopScope, ArrayRef< Expr * > Counters)
 
static void emitPreCond (CodeGenFunction &CGF, const OMPLoopDirective &S, const Expr *Cond, llvm::BasicBlock *TrueBlock, llvm::BasicBlock *FalseBlock, uint64_t TrueCount)
 
static void emitPrivateLinearVars (CodeGenFunction &CGF, const OMPExecutableDirective &D, CodeGenFunction::OMPPrivateScope &PrivateScope)
 
static void emitSafelenClause (CodeGenFunction &CGF, const OMPExecutableDirective &D)
 
static LValue EmitOMPHelperVar (CodeGenFunction &CGF, const DeclRefExpr *Helper)
 Emit a helper variable and return corresponding lvalue. More...
 
static std::pair< llvm::Value
*, OpenMPScheduleClauseKind
emitScheduleClause (CodeGenFunction &CGF, const OMPLoopDirective &S, bool OuterRegion)
 
static LValue createSectionLVal (CodeGenFunction &CGF, QualType Ty, const Twine &Name, llvm::Value *Init=nullptr)
 
static llvm::ValueconvertToScalarValue (CodeGenFunction &CGF, RValue Val, QualType SrcType, QualType DestType)
 
static
CodeGenFunction::ComplexPairTy 
convertToComplexValue (CodeGenFunction &CGF, RValue Val, QualType SrcType, QualType DestType)
 
static void emitSimpleAtomicStore (CodeGenFunction &CGF, bool IsSeqCst, LValue LVal, RValue RVal)
 
static void emitSimpleStore (CodeGenFunction &CGF, LValue LVal, RValue RVal, QualType RValTy)
 
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)
 
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)
 

Function Documentation

static CodeGenFunction::ComplexPairTy convertToComplexValue ( CodeGenFunction CGF,
RValue  Val,
QualType  SrcType,
QualType  DestType 
)
static
static llvm::Value* convertToScalarValue ( CodeGenFunction CGF,
RValue  Val,
QualType  SrcType,
QualType  DestType 
)
static
static RValue convertToType ( CodeGenFunction CGF,
RValue  Value,
QualType  SourceType,
QualType  ResType 
)
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 emitLinearClauseFinal ( CodeGenFunction CGF,
const OMPLoopDirective D 
)
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

Emit a helper variable and return corresponding lvalue.

Definition at line 1009 of file CGStmtOpenMP.cpp.

References clang::CodeGen::CodeGenFunction::EmitLValue(), clang::CodeGen::CodeGenFunction::EmitVarDecl(), and clang::DeclRefExpr::getDecl().

static void emitPreCond ( CodeGenFunction CGF,
const OMPLoopDirective S,
const Expr Cond,
llvm::BasicBlock *  TrueBlock,
llvm::BasicBlock *  FalseBlock,
uint64_t  TrueCount 
)
static
static void emitPrivateLinearVars ( CodeGenFunction CGF,
const OMPExecutableDirective D,
CodeGenFunction::OMPPrivateScope PrivateScope 
)
static
static void emitPrivateLoopCounters ( CodeGenFunction CGF,
CodeGenFunction::OMPPrivateScope LoopScope,
ArrayRef< Expr * >  Counters 
)
static
static void emitSafelenClause ( CodeGenFunction CGF,
const OMPExecutableDirective D 
)
static
static std::pair<llvm::Value * , OpenMPScheduleClauseKind> emitScheduleClause ( CodeGenFunction CGF,
const OMPLoopDirective S,
bool  OuterRegion 
)
static
static void emitSimpleAtomicStore ( CodeGenFunction CGF,
bool  IsSeqCst,
LValue  LVal,
RValue  RVal 
)
static
static void emitSimpleStore ( CodeGenFunction CGF,
LValue  LVal,
RValue  RVal,
QualType  RValTy 
)
static