clang 22.0.0git
clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers Struct Reference

#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
OMPBuilderCBHelpersoperator= (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().

Detailed Description

Definition at line 1887 of file CodeGenFunction.h.

Member Typedef Documentation

◆ InsertPointTy

using clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::InsertPointTy = llvm::OpenMPIRBuilder::InsertPointTy

Definition at line 1893 of file CodeGenFunction.h.

Constructor & Destructor Documentation

◆ OMPBuilderCBHelpers() [1/2]

clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::OMPBuilderCBHelpers ( )
delete

Referenced by OMPBuilderCBHelpers(), and operator=().

◆ OMPBuilderCBHelpers() [2/2]

clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::OMPBuilderCBHelpers ( const OMPBuilderCBHelpers & )
delete

References OMPBuilderCBHelpers().

Member Function Documentation

◆ EmitCaptureStmt()

void clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::EmitCaptureStmt ( CodeGenFunction & CGF,
InsertPointTy CodeGenIP,
llvm::BasicBlock & FiniBB,
llvm::Function * Fn,
ArrayRef< llvm::Value * > Args )
inlinestatic

◆ EmitOMPInlinedRegionBody()

void CodeGenFunction::OMPBuilderCBHelpers::EmitOMPInlinedRegionBody ( CodeGenFunction & CGF,
const Stmt * RegionBodyStmt,
InsertPointTy AllocaIP,
InsertPointTy CodeGenIP,
Twine RegionName )
static

Emit the body of an OMP region.

Parameters
CGFThe Codegen function this belongs to
RegionBodyStmtThe body statement for the OpenMP region being generated
AllocaIPWhere to insert alloca instructions
CodeGenIPWhere to insert the region code
RegionNameName 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().

◆ EmitOMPOutlinedRegionBody()

void CodeGenFunction::OMPBuilderCBHelpers::EmitOMPOutlinedRegionBody ( CodeGenFunction & CGF,
const Stmt * RegionBodyStmt,
InsertPointTy AllocaIP,
InsertPointTy CodeGenIP,
Twine RegionName )
static

Emit the body of an OMP region that will be outlined in OpenMPIRBuilder::finalize().

Parameters
CGFThe Codegen function this belongs to
RegionBodyStmtThe body statement for the OpenMP region being generated
AllocaIPWhere to insert alloca instructions
CodeGenIPWhere to insert the region code
RegionNameName 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().

◆ FinalizeOMPRegion()

◆ getAddressOfLocalVariable()

◆ getAddrOfThreadPrivate()

Address CodeGenFunction::OMPBuilderCBHelpers::getAddrOfThreadPrivate ( CodeGenFunction & CGF,
const VarDecl * VD,
Address VDAddr,
SourceLocation Loc )
static

Returns address of the threadprivate variable for the current thread.

This Also create any necessary OMP runtime calls.

Parameters
VDVarDecl for Threadprivate variable.
VDAddrAddress of the Vardecl
LocThe 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().

◆ getNameWithSeparators()

std::string CodeGenFunction::OMPBuilderCBHelpers::getNameWithSeparators ( ArrayRef< StringRef > Parts,
StringRef FirstSeparator = ".",
StringRef Separator = "." )
static

Get the platform-specific name separator.

Parameters
Partsdifferent parts of the final name that needs separation
FirstSeparatorFirst separator used between the initial two parts of the name.
Separatorseparator used between all of the rest consecutinve parts of the name

Definition at line 1770 of file CGStmtOpenMP.cpp.

Referenced by getAddressOfLocalVariable(), and getAddrOfThreadPrivate().

◆ operator=()

OMPBuilderCBHelpers & clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::operator= ( const OMPBuilderCBHelpers & )
delete

References OMPBuilderCBHelpers().


The documentation for this struct was generated from the following files: