LLVM OpenMP 19.0.0git
Classes | Macros | Typedefs | Functions | Variables
kmp_alloc.cpp File Reference
#include "kmp.h"
#include "kmp_io.h"
#include "kmp_wrapper_malloc.h"

Go to the source code of this file.

Classes

struct  kmp_mem_desc
 
struct  kmp_mem_descr
 

Macros

#define IS_POWER_OF_TWO(n)   (((n) & ((n)-1)) == 0)
 
#define KMP_IS_TARGET_MEM_SPACE(MS)
 
#define KMP_IS_TARGET_MEM_ALLOC(MA)
 

Typedefs

typedef struct kmp_mem_desc kmp_mem_desc_t
 
typedef struct kmp_mem_descr kmp_mem_descr_t
 

Functions

voidkmpc_malloc (size_t size)
 
voidkmpc_aligned_malloc (size_t size, size_t alignment)
 
voidkmpc_calloc (size_t nelem, size_t elsize)
 
voidkmpc_realloc (void *ptr, size_t size)
 
void kmpc_free (void *ptr)
 
void___kmp_thread_malloc (kmp_info_t *th, size_t size KMP_SRC_LOC_DECL)
 
void___kmp_thread_calloc (kmp_info_t *th, size_t nelem, size_t elsize KMP_SRC_LOC_DECL)
 
void___kmp_thread_realloc (kmp_info_t *th, void *ptr, size_t size KMP_SRC_LOC_DECL)
 
void ___kmp_thread_free (kmp_info_t *th, void *ptr KMP_SRC_LOC_DECL)
 
void __kmp_init_memkind ()
 
void __kmp_fini_memkind ()
 
void __kmp_init_target_mem ()
 
omp_allocator_handle_t __kmpc_init_allocator (int gtid, omp_memspace_handle_t ms, int ntraits, omp_alloctrait_t traits[])
 
void __kmpc_destroy_allocator (int gtid, omp_allocator_handle_t allocator)
 
void __kmpc_set_default_allocator (int gtid, omp_allocator_handle_t allocator)
 
omp_allocator_handle_t __kmpc_get_default_allocator (int gtid)
 
void__kmpc_alloc (int gtid, size_t size, omp_allocator_handle_t allocator)
 
void__kmpc_aligned_alloc (int gtid, size_t algn, size_t size, omp_allocator_handle_t allocator)
 
void__kmpc_calloc (int gtid, size_t nmemb, size_t size, omp_allocator_handle_t allocator)
 
void__kmpc_realloc (int gtid, void *ptr, size_t size, omp_allocator_handle_t allocator, omp_allocator_handle_t free_allocator)
 
void __kmpc_free (int gtid, void *ptr, omp_allocator_handle_t allocator)
 
void__kmp_alloc (int gtid, size_t algn, size_t size, omp_allocator_handle_t allocator)
 
void__kmp_calloc (int gtid, size_t algn, size_t nmemb, size_t size, omp_allocator_handle_t allocator)
 
void__kmp_realloc (int gtid, void *ptr, size_t size, omp_allocator_handle_t allocator, omp_allocator_handle_t free_allocator)
 
void ___kmpc_free (int gtid, void *ptr, omp_allocator_handle_t allocator)
 
static void___kmp_allocate_align (size_t size, size_t alignment KMP_SRC_LOC_DECL)
 
void___kmp_allocate (size_t size KMP_SRC_LOC_DECL)
 
void___kmp_page_allocate (size_t size KMP_SRC_LOC_DECL)
 
void ___kmp_free (void *ptr KMP_SRC_LOC_DECL)
 

Variables

static const charkmp_mk_lib_name
 
static voidh_memkind
 
static void *(* kmp_mk_alloc )(void *k, size_t sz)
 
static void(* kmp_mk_free )(void *kind, void *ptr)
 
static int(* kmp_mk_check )(void *kind)
 
static void ** mk_default
 
static void ** mk_interleave
 
static void ** mk_hbw
 
static void ** mk_hbw_interleave
 
static void ** mk_hbw_preferred
 
static void ** mk_hugetlb
 
static void ** mk_hbw_hugetlb
 
static void ** mk_hbw_preferred_hugetlb
 
static void ** mk_dax_kmem
 
static void ** mk_dax_kmem_all
 
static void ** mk_dax_kmem_preferred
 
static void *(* kmp_target_alloc_host )(size_t size, int device)
 
static void *(* kmp_target_alloc_shared )(size_t size, int device)
 
static void *(* kmp_target_alloc_device )(size_t size, int device)
 
static void *(* kmp_target_lock_mem )(void *ptr, size_t size, int device)
 
static void *(* kmp_target_unlock_mem )(void *ptr, int device)
 
static void *(* kmp_target_free_host )(void *ptr, int device)
 
static void *(* kmp_target_free_shared )(void *ptr, int device)
 
static void *(* kmp_target_free_device )(void *ptr, int device)
 
static bool __kmp_target_mem_available
 
static int alignment = sizeof(void *)
 

Macro Definition Documentation

◆ IS_POWER_OF_TWO

#define IS_POWER_OF_TWO (   n)    (((n) & ((n)-1)) == 0)

Definition at line 1107 of file kmp_alloc.cpp.

◆ KMP_IS_TARGET_MEM_ALLOC

#define KMP_IS_TARGET_MEM_ALLOC (   MA)
Value:
omp_allocator_handle_t const llvm_omp_target_host_mem_alloc
Definition: kmp_global.cpp:321
omp_allocator_handle_t const llvm_omp_target_shared_mem_alloc
Definition: kmp_global.cpp:323
omp_allocator_handle_t const llvm_omp_target_device_mem_alloc
Definition: kmp_global.cpp:325

Definition at line 1258 of file kmp_alloc.cpp.

◆ KMP_IS_TARGET_MEM_SPACE

#define KMP_IS_TARGET_MEM_SPACE (   MS)
Value:
omp_memspace_handle_t const llvm_omp_target_host_mem_space
Definition: kmp_global.cpp:341
omp_memspace_handle_t const llvm_omp_target_shared_mem_space
Definition: kmp_global.cpp:343
omp_memspace_handle_t const llvm_omp_target_device_mem_space
Definition: kmp_global.cpp:345

Definition at line 1254 of file kmp_alloc.cpp.

Typedef Documentation

◆ kmp_mem_desc_t

typedef struct kmp_mem_desc kmp_mem_desc_t

◆ kmp_mem_descr_t

Definition at line 1907 of file kmp_alloc.cpp.

Function Documentation

◆ ___kmp_allocate()

void * ___kmp_allocate ( size_t size  KMP_SRC_LOC_DECL)

◆ ___kmp_allocate_align()

static void * ___kmp_allocate_align ( size_t  size,
size_t alignment  KMP_SRC_LOC_DECL 
)
static

◆ ___kmp_free()

void ___kmp_free ( void *ptr  KMP_SRC_LOC_DECL)

◆ ___kmp_page_allocate()

void * ___kmp_page_allocate ( size_t size  KMP_SRC_LOC_DECL)

Definition at line 2010 of file kmp_alloc.cpp.

References ___kmp_allocate_align(), KE_TRACE, KMP_SRC_LOC_PARM, and size.

◆ ___kmp_thread_calloc()

void * ___kmp_thread_calloc ( kmp_info_t th,
size_t  nelem,
size_t elsize  KMP_SRC_LOC_DECL 
)

Definition at line 1194 of file kmp_alloc.cpp.

References KE_TRACE, and KMP_SRC_LOC_PARM.

◆ ___kmp_thread_free()

void ___kmp_thread_free ( kmp_info_t th,
void *ptr  KMP_SRC_LOC_DECL 
)

Definition at line 1213 of file kmp_alloc.cpp.

References KE_TRACE, and KMP_SRC_LOC_PARM.

◆ ___kmp_thread_malloc()

void * ___kmp_thread_malloc ( kmp_info_t th,
size_t size  KMP_SRC_LOC_DECL 
)

Definition at line 1185 of file kmp_alloc.cpp.

References KE_TRACE, KMP_SRC_LOC_PARM, and size.

◆ ___kmp_thread_realloc()

void * ___kmp_thread_realloc ( kmp_info_t th,
void ptr,
size_t size  KMP_SRC_LOC_DECL 
)

Definition at line 1204 of file kmp_alloc.cpp.

References KE_TRACE, KMP_SRC_LOC_PARM, and size.

◆ ___kmpc_free()

void ___kmpc_free ( int  gtid,
void ptr,
omp_allocator_handle_t  allocator 
)

◆ __kmp_alloc()

void * __kmp_alloc ( int  gtid,
size_t  algn,
size_t  size,
omp_allocator_handle_t  allocator 
)

◆ __kmp_calloc()

void * __kmp_calloc ( int  gtid,
size_t  algn,
size_t  nmemb,
size_t  size,
omp_allocator_handle_t  allocator 
)

◆ __kmp_fini_memkind()

void __kmp_fini_memkind ( )

◆ __kmp_init_memkind()

void __kmp_init_memkind ( )

◆ __kmp_init_target_mem()

void __kmp_init_target_mem ( )

◆ __kmp_realloc()

void * __kmp_realloc ( int  gtid,
void ptr,
size_t  size,
omp_allocator_handle_t  allocator,
omp_allocator_handle_t  free_allocator 
)

◆ __kmpc_aligned_alloc()

void * __kmpc_aligned_alloc ( int  gtid,
size_t  algn,
size_t  size,
omp_allocator_handle_t  allocator 
)

Definition at line 1510 of file kmp_alloc.cpp.

References __kmp_alloc(), KE_TRACE, and size.

◆ __kmpc_alloc()

void * __kmpc_alloc ( int  gtid,
size_t  size,
omp_allocator_handle_t  allocator 
)

Definition at line 1503 of file kmp_alloc.cpp.

References __kmp_alloc(), KE_TRACE, and size.

◆ __kmpc_calloc()

void * __kmpc_calloc ( int  gtid,
size_t  nmemb,
size_t  size,
omp_allocator_handle_t  allocator 
)

Definition at line 1519 of file kmp_alloc.cpp.

References __kmp_calloc(), KE_TRACE, and size.

◆ __kmpc_destroy_allocator()

void __kmpc_destroy_allocator ( int  gtid,
omp_allocator_handle_t  allocator 
)

Definition at line 1478 of file kmp_alloc.cpp.

References __kmp_free, and kmp_max_mem_alloc.

Referenced by FTN_DESTROY_ALLOCATOR().

◆ __kmpc_free()

void __kmpc_free ( int  gtid,
void ptr,
omp_allocator_handle_t  allocator 
)

Definition at line 1538 of file kmp_alloc.cpp.

References ___kmpc_free(), and KE_TRACE.

◆ __kmpc_get_default_allocator()

omp_allocator_handle_t __kmpc_get_default_allocator ( int  gtid)

Definition at line 1489 of file kmp_alloc.cpp.

References __kmp_threads.

Referenced by FTN_GET_DEFAULT_ALLOCATOR().

◆ __kmpc_init_allocator()

omp_allocator_handle_t __kmpc_init_allocator ( int  gtid,
omp_memspace_handle_t  ms,
int  ntraits,
omp_alloctrait_t  traits[] 
)

◆ __kmpc_realloc()

void * __kmpc_realloc ( int  gtid,
void ptr,
size_t  size,
omp_allocator_handle_t  allocator,
omp_allocator_handle_t  free_allocator 
)

Definition at line 1528 of file kmp_alloc.cpp.

References __kmp_realloc(), KE_TRACE, and size.

◆ __kmpc_set_default_allocator()

void __kmpc_set_default_allocator ( int  gtid,
omp_allocator_handle_t  allocator 
)

Definition at line 1483 of file kmp_alloc.cpp.

References __kmp_threads, omp_default_mem_alloc, and omp_null_allocator.

Referenced by FTN_SET_DEFAULT_ALLOCATOR().

◆ kmpc_aligned_malloc()

void * kmpc_aligned_malloc ( size_t  size,
size_t  alignment 
)

Definition at line 1109 of file kmp_alloc.cpp.

References __kmp_entry_thread(), alignment, IS_POWER_OF_TWO, KMP_DEBUG_ASSERT, and size.

Referenced by FTN_ALIGNED_MALLOC().

◆ kmpc_calloc()

void * kmpc_calloc ( size_t  nelem,
size_t  elsize 
)

Definition at line 1131 of file kmp_alloc.cpp.

References __kmp_entry_thread().

Referenced by FTN_CALLOC().

◆ kmpc_free()

void kmpc_free ( void ptr)

Definition at line 1172 of file kmp_alloc.cpp.

References __kmp_get_thread, __kmp_init_serial, and KMP_ASSERT.

Referenced by FTN_KFREE().

◆ kmpc_malloc()

void * kmpc_malloc ( size_t  size)

Definition at line 1096 of file kmp_alloc.cpp.

References __kmp_entry_thread(), and size.

Referenced by FTN_MALLOC().

◆ kmpc_realloc()

void * kmpc_realloc ( void ptr,
size_t  size 
)

Definition at line 1142 of file kmp_alloc.cpp.

References __kmp_entry_thread(), __kmp_get_thread, KMP_ASSERT, result, and size.

Referenced by FTN_REALLOC().

Variable Documentation

◆ __kmp_target_mem_available

bool __kmp_target_mem_available
static

◆ alignment

int alignment = sizeof(void *)
static

◆ h_memkind

void* h_memkind
static

Definition at line 1225 of file kmp_alloc.cpp.

Referenced by __kmp_fini_memkind(), and __kmp_init_memkind().

◆ kmp_mk_alloc

void *(* kmp_mk_alloc) (void *k, size_t sz) ( void k,
size_t  sz 
)
static

Definition at line 1228 of file kmp_alloc.cpp.

Referenced by __kmp_alloc(), __kmp_fini_memkind(), and __kmp_init_memkind().

◆ kmp_mk_check

int(* kmp_mk_check) (void *kind) ( void kind)
static

Definition at line 1232 of file kmp_alloc.cpp.

Referenced by __kmp_fini_memkind(), and __kmp_init_memkind().

◆ kmp_mk_free

void(* kmp_mk_free) (void *kind, void *ptr) ( void kind,
void ptr 
)
static

Definition at line 1230 of file kmp_alloc.cpp.

Referenced by ___kmpc_free(), __kmp_fini_memkind(), and __kmp_init_memkind().

◆ kmp_mk_lib_name

const char* kmp_mk_lib_name
static

Definition at line 1224 of file kmp_alloc.cpp.

Referenced by __kmp_init_memkind().

◆ kmp_target_alloc_device

void *(* kmp_target_alloc_device) (size_t size, int device) ( size_t  size,
int  device 
)
static

Definition at line 1247 of file kmp_alloc.cpp.

Referenced by __kmp_alloc(), and __kmp_init_target_mem().

◆ kmp_target_alloc_host

void *(* kmp_target_alloc_host) (size_t size, int device) ( size_t  size,
int  device 
)
static

Definition at line 1245 of file kmp_alloc.cpp.

Referenced by __kmp_alloc(), and __kmp_init_target_mem().

◆ kmp_target_alloc_shared

void *(* kmp_target_alloc_shared) (size_t size, int device) ( size_t  size,
int  device 
)
static

Definition at line 1246 of file kmp_alloc.cpp.

Referenced by __kmp_alloc(), and __kmp_init_target_mem().

◆ kmp_target_free_device

void *(* kmp_target_free_device) (void *ptr, int device) ( void ptr,
int  device 
)
static

Definition at line 1252 of file kmp_alloc.cpp.

Referenced by ___kmpc_free(), and __kmp_init_target_mem().

◆ kmp_target_free_host

void *(* kmp_target_free_host) (void *ptr, int device) ( void ptr,
int  device 
)
static

Definition at line 1250 of file kmp_alloc.cpp.

Referenced by ___kmpc_free(), and __kmp_init_target_mem().

◆ kmp_target_free_shared

void *(* kmp_target_free_shared) (void *ptr, int device) ( void ptr,
int  device 
)
static

Definition at line 1251 of file kmp_alloc.cpp.

Referenced by ___kmpc_free(), and __kmp_init_target_mem().

◆ kmp_target_lock_mem

void *(* kmp_target_lock_mem) (void *ptr, size_t size, int device) ( void ptr,
size_t  size,
int  device 
)
static

Definition at line 1248 of file kmp_alloc.cpp.

Referenced by __kmp_alloc(), and __kmp_init_target_mem().

◆ kmp_target_unlock_mem

void *(* kmp_target_unlock_mem) (void *ptr, int device) ( void ptr,
int  device 
)
static

Definition at line 1249 of file kmp_alloc.cpp.

Referenced by ___kmpc_free(), and __kmp_init_target_mem().

◆ mk_dax_kmem

void** mk_dax_kmem
static

Definition at line 1242 of file kmp_alloc.cpp.

Referenced by __kmp_fini_memkind(), __kmp_init_memkind(), and __kmpc_init_allocator().

◆ mk_dax_kmem_all

void** mk_dax_kmem_all
static

◆ mk_dax_kmem_preferred

void** mk_dax_kmem_preferred
static

Definition at line 1244 of file kmp_alloc.cpp.

Referenced by __kmp_fini_memkind(), and __kmp_init_memkind().

◆ mk_default

void** mk_default
static

◆ mk_hbw

void** mk_hbw
static

Definition at line 1236 of file kmp_alloc.cpp.

Referenced by __kmp_fini_memkind(), and __kmp_init_memkind().

◆ mk_hbw_hugetlb

void** mk_hbw_hugetlb
static

Definition at line 1240 of file kmp_alloc.cpp.

Referenced by __kmp_fini_memkind(), and __kmp_init_memkind().

◆ mk_hbw_interleave

void** mk_hbw_interleave
static

Definition at line 1237 of file kmp_alloc.cpp.

Referenced by __kmp_fini_memkind(), __kmp_init_memkind(), and __kmpc_init_allocator().

◆ mk_hbw_preferred

void** mk_hbw_preferred
static

◆ mk_hbw_preferred_hugetlb

void** mk_hbw_preferred_hugetlb
static

Definition at line 1241 of file kmp_alloc.cpp.

Referenced by __kmp_fini_memkind(), and __kmp_init_memkind().

◆ mk_hugetlb

void** mk_hugetlb
static

Definition at line 1239 of file kmp_alloc.cpp.

Referenced by __kmp_fini_memkind(), and __kmp_init_memkind().

◆ mk_interleave

void** mk_interleave
static

Definition at line 1235 of file kmp_alloc.cpp.

Referenced by __kmp_fini_memkind(), __kmp_init_memkind(), and __kmpc_init_allocator().