clang 22.0.0git
|
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CodeGenFunction.h"
Classes | |
class | InlinedRegionBodyRAII |
RAII for preserving necessary info during inlined region body codegen. More... | |
class | OMPAllocateCleanupTy |
Cleanup action for allocate support. More... | |
class | OutlinedRegionBodyRAII |
RAII for preserving necessary info during Outlined region body codegen. More... |
Public Types | |
using | InsertPointTy = llvm::OpenMPIRBuilder::InsertPointTy |
Public Member Functions | |
OMPBuilderCBHelpers ()=delete | |
OMPBuilderCBHelpers (const OMPBuilderCBHelpers &)=delete | |
OMPBuilderCBHelpers & | operator= (const OMPBuilderCBHelpers &)=delete |
Static Public Member Functions | |
static Address | getAddrOfThreadPrivate (CodeGenFunction &CGF, const VarDecl *VD, Address VDAddr, SourceLocation Loc) |
Returns address of the threadprivate variable for the current thread. | |
static Address | getAddressOfLocalVariable (CodeGenFunction &CGF, const VarDecl *VD) |
Gets the OpenMP-specific address of the local variable /p VD. | |
static std::string | getNameWithSeparators (ArrayRef< StringRef > Parts, StringRef FirstSeparator=".", StringRef Separator=".") |
Get the platform-specific name separator. | |
static void | FinalizeOMPRegion (CodeGenFunction &CGF, InsertPointTy IP) |
Emit the Finalization for an OMP region. | |
static void | EmitOMPInlinedRegionBody (CodeGenFunction &CGF, const Stmt *RegionBodyStmt, InsertPointTy AllocaIP, InsertPointTy CodeGenIP, Twine RegionName) |
Emit the body of an OMP region. | |
static void | EmitCaptureStmt (CodeGenFunction &CGF, InsertPointTy CodeGenIP, llvm::BasicBlock &FiniBB, llvm::Function *Fn, ArrayRef< llvm::Value * > Args) |
static void | EmitOMPOutlinedRegionBody (CodeGenFunction &CGF, const Stmt *RegionBodyStmt, InsertPointTy AllocaIP, InsertPointTy CodeGenIP, Twine RegionName) |
Emit the body of an OMP region that will be outlined in OpenMPIRBuilder::finalize(). |
Definition at line 1887 of file CodeGenFunction.h.
using clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::InsertPointTy = llvm::OpenMPIRBuilder::InsertPointTy |
Definition at line 1893 of file CodeGenFunction.h.
|
delete |
Referenced by OMPBuilderCBHelpers(), and operator=().
|
delete |
References OMPBuilderCBHelpers().
|
inlinestatic |
Definition at line 1967 of file CodeGenFunction.h.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::EmitNounwindRuntimeCall(), and clang::CodeGen::CodeGenFunction::EmitRuntimeCall().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPOrderedDirective().
|
static |
Emit the body of an OMP region.
CGF | The Codegen function this belongs to |
RegionBodyStmt | The body statement for the OpenMP region being generated |
AllocaIP | Where to insert alloca instructions |
CodeGenIP | Where to insert the region code |
RegionName | Name to be used for new blocks |
Definition at line 1782 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::EmitStmt().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPCriticalDirective(), clang::CodeGen::CodeGenFunction::EmitOMPMaskedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPMasterDirective(), clang::CodeGen::CodeGenFunction::EmitOMPOrderedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPSectionDirective(), and clang::CodeGen::CodeGenFunction::EmitOMPSectionsDirective().
|
static |
Emit the body of an OMP region that will be outlined in OpenMPIRBuilder::finalize().
CGF | The Codegen function this belongs to |
RegionBodyStmt | The body statement for the OpenMP region being generated |
AllocaIP | Where to insert alloca instructions |
CodeGenIP | Where to insert the region code |
RegionName | Name to be used for new blocks |
Definition at line 1799 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::EmitStmt().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPParallelDirective().
|
inlinestatic |
Emit the Finalization for an OMP region.
CGF | The Codegen function this belongs to |
IP | Insertion point for generating the finalization code. |
Definition at line 1938 of file CodeGenFunction.h.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), and clang::CodeGen::CodeGenFunction::getJumpDestInCurrentScope().
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPCriticalDirective(), clang::CodeGen::CodeGenFunction::EmitOMPMaskedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPMasterDirective(), clang::CodeGen::CodeGenFunction::EmitOMPOrderedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPParallelDirective(), and clang::CodeGen::CodeGenFunction::EmitOMPSectionDirective().
|
static |
Gets the OpenMP-specific address of the local variable /p VD.
Definition at line 1697 of file CGStmtOpenMP.cpp.
References clang::Addr, clang::CharUnits::alignTo(), clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::ConvertTypeForMem(), clang::CodeGen::CGBuilderTy::CreatePointerBitCastOrAddrSpaceCast(), clang::CodeGen::CodeGenFunction::EHStack, clang::CodeGen::CodeGenFunction::EmitScalarExpr(), clang::CharUnits::fromQuantity(), clang::Decl::getAttr(), clang::VarDecl::getCanonicalDecl(), clang::NamedDecl::getName(), getNameWithSeparators(), clang::ValueDecl::getType(), clang::CodeGen::CodeGenFunction::getTypeSize(), clang::CodeGen::Address::invalid(), isAllocatableDecl(), clang::Type::isVariablyModifiedType(), and clang::CodeGen::NormalAndEHCleanup.
Referenced by clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca().
|
static |
Returns address of the threadprivate variable for the current thread.
This Also create any necessary OMP runtime calls.
VD | VarDecl for Threadprivate variable. |
VDAddr | Address of the Vardecl |
Loc | The location where the barrier directive was encountered |
Definition at line 1747 of file CGStmtOpenMP.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, clang::Data, clang::CodeGen::Address::emitRawPointer(), clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getElementType(), and getNameWithSeparators().
Referenced by EmitThreadPrivateVarDeclLValue().
|
static |
Get the platform-specific name separator.
Parts | different parts of the final name that needs separation |
FirstSeparator | First separator used between the initial two parts of the name. |
Separator | separator used between all of the rest consecutinve parts of the name |
Definition at line 1770 of file CGStmtOpenMP.cpp.
Referenced by getAddressOfLocalVariable(), and getAddrOfThreadPrivate().
|
delete |
References OMPBuilderCBHelpers().