LLVM 22.0.0git
Composite Constants

Functions in this group operate on composite constants. More...

Collaboration diagram for Composite Constants:

Functions

LLVM_C_ABI LLVMValueRef LLVMConstStringInContext (LLVMContextRef C, const char *Str, unsigned Length, LLVMBool DontNullTerminate)
 Create a ConstantDataSequential and initialize it with a string.
LLVM_C_ABI LLVMValueRef LLVMConstStringInContext2 (LLVMContextRef C, const char *Str, size_t Length, LLVMBool DontNullTerminate)
 Create a ConstantDataSequential and initialize it with a string.
LLVM_C_ABI LLVMValueRef LLVMConstString (const char *Str, unsigned Length, LLVMBool DontNullTerminate)
 Create a ConstantDataSequential with string content in the global context.
LLVM_C_ABI LLVMBool LLVMIsConstantString (LLVMValueRef c)
 Returns true if the specified constant is an array of i8.
LLVM_C_ABI const charLLVMGetAsString (LLVMValueRef c, size_t *Length)
 Get the given constant data sequential as a string.
LLVM_C_ABI const charLLVMGetRawDataValues (LLVMValueRef c, size_t *SizeInBytes)
 Get the raw, underlying bytes of the given constant data sequential.
LLVM_C_ABI LLVMValueRef LLVMConstStructInContext (LLVMContextRef C, LLVMValueRef *ConstantVals, unsigned Count, LLVMBool Packed)
 Create an anonymous ConstantStruct with the specified values.
LLVM_C_ABI LLVMValueRef LLVMConstStruct (LLVMValueRef *ConstantVals, unsigned Count, LLVMBool Packed)
 Create a ConstantStruct in the global Context.
LLVM_C_ABI LLVMValueRef LLVMConstArray (LLVMTypeRef ElementTy, LLVMValueRef *ConstantVals, unsigned Length)
 Create a ConstantArray from values.
LLVM_C_ABI LLVMValueRef LLVMConstArray2 (LLVMTypeRef ElementTy, LLVMValueRef *ConstantVals, uint64_t Length)
 Create a ConstantArray from values.
LLVM_C_ABI LLVMValueRef LLVMConstDataArray (LLVMTypeRef ElementTy, const char *Data, size_t SizeInBytes)
 Create a ConstantDataArray from raw values.
LLVM_C_ABI LLVMValueRef LLVMConstNamedStruct (LLVMTypeRef StructTy, LLVMValueRef *ConstantVals, unsigned Count)
 Create a non-anonymous ConstantStruct from values.
LLVM_C_ABI LLVMValueRef LLVMGetAggregateElement (LLVMValueRef C, unsigned Idx)
 Get element of a constant aggregate (struct, array or vector) at the specified index.
LLVM_C_ABI LLVM_ATTRIBUTE_C_DEPRECATED (LLVMValueRef LLVMGetElementAsConstant(LLVMValueRef C, unsigned idx), "Use LLVMGetAggregateElement instead")
 Get an element at specified index as a constant.
LLVM_C_ABI LLVMValueRef LLVMConstVector (LLVMValueRef *ScalarConstantVals, unsigned Size)
 Create a ConstantVector from values.
LLVM_C_ABI LLVMValueRef LLVMConstantPtrAuth (LLVMValueRef Ptr, LLVMValueRef Key, LLVMValueRef Disc, LLVMValueRef AddrDisc)
 Create a ConstantPtrAuth constant with the given values.

Detailed Description

Functions in this group operate on composite constants.

Function Documentation

◆ LLVM_ATTRIBUTE_C_DEPRECATED()

LLVM_C_ABI LLVM_ATTRIBUTE_C_DEPRECATED ( LLVMValueRef LLVMGetElementAsConstantLLVMValueRef C, unsigned idx,
"Use LLVMGetAggregateElement instead"  )

Get an element at specified index as a constant.

See also
ConstantDataSequential::getElementAsConstant()

References C(), LLVM_C_ABI, Ptr, and Size.

◆ LLVMConstantPtrAuth()

LLVM_C_ABI LLVMValueRef LLVMConstantPtrAuth ( LLVMValueRef Ptr,
LLVMValueRef Key,
LLVMValueRef Disc,
LLVMValueRef AddrDisc )

Create a ConstantPtrAuth constant with the given values.

See also
llvm::ConstantPtrAuth::get()

Definition at line 1698 of file Core.cpp.

References llvm::ConstantPtrAuth::get(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, Ptr, llvm::unwrap(), and llvm::wrap().

◆ LLVMConstArray()

LLVM_C_ABI LLVMValueRef LLVMConstArray ( LLVMTypeRef ElementTy,
LLVMValueRef * ConstantVals,
unsigned Length )

Create a ConstantArray from values.

Deprecated
LLVMConstArray is deprecated in favor of the API accurate LLVMConstArray2
See also
llvm::ConstantArray::get()

Definition at line 1651 of file Core.cpp.

References llvm::ArrayType::get(), llvm::ConstantArray::get(), llvm::Length, llvm::unwrap(), and llvm::wrap().

◆ LLVMConstArray2()

LLVM_C_ABI LLVMValueRef LLVMConstArray2 ( LLVMTypeRef ElementTy,
LLVMValueRef * ConstantVals,
uint64_t Length )

Create a ConstantArray from values.

See also
llvm::ConstantArray::get()

Definition at line 1657 of file Core.cpp.

References llvm::ArrayType::get(), llvm::ConstantArray::get(), llvm::Length, llvm::unwrap(), and llvm::wrap().

◆ LLVMConstDataArray()

LLVM_C_ABI LLVMValueRef LLVMConstDataArray ( LLVMTypeRef ElementTy,
const char * Data,
size_t SizeInBytes )

Create a ConstantDataArray from raw values.

ElementTy must be one of i8, i16, i32, i64, half, bfloat, float, or double. Data points to a contiguous buffer of raw values in the host endianness. The element count is inferred from the element type and the data size in bytes.

See also
llvm::ConstantDataArray::getRaw()

Definition at line 1663 of file Core.cpp.

References llvm::Data, llvm::ConstantDataArray::getRaw(), llvm::unwrap(), and llvm::wrap().

◆ LLVMConstNamedStruct()

LLVM_C_ABI LLVMValueRef LLVMConstNamedStruct ( LLVMTypeRef StructTy,
LLVMValueRef * ConstantVals,
unsigned Count )

Create a non-anonymous ConstantStruct from values.

See also
llvm::ConstantStruct::get()

Definition at line 1684 of file Core.cpp.

References llvm::ArrayRef(), llvm::Count, llvm::ConstantStruct::get(), llvm::unwrap(), and llvm::wrap().

◆ LLVMConstString()

LLVM_C_ABI LLVMValueRef LLVMConstString ( const char * Str,
unsigned Length,
LLVMBool DontNullTerminate )

Create a ConstantDataSequential with string content in the global context.

This is the same as LLVMConstStringInContext except it operates on the global context.

See also
LLVMConstStringInContext()
llvm::ConstantDataArray::getString()

Definition at line 1621 of file Core.cpp.

References llvm::Length, LLVMConstStringInContext(), and LLVMGetGlobalContext().

◆ LLVMConstStringInContext()

LLVM_C_ABI LLVMValueRef LLVMConstStringInContext ( LLVMContextRef C,
const char * Str,
unsigned Length,
LLVMBool DontNullTerminate )

Create a ConstantDataSequential and initialize it with a string.

Deprecated
LLVMConstStringInContext is deprecated in favor of the API accurate LLVMConstStringInContext2
See also
llvm::ConstantDataArray::getString()

Definition at line 1603 of file Core.cpp.

References llvm::CallingConv::C, llvm::ConstantDataArray::getString(), llvm::Length, llvm::unwrap(), and llvm::wrap().

Referenced by LLVMConstString().

◆ LLVMConstStringInContext2()

LLVM_C_ABI LLVMValueRef LLVMConstStringInContext2 ( LLVMContextRef C,
const char * Str,
size_t Length,
LLVMBool DontNullTerminate )

Create a ConstantDataSequential and initialize it with a string.

See also
llvm::ConstantDataArray::getString()

Definition at line 1612 of file Core.cpp.

References llvm::CallingConv::C, llvm::ConstantDataArray::getString(), llvm::Length, llvm::unwrap(), and llvm::wrap().

◆ LLVMConstStruct()

LLVM_C_ABI LLVMValueRef LLVMConstStruct ( LLVMValueRef * ConstantVals,
unsigned Count,
LLVMBool Packed )

Create a ConstantStruct in the global Context.

This is the same as LLVMConstStructInContext except it operates on the global Context.

See also
LLVMConstStructInContext()

Definition at line 1678 of file Core.cpp.

References llvm::Count, LLVMConstStructInContext(), and LLVMGetGlobalContext().

◆ LLVMConstStructInContext()

LLVM_C_ABI LLVMValueRef LLVMConstStructInContext ( LLVMContextRef C,
LLVMValueRef * ConstantVals,
unsigned Count,
LLVMBool Packed )

Create an anonymous ConstantStruct with the specified values.

See also
llvm::ConstantStruct::getAnon()

Definition at line 1670 of file Core.cpp.

References llvm::ArrayRef(), llvm::CallingConv::C, llvm::Count, llvm::ConstantStruct::getAnon(), llvm::unwrap(), and llvm::wrap().

Referenced by LLVMConstStruct().

◆ LLVMConstVector()

LLVM_C_ABI LLVMValueRef LLVMConstVector ( LLVMValueRef * ScalarConstantVals,
unsigned Size )

Create a ConstantVector from values.

See also
llvm::ConstantVector::get()

Definition at line 1693 of file Core.cpp.

References llvm::ArrayRef(), llvm::ConstantVector::get(), Size, llvm::unwrap(), and llvm::wrap().

◆ LLVMGetAggregateElement()

LLVM_C_ABI LLVMValueRef LLVMGetAggregateElement ( LLVMValueRef C,
unsigned Idx )

Get element of a constant aggregate (struct, array or vector) at the specified index.

Returns null if the index is out of range, or it's not possible to determine the element (e.g., because the constant is a constant expression.)

See also
llvm::Constant::getAggregateElement()

Definition at line 1627 of file Core.cpp.

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

◆ LLVMGetAsString()

LLVM_C_ABI const char * LLVMGetAsString ( LLVMValueRef c,
size_t * Length )

Get the given constant data sequential as a string.

See also
ConstantDataSequential::getAsString()

Definition at line 1639 of file Core.cpp.

References llvm::CallingConv::C, llvm::Attribute::getAsString(), llvm::Length, and llvm::unwrap().

◆ LLVMGetRawDataValues()

LLVM_C_ABI const char * LLVMGetRawDataValues ( LLVMValueRef c,
size_t * SizeInBytes )

Get the raw, underlying bytes of the given constant data sequential.

This is the same as LLVMGetAsString except it works for all constant data sequentials, not just i8 arrays.

See also
ConstantDataSequential::getRawDataValues()

Definition at line 1645 of file Core.cpp.

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

◆ LLVMIsConstantString()

LLVM_C_ABI LLVMBool LLVMIsConstantString ( LLVMValueRef c)

Returns true if the specified constant is an array of i8.

See also
ConstantDataSequential::getAsString()

Definition at line 1635 of file Core.cpp.

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