LLVM 20.0.0git
Classes | Namespaces | Macros | Functions
OMPIRBuilder.h File Reference
#include "llvm/Analysis/MemorySSAUpdater.h"
#include "llvm/Frontend/Atomic/Atomic.h"
#include "llvm/Frontend/OpenMP/OMPConstants.h"
#include "llvm/Frontend/OpenMP/OMPGridValues.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/Allocator.h"
#include "llvm/TargetParser/Triple.h"
#include <forward_list>
#include <map>
#include <optional>
#include "llvm/Frontend/OpenMP/OMPKinds.def"

Go to the source code of this file.

Classes

class  llvm::OpenMPIRBuilderConfig
 Captures attributes that affect generating LLVM-IR using the OpenMPIRBuilder and related classes. More...
 
struct  llvm::TargetRegionEntryInfo
 Data structure to contain the information needed to uniquely identify a target entry. More...
 
class  llvm::OffloadEntriesInfoManager
 Class that manages information about offload code regions and data. More...
 
class  llvm::OffloadEntriesInfoManager::OffloadEntryInfo
 Base class of the entries info. More...
 
class  llvm::OffloadEntriesInfoManager::OffloadEntryInfoTargetRegion
 Target region entries info. More...
 
class  llvm::OffloadEntriesInfoManager::OffloadEntryInfoDeviceGlobalVar
 Device global variable entries info. More...
 
class  llvm::OpenMPIRBuilder
 An interface to create LLVM-IR for OpenMP directives. More...
 
class  llvm::OpenMPIRBuilder::AtomicInfo
 
struct  llvm::OpenMPIRBuilder::FinalizationInfo
 
struct  llvm::OpenMPIRBuilder::LocationDescription
 Description of a LLVM-IR insertion point (IP) and a debug/source location (filename, line, column, ...). More...
 
struct  llvm::OpenMPIRBuilder::DependData
 A struct to pack the relevant information for an OpenMP depend clause. More...
 
struct  llvm::OpenMPIRBuilder::ReductionInfo
 Information about an OpenMP reduction. More...
 
struct  llvm::OpenMPIRBuilder::CopyOptionsTy
 
struct  llvm::OpenMPIRBuilder::OutlineInfo
 Helper that contains information about regions we need to outline during finalization. More...
 
struct  llvm::OpenMPIRBuilder::MapperAllocas
 
struct  llvm::OpenMPIRBuilder::TargetDataRTArgs
 Container for the arguments used to pass data to the runtime library. More...
 
struct  llvm::OpenMPIRBuilder::TargetKernelArgs
 Data structure that contains the needed information to construct the kernel args vector. More...
 
class  llvm::OpenMPIRBuilder::TargetDataInfo
 Struct that keeps the information that should be kept throughout a 'target data' region. More...
 
struct  llvm::OpenMPIRBuilder::MapInfosTy
 This structure contains combined information generated for mappable clauses, including base pointers, pointers, sizes, map types, user-defined mappers, and non-contiguous information. More...
 
struct  llvm::OpenMPIRBuilder::MapInfosTy::StructNonContiguousInfo
 
struct  llvm::OpenMPIRBuilder::AtomicOpValue
 a struct to pack relevant information while generating atomic Ops More...
 
class  llvm::CanonicalLoopInfo
 Class to represented the control flow structure of an OpenMP canonical loop. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Macros

#define OMP_TYPE(VarName, InitValue)   Type *VarName = nullptr;
 Declarations for LLVM-IR types (simple, array, function and structure) are generated below.
 
#define OMP_ARRAY_TYPE(VarName, ElemTy, ArraySize)
 
#define OMP_FUNCTION_TYPE(VarName, IsVarArg, ReturnType, ...)
 
#define OMP_STRUCT_TYPE(VarName, StrName, ...)
 

Functions

void llvm::spliceBB (IRBuilderBase::InsertPoint IP, BasicBlock *New, bool CreateBranch)
 Move the instruction after an InsertPoint to the beginning of another BasicBlock.
 
void llvm::spliceBB (IRBuilder<> &Builder, BasicBlock *New, bool CreateBranch)
 Splice a BasicBlock at an IRBuilder's current insertion point.
 
BasicBlockllvm::splitBB (IRBuilderBase::InsertPoint IP, bool CreateBranch, llvm::Twine Name={})
 Split a BasicBlock at an InsertPoint, even if the block is degenerate (missing the terminator).
 
BasicBlockllvm::splitBB (IRBuilderBase &Builder, bool CreateBranch, llvm::Twine Name={})
 Split a BasicBlock at Builder's insertion point, even if the block is degenerate (missing the terminator).
 
BasicBlockllvm::splitBB (IRBuilder<> &Builder, bool CreateBranch, llvm::Twine Name)
 Split a BasicBlock at Builder's insertion point, even if the block is degenerate (missing the terminator).
 
BasicBlockllvm::splitBBWithSuffix (IRBuilderBase &Builder, bool CreateBranch, llvm::Twine Suffix=".split")
 Like splitBB, but reuses the current block's name for the new name.
 

Macro Definition Documentation

◆ OMP_ARRAY_TYPE

#define OMP_ARRAY_TYPE (   VarName,
  ElemTy,
  ArraySize 
)
Value:
ArrayType *VarName##Ty = nullptr; \
PointerType *VarName##PtrTy = nullptr;

Definition at line 3013 of file OMPIRBuilder.h.

◆ OMP_FUNCTION_TYPE

#define OMP_FUNCTION_TYPE (   VarName,
  IsVarArg,
  ReturnType,
  ... 
)
Value:
FunctionType *VarName = nullptr; \
PointerType *VarName##Ptr = nullptr;

Definition at line 3016 of file OMPIRBuilder.h.

◆ OMP_STRUCT_TYPE

#define OMP_STRUCT_TYPE (   VarName,
  StrName,
  ... 
)
Value:
StructType *VarName = nullptr; \
PointerType *VarName##Ptr = nullptr;

Definition at line 3019 of file OMPIRBuilder.h.

◆ OMP_TYPE

#define OMP_TYPE (   VarName,
  InitValue 
)    Type *VarName = nullptr;

Declarations for LLVM-IR types (simple, array, function and structure) are generated below.

Their names are defined and used in OpenMPKinds.def. Here we provide the declarations, the initializeTypes function will provide the values.

{

Definition at line 3012 of file OMPIRBuilder.h.