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::TargetKernelDefaultAttrs
 Container to pass the default attributes with which a kernel must be launched, used to set kernel attributes and populate associated static structures. More...
 
struct  llvm::OpenMPIRBuilder::TargetKernelRuntimeAttrs
 Container to pass LLVM IR runtime values or constants related to the number of teams and threads with which the kernel must be launched, as well as the trip count of the loop, if it is an SPMD or Generic-SPMD kernel. 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 3051 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 3054 of file OMPIRBuilder.h.

◆ OMP_STRUCT_TYPE

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

Definition at line 3057 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 3050 of file OMPIRBuilder.h.