struct CodeGenFunction::OMPBuilderCBHelpers

Declaration

struct CodeGenFunction::OMPBuilderCBHelpers { /* full declaration omitted */ };

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1728

Method Overview

  • public static void EmitCaptureStmt(clang::CodeGen::CodeGenFunction & CGF, clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::InsertPointTy CodeGenIP, llvm::BasicBlock & FiniBB, llvm::Function * Fn, ArrayRef<llvm::Value *> Args)
  • public static void EmitOMPInlinedRegionBody(clang::CodeGen::CodeGenFunction & CGF, const clang::Stmt * RegionBodyStmt, clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::InsertPointTy AllocaIP, clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::InsertPointTy CodeGenIP, llvm::Twine RegionName)
  • public static void EmitOMPOutlinedRegionBody(clang::CodeGen::CodeGenFunction & CGF, const clang::Stmt * RegionBodyStmt, clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::InsertPointTy AllocaIP, clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::InsertPointTy CodeGenIP, llvm::Twine RegionName)
  • public static void FinalizeOMPRegion(clang::CodeGen::CodeGenFunction & CGF, clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::InsertPointTy IP)
  • public OMPBuilderCBHelpers()
  • public OMPBuilderCBHelpers(const clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers &)
  • public static clang::CodeGen::Address getAddrOfThreadPrivate(clang::CodeGen::CodeGenFunction & CGF, const clang::VarDecl * VD, clang::CodeGen::Address VDAddr, clang::SourceLocation Loc)
  • public static clang::CodeGen::Address getAddressOfLocalVariable(clang::CodeGen::CodeGenFunction & CGF, const clang::VarDecl * VD)
  • public static std::string getNameWithSeparators(ArrayRef<llvm::StringRef> Parts, llvm::StringRef FirstSeparator = ".", llvm::StringRef Separator = ".")

Methods

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

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1808

Parameters

clang::CodeGen::CodeGenFunction& CGF
clang::CodeGen::CodeGenFunction:: OMPBuilderCBHelpers::InsertPointTy CodeGenIP
llvm::BasicBlock& FiniBB
llvm::Function* Fn
ArrayRef<llvm::Value*> Args

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

Description

Emit the body of an OMP region

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1802

Parameters

clang::CodeGen::CodeGenFunction& CGF
The Codegen function this belongs to
const clang::Stmt* RegionBodyStmt
The body statement for the OpenMP region being generated
clang::CodeGen::CodeGenFunction:: OMPBuilderCBHelpers::InsertPointTy AllocaIP
Where to insert alloca instructions
clang::CodeGen::CodeGenFunction:: OMPBuilderCBHelpers::InsertPointTy CodeGenIP
Where to insert the region code
llvm::Twine RegionName
Name to be used for new blocks

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

Description

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

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1834

Parameters

clang::CodeGen::CodeGenFunction& CGF
The Codegen function this belongs to
const clang::Stmt* RegionBodyStmt
The body statement for the OpenMP region being generated
clang::CodeGen::CodeGenFunction:: OMPBuilderCBHelpers::InsertPointTy AllocaIP
Where to insert alloca instructions
clang::CodeGen::CodeGenFunction:: OMPBuilderCBHelpers::InsertPointTy CodeGenIP
Where to insert the region code
llvm::Twine RegionName
Name to be used for new blocks

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

Description

Emit the Finalization for an OMP region

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1779

Parameters

clang::CodeGen::CodeGenFunction& CGF
The Codegen function this belongs to
clang::CodeGen::CodeGenFunction:: OMPBuilderCBHelpers::InsertPointTy IP
Insertion point for generating the finalization code.

OMPBuilderCBHelpers()

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1730

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

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1731

Parameters

const clang::CodeGen::CodeGenFunction:: OMPBuilderCBHelpers&

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

Description

Returns address of the threadprivate variable for the current thread. This Also create any necessary OMP runtime calls.

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1760

Parameters

clang::CodeGen::CodeGenFunction& CGF
const clang::VarDecl* VD
VarDecl for Threadprivate variable.
clang::CodeGen::Address VDAddr
Address of the Vardecl
clang::SourceLocation Loc
The location where the barrier directive was encountered

static clang::CodeGen::Address
getAddressOfLocalVariable(
    clang::CodeGen::CodeGenFunction& CGF,
    const clang::VarDecl* VD)

Description

Gets the OpenMP-specific address of the local variable /p VD.

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1765

Parameters

clang::CodeGen::CodeGenFunction& CGF
const clang::VarDecl* VD

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

Description

Get the platform-specific name separator.

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1773

Parameters

ArrayRef<llvm::StringRef> Parts
different parts of the final name that needs separation
llvm::StringRef FirstSeparator = "."
First separator used between the initial two parts of the name.
llvm::StringRef Separator = "."
separator used between all of the rest consecutinve parts of the name