LLVM 19.0.0git
Functions

Functions in this group relate to indirect functions. More...

Collaboration diagram for IFuncs:

Functions

LLVMValueRef LLVMAddGlobalIFunc (LLVMModuleRef M, const char *Name, size_t NameLen, LLVMTypeRef Ty, unsigned AddrSpace, LLVMValueRef Resolver)
 Add a global indirect function to a module under a specified name.
 
LLVMValueRef LLVMGetNamedGlobalIFunc (LLVMModuleRef M, const char *Name, size_t NameLen)
 Obtain a GlobalIFunc value from a Module by its name.
 
LLVMValueRef LLVMGetFirstGlobalIFunc (LLVMModuleRef M)
 Obtain an iterator to the first GlobalIFunc in a Module.
 
LLVMValueRef LLVMGetLastGlobalIFunc (LLVMModuleRef M)
 Obtain an iterator to the last GlobalIFunc in a Module.
 
LLVMValueRef LLVMGetNextGlobalIFunc (LLVMValueRef IFunc)
 Advance a GlobalIFunc iterator to the next GlobalIFunc.
 
LLVMValueRef LLVMGetPreviousGlobalIFunc (LLVMValueRef IFunc)
 Decrement a GlobalIFunc iterator to the previous GlobalIFunc.
 
LLVMValueRef LLVMGetGlobalIFuncResolver (LLVMValueRef IFunc)
 Retrieves the resolver function associated with this indirect function, or NULL if it doesn't not exist.
 
void LLVMSetGlobalIFuncResolver (LLVMValueRef IFunc, LLVMValueRef Resolver)
 Sets the resolver function associated with this indirect function.
 
void LLVMEraseGlobalIFunc (LLVMValueRef IFunc)
 Remove a global indirect function from its parent module and delete it.
 
void LLVMRemoveGlobalIFunc (LLVMValueRef IFunc)
 Remove a global indirect function from its parent module.
 

Detailed Description

Functions in this group relate to indirect functions.

Functions in this group expect LLVMValueRef instances that correspond to llvm::GlobalIFunc instances.

Function Documentation

◆ LLVMAddGlobalIFunc()

LLVMValueRef LLVMAddGlobalIFunc ( LLVMModuleRef  M,
const char Name,
size_t  NameLen,
LLVMTypeRef  Ty,
unsigned  AddrSpace,
LLVMValueRef  Resolver 
)

Add a global indirect function to a module under a specified name.

See also
llvm::GlobalIFunc::create()

Definition at line 2566 of file Core.cpp.

References llvm::GlobalIFunc::create(), llvm::GlobalValue::ExternalLinkage, Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMEraseGlobalIFunc()

void LLVMEraseGlobalIFunc ( LLVMValueRef  IFunc)

Remove a global indirect function from its parent module and delete it.

See also
llvm::GlobalIFunc::eraseFromParent()

Definition at line 2621 of file Core.cpp.

◆ LLVMGetFirstGlobalIFunc()

LLVMValueRef LLVMGetFirstGlobalIFunc ( LLVMModuleRef  M)

Obtain an iterator to the first GlobalIFunc in a Module.

See also
llvm::Module::ifunc_begin()

Definition at line 2581 of file Core.cpp.

References I, llvm::Module::ifunc_begin(), llvm::Module::ifunc_end(), Mod, llvm::unwrap(), and llvm::wrap().

◆ LLVMGetGlobalIFuncResolver()

LLVMValueRef LLVMGetGlobalIFuncResolver ( LLVMValueRef  IFunc)

Retrieves the resolver function associated with this indirect function, or NULL if it doesn't not exist.

See also
llvm::GlobalIFunc::getResolver()

Definition at line 2613 of file Core.cpp.

References llvm::wrap().

◆ LLVMGetLastGlobalIFunc()

LLVMValueRef LLVMGetLastGlobalIFunc ( LLVMModuleRef  M)

Obtain an iterator to the last GlobalIFunc in a Module.

See also
llvm::Module::ifunc_end()

Definition at line 2589 of file Core.cpp.

References I, llvm::Module::ifunc_begin(), llvm::Module::ifunc_end(), Mod, llvm::unwrap(), and llvm::wrap().

◆ LLVMGetNamedGlobalIFunc()

LLVMValueRef LLVMGetNamedGlobalIFunc ( LLVMModuleRef  M,
const char Name,
size_t  NameLen 
)

Obtain a GlobalIFunc value from a Module by its name.

The returned value corresponds to a llvm::GlobalIFunc value.

See also
llvm::Module::getNamedIFunc()

Definition at line 2576 of file Core.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMGetNextGlobalIFunc()

LLVMValueRef LLVMGetNextGlobalIFunc ( LLVMValueRef  IFunc)

Advance a GlobalIFunc iterator to the next GlobalIFunc.

Returns NULL if the iterator was already at the end and there are no more global aliases.

Definition at line 2597 of file Core.cpp.

References llvm::GlobalValue::getParent(), I, llvm::Module::ifunc_end(), and llvm::wrap().

◆ LLVMGetPreviousGlobalIFunc()

LLVMValueRef LLVMGetPreviousGlobalIFunc ( LLVMValueRef  IFunc)

Decrement a GlobalIFunc iterator to the previous GlobalIFunc.

Returns NULL if the iterator was already at the beginning and there are no previous global aliases.

Definition at line 2605 of file Core.cpp.

References llvm::GlobalValue::getParent(), I, llvm::Module::ifunc_begin(), and llvm::wrap().

◆ LLVMRemoveGlobalIFunc()

void LLVMRemoveGlobalIFunc ( LLVMValueRef  IFunc)

Remove a global indirect function from its parent module.

This unlinks the global indirect function from its containing module but keeps it alive.

See also
llvm::GlobalIFunc::removeFromParent()

Definition at line 2625 of file Core.cpp.

◆ LLVMSetGlobalIFuncResolver()

void LLVMSetGlobalIFuncResolver ( LLVMValueRef  IFunc,
LLVMValueRef  Resolver 
)

Sets the resolver function associated with this indirect function.

See also
llvm::GlobalIFunc::setResolver()

Definition at line 2617 of file Core.cpp.