Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git

Contexts are execution states for the core LLVM IR system. More...

Collaboration diagram for Contexts:

Typedefs

typedef void(* LLVMDiagnosticHandler) (LLVMDiagnosticInfoRef, void *)
typedef void(* LLVMYieldCallback) (LLVMContextRef, void *)

Functions

LLVM_C_ABI LLVMContextRef LLVMContextCreate (void)
 Create a new context.
LLVM_C_ABI LLVMContextRef LLVMGetGlobalContext (void)
 Obtain the global context instance.
LLVM_C_ABI void LLVMContextSetDiagnosticHandler (LLVMContextRef C, LLVMDiagnosticHandler Handler, void *DiagnosticContext)
 Set the diagnostic handler for this context.
LLVM_C_ABI LLVMDiagnosticHandler LLVMContextGetDiagnosticHandler (LLVMContextRef C)
 Get the diagnostic handler of this context.
LLVM_C_ABI void * LLVMContextGetDiagnosticContext (LLVMContextRef C)
 Get the diagnostic context of this context.
LLVM_C_ABI void LLVMContextSetYieldCallback (LLVMContextRef C, LLVMYieldCallback Callback, void *OpaqueHandle)
 Set the yield callback function for this context.
LLVM_C_ABI LLVMBool LLVMContextShouldDiscardValueNames (LLVMContextRef C)
 Retrieve whether the given context is set to discard all value names.
LLVM_C_ABI void LLVMContextSetDiscardValueNames (LLVMContextRef C, LLVMBool Discard)
 Set whether the given context discards all value names.
LLVM_C_ABI void LLVMContextDispose (LLVMContextRef C)
 Destroy a context instance.
LLVM_C_ABI charLLVMGetDiagInfoDescription (LLVMDiagnosticInfoRef DI)
 Return a string representation of the DiagnosticInfo.
LLVM_C_ABI LLVMDiagnosticSeverity LLVMGetDiagInfoSeverity (LLVMDiagnosticInfoRef DI)
 Return an enum LLVMDiagnosticSeverity.
LLVM_C_ABI unsigned LLVMGetMDKindIDInContext (LLVMContextRef C, const char *Name, unsigned SLen)
LLVM_C_ABI unsigned LLVMGetMDKindID (const char *Name, unsigned SLen)
LLVM_C_ABI unsigned LLVMGetSyncScopeID (LLVMContextRef C, const char *Name, size_t SLen)
 Maps a synchronization scope name to a ID unique within this context.
LLVM_C_ABI unsigned LLVMGetEnumAttributeKindForName (const char *Name, size_t SLen)
 Return an unique id given the name of a enum attribute, or 0 if no attribute by that name exists.
LLVM_C_ABI unsigned LLVMGetLastEnumAttributeKind (void)
LLVM_C_ABI LLVMAttributeRef LLVMCreateEnumAttribute (LLVMContextRef C, unsigned KindID, uint64_t Val)
 Create an enum attribute.
LLVM_C_ABI unsigned LLVMGetEnumAttributeKind (LLVMAttributeRef A)
 Get the unique id corresponding to the enum attribute passed as argument.
LLVM_C_ABI uint64_t LLVMGetEnumAttributeValue (LLVMAttributeRef A)
 Get the enum attribute's value.
LLVM_C_ABI LLVMAttributeRef LLVMCreateTypeAttribute (LLVMContextRef C, unsigned KindID, LLVMTypeRef type_ref)
 Create a type attribute.
LLVM_C_ABI LLVMTypeRef LLVMGetTypeAttributeValue (LLVMAttributeRef A)
 Get the type attribute's value.
LLVM_C_ABI LLVMAttributeRef LLVMCreateConstantRangeAttribute (LLVMContextRef C, unsigned KindID, unsigned NumBits, const uint64_t LowerWords[], const uint64_t UpperWords[])
 Create a ConstantRange attribute.
LLVM_C_ABI LLVMAttributeRef LLVMCreateStringAttribute (LLVMContextRef C, const char *K, unsigned KLength, const char *V, unsigned VLength)
 Create a string attribute.
LLVM_C_ABI const charLLVMGetStringAttributeKind (LLVMAttributeRef A, unsigned *Length)
 Get the string attribute's kind.
LLVM_C_ABI const charLLVMGetStringAttributeValue (LLVMAttributeRef A, unsigned *Length)
 Get the string attribute's value.
LLVM_C_ABI LLVMBool LLVMIsEnumAttribute (LLVMAttributeRef A)
 Check for the different types of attributes.
LLVM_C_ABI LLVMBool LLVMIsStringAttribute (LLVMAttributeRef A)
LLVM_C_ABI LLVMBool LLVMIsTypeAttribute (LLVMAttributeRef A)
LLVM_C_ABI LLVMTypeRef LLVMGetTypeByName2 (LLVMContextRef C, const char *Name)
 Obtain a Type from a context by its registered name.

Detailed Description

Contexts are execution states for the core LLVM IR system.

Most types are tied to a context instance. Multiple contexts can exist simultaneously. A single context is not thread safe. However, different contexts can execute on different threads simultaneously.

Typedef Documentation

◆ LLVMDiagnosticHandler

typedef void(* LLVMDiagnosticHandler) (LLVMDiagnosticInfoRef, void *)

Definition at line 571 of file Core.h.

◆ LLVMYieldCallback

typedef void(* LLVMYieldCallback) (LLVMContextRef, void *)

Definition at line 572 of file Core.h.

Function Documentation

◆ LLVMContextCreate()

LLVM_C_ABI LLVMContextRef LLVMContextCreate ( void )

Create a new context.

Every call to this function should be paired with a call to LLVMContextDispose() or the context will leak memory.

Definition at line 100 of file Core.cpp.

References llvm::wrap().

◆ LLVMContextDispose()

LLVM_C_ABI void LLVMContextDispose ( LLVMContextRef C)

Destroy a context instance.

This should be called for every call to LLVMContextCreate() or memory will be leaked.

Definition at line 139 of file Core.cpp.

References llvm::CallingConv::C, and llvm::unwrap().

◆ LLVMContextGetDiagnosticContext()

LLVM_C_ABI void * LLVMContextGetDiagnosticContext ( LLVMContextRef C)

Get the diagnostic context of this context.

Definition at line 120 of file Core.cpp.

References llvm::CallingConv::C, and llvm::unwrap().

◆ LLVMContextGetDiagnosticHandler()

LLVM_C_ABI LLVMDiagnosticHandler LLVMContextGetDiagnosticHandler ( LLVMContextRef C)

Get the diagnostic handler of this context.

Definition at line 115 of file Core.cpp.

References llvm::CallingConv::C, LLVM_EXTENSION, and llvm::unwrap().

◆ LLVMContextSetDiagnosticHandler()

LLVM_C_ABI void LLVMContextSetDiagnosticHandler ( LLVMContextRef C,
LLVMDiagnosticHandler Handler,
void * DiagnosticContext )

Set the diagnostic handler for this context.

Definition at line 106 of file Core.cpp.

References llvm::CallingConv::C, LLVM_EXTENSION, and llvm::unwrap().

◆ LLVMContextSetDiscardValueNames()

LLVM_C_ABI void LLVMContextSetDiscardValueNames ( LLVMContextRef C,
LLVMBool Discard )

Set whether the given context discards all value names.

If true, only the names of GlobalValue objects will be available in the IR. This can be used to save memory and runtime, especially in release mode.

See also
LLVMContext::setDiscardValueNames()

Definition at line 135 of file Core.cpp.

References llvm::CallingConv::C, and llvm::unwrap().

◆ LLVMContextSetYieldCallback()

LLVM_C_ABI void LLVMContextSetYieldCallback ( LLVMContextRef C,
LLVMYieldCallback Callback,
void * OpaqueHandle )

Set the yield callback function for this context.

See also
LLVMContext::setYieldCallback()

Definition at line 124 of file Core.cpp.

References llvm::CallingConv::C, LLVM_EXTENSION, and llvm::unwrap().

◆ LLVMContextShouldDiscardValueNames()

LLVM_C_ABI LLVMBool LLVMContextShouldDiscardValueNames ( LLVMContextRef C)

Retrieve whether the given context is set to discard all value names.

See also
LLVMContext::shouldDiscardValueNames()

Definition at line 131 of file Core.cpp.

References llvm::CallingConv::C, and llvm::unwrap().

◆ LLVMCreateConstantRangeAttribute()

LLVM_C_ABI LLVMAttributeRef LLVMCreateConstantRangeAttribute ( LLVMContextRef C,
unsigned KindID,
unsigned NumBits,
const uint64_t LowerWords[],
const uint64_t UpperWords[] )

Create a ConstantRange attribute.

LowerWords and UpperWords need to be NumBits divided by 64 rounded up elements long.

Definition at line 194 of file Core.cpp.

References llvm::ArrayRef(), llvm::CallingConv::C, llvm::divideCeil(), llvm::Attribute::get(), llvm::unwrap(), and llvm::wrap().

◆ LLVMCreateEnumAttribute()

LLVM_C_ABI LLVMAttributeRef LLVMCreateEnumAttribute ( LLVMContextRef C,
unsigned KindID,
uint64_t Val )

Create an enum attribute.

Definition at line 164 of file Core.cpp.

References llvm::CallingConv::C, llvm::Attribute::get(), llvm::unwrap(), and llvm::wrap().

◆ LLVMCreateStringAttribute()

LLVM_C_ABI LLVMAttributeRef LLVMCreateStringAttribute ( LLVMContextRef C,
const char * K,
unsigned KLength,
const char * V,
unsigned VLength )

Create a string attribute.

Definition at line 208 of file Core.cpp.

References llvm::CallingConv::C, llvm::Attribute::get(), llvm::unwrap(), and llvm::wrap().

◆ LLVMCreateTypeAttribute()

LLVM_C_ABI LLVMAttributeRef LLVMCreateTypeAttribute ( LLVMContextRef C,
unsigned KindID,
LLVMTypeRef type_ref )

Create a type attribute.

Definition at line 182 of file Core.cpp.

References llvm::CallingConv::C, llvm::Attribute::get(), llvm::unwrap(), and llvm::wrap().

◆ LLVMGetDiagInfoDescription()

LLVM_C_ABI char * LLVMGetDiagInfoDescription ( LLVMDiagnosticInfoRef DI)

Return a string representation of the DiagnosticInfo.

Use LLVMDisposeMessage to free the string.

See also
DiagnosticInfo::print()

Definition at line 242 of file Core.cpp.

References llvm::raw_ostream::flush(), LLVMCreateMessage(), and llvm::unwrap().

◆ LLVMGetDiagInfoSeverity()

Return an enum LLVMDiagnosticSeverity.

See also
DiagnosticInfo::getSeverity()

Definition at line 253 of file Core.cpp.

References llvm::DS_Note, llvm::DS_Remark, llvm::DS_Warning, LLVMDSError, LLVMDSNote, LLVMDSRemark, LLVMDSWarning, and llvm::unwrap().

◆ LLVMGetEnumAttributeKind()

LLVM_C_ABI unsigned LLVMGetEnumAttributeKind ( LLVMAttributeRef A)

Get the unique id corresponding to the enum attribute passed as argument.

Definition at line 171 of file Core.cpp.

References A(), llvm::Attribute::getKindAsEnum(), and llvm::unwrap().

◆ LLVMGetEnumAttributeKindForName()

LLVM_C_ABI unsigned LLVMGetEnumAttributeKindForName ( const char * Name,
size_t SLen )

Return an unique id given the name of a enum attribute, or 0 if no attribute by that name exists.

See http://llvm.org/docs/LangRef.html#parameter-attributes and http://llvm.org/docs/LangRef.html#function-attributes for the list of available attributes.

NB: Attribute names and/or id are subject to change without going through the C API deprecation cycle.

Definition at line 156 of file Core.cpp.

References llvm::Attribute::getAttrKindFromName().

◆ LLVMGetEnumAttributeValue()

LLVM_C_ABI uint64_t LLVMGetEnumAttributeValue ( LLVMAttributeRef A)

Get the enum attribute's value.

0 is returned if none exists.

Definition at line 175 of file Core.cpp.

References A(), and llvm::unwrap().

◆ LLVMGetGlobalContext()

LLVM_C_ABI LLVMContextRef LLVMGetGlobalContext ( void )

Obtain the global context instance.

Definition at line 104 of file Core.cpp.

References getGlobalContext(), and llvm::wrap().

Referenced by LLVMGetBitcodeModule(), LLVMGetBitcodeModule2(), LLVMParseBitcode(), and LLVMParseBitcode2().

◆ LLVMGetLastEnumAttributeKind()

LLVM_C_ABI unsigned LLVMGetLastEnumAttributeKind ( void )

Definition at line 160 of file Core.cpp.

References llvm::Attribute::EndAttrKinds.

◆ LLVMGetMDKindID()

LLVM_C_ABI unsigned LLVMGetMDKindID ( const char * Name,
unsigned SLen )

Definition at line 148 of file Core.cpp.

References LLVMGetGlobalContext(), and LLVMGetMDKindIDInContext().

◆ LLVMGetMDKindIDInContext()

LLVM_C_ABI unsigned LLVMGetMDKindIDInContext ( LLVMContextRef C,
const char * Name,
unsigned SLen )

Definition at line 143 of file Core.cpp.

References llvm::CallingConv::C, and llvm::unwrap().

Referenced by LLVMGetMDKindID().

◆ LLVMGetStringAttributeKind()

LLVM_C_ABI const char * LLVMGetStringAttributeKind ( LLVMAttributeRef A,
unsigned * Length )

Get the string attribute's kind.

Definition at line 215 of file Core.cpp.

References A(), llvm::Attribute::getKindAsString(), llvm::Length, and llvm::unwrap().

◆ LLVMGetStringAttributeValue()

LLVM_C_ABI const char * LLVMGetStringAttributeValue ( LLVMAttributeRef A,
unsigned * Length )

Get the string attribute's value.

Definition at line 222 of file Core.cpp.

References A(), llvm::Attribute::getValueAsString(), llvm::Length, and llvm::unwrap().

◆ LLVMGetSyncScopeID()

LLVM_C_ABI unsigned LLVMGetSyncScopeID ( LLVMContextRef C,
const char * Name,
size_t SLen )

Maps a synchronization scope name to a ID unique within this context.

Definition at line 152 of file Core.cpp.

References llvm::CallingConv::C, and llvm::unwrap().

◆ LLVMGetTypeAttributeValue()

LLVM_C_ABI LLVMTypeRef LLVMGetTypeAttributeValue ( LLVMAttributeRef A)

Get the type attribute's value.

Definition at line 189 of file Core.cpp.

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

◆ LLVMGetTypeByName2()

LLVM_C_ABI LLVMTypeRef LLVMGetTypeByName2 ( LLVMContextRef C,
const char * Name )

Obtain a Type from a context by its registered name.

Definition at line 852 of file Core.cpp.

References llvm::CallingConv::C, llvm::StructType::getTypeByName(), llvm::unwrap(), and llvm::wrap().

◆ LLVMIsEnumAttribute()

LLVM_C_ABI LLVMBool LLVMIsEnumAttribute ( LLVMAttributeRef A)

Check for the different types of attributes.

Definition at line 229 of file Core.cpp.

References A(), and llvm::unwrap().

◆ LLVMIsStringAttribute()

LLVM_C_ABI LLVMBool LLVMIsStringAttribute ( LLVMAttributeRef A)

Definition at line 234 of file Core.cpp.

References A(), llvm::Attribute::isStringAttribute(), and llvm::unwrap().

◆ LLVMIsTypeAttribute()

LLVM_C_ABI LLVMBool LLVMIsTypeAttribute ( LLVMAttributeRef A)

Definition at line 238 of file Core.cpp.

References A(), llvm::Attribute::isTypeAttribute(), and llvm::unwrap().