clang 20.0.0git
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
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 1874 of file CodeGenFunction.h.

Member Typedef Documentation

◆ InsertPointTy

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

Definition at line 1880 of file CodeGenFunction.h.

Constructor & Destructor Documentation

◆ OMPBuilderCBHelpers() [1/2]

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

◆ OMPBuilderCBHelpers() [2/2]

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

Member Function Documentation

◆ EmitCaptureStmt()

static 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 1754 of file CGStmtOpenMP.cpp.

References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::EmitStmt().

◆ 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 1771 of file CGStmtOpenMP.cpp.

References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::EmitStmt().

◆ FinalizeOMPRegion()

static void clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::FinalizeOMPRegion ( CodeGenFunction CGF,
InsertPointTy  IP 
)
inlinestatic

Emit the Finalization for an OMP region.

Parameters
CGFThe Codegen function this belongs to
IPInsertion point for generating the finalization code.

Definition at line 1925 of file CodeGenFunction.h.

References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), and clang::CodeGen::CodeGenFunction::getJumpDestInCurrentScope().

◆ getAddressOfLocalVariable()

Address CodeGenFunction::OMPBuilderCBHelpers::getAddressOfLocalVariable ( CodeGenFunction CGF,
const VarDecl VD 
)
static

◆ getAddrOfThreadPrivate()

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

◆ 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 1742 of file CGStmtOpenMP.cpp.

Referenced by getAddressOfLocalVariable().

◆ operator=()

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

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