Update to LLVM 15
This includes the following API changes:
- New BLAKE3 API:
- Structs:
llvm_blake3_chunk_state
-
llvm_blake3_hasher
.
- Functions:
llvm_blake3_version
llvm_blake3_hasher_init
llvm_blake3_hasher_init_keyed
llvm_blake3_hasher_init_derive_key
llvm_blake3_hasher_init_derive_key_raw
llvm_blake3_hasher_update
llvm_blake3_hasher_finalize
llvm_blake3_hasher_finalize_seek
llvm_blake3_hasher_reset
- Structs:
- New functionns for interaction with opaque pointers:
LLVMContextSetOpaquePointers
LLVMPointerTypeIsOpaque
LLVMPointerTypeInContext
- Change of signature of
LLVMOpInfoCallback
function type:- New arguments
OpSize
andInstSize
. - Removal of
Size
argument.
- New arguments
- New RMW atomic operations:
LLVMAtomicRMWBinOpFMax
LLVMAtomicRMWBinOpFMin
- New LLVM binary type:
-
LLVMBinaryTypeOffload
- offloading fatbinary.
-
- New JIT symbol generic flag:
LLVMJITSymbolGenericFlagsNone
- Renaming of
LLVMJITCSymbolMapPair
toLLVMOrcCSymbolMapPair
. - New struct and type for JITDylib search order:
LLVMOrcCJITDylibSearchOrderElement
LLVMOrcCJITDylibSearchOrder
- New ORC function types:
LLVMOrcDisposeCAPIDefinitionGeneratorFunction
LLVMOrcExecutionSessionLookupHandleResultFunction
- New ORC functions:
LLVMOrcExecutionSessionLookup
LLVMOrcLookupStateContinueLookup
- Change of signature of
LLVMOrcCreateCustomCAPIDefinitionGenerator
:- New
Dispose
argument.
- New
- Removal of
coroutines
header, which included functions:LLVMAddCoroEarlyPass
LLVMAddCoroSplitPass
LLVMAddCoroElidePass
LLVMAddCoroCleanupPass
LLVMPassManagerBuilderAddCoroutinePassesToExtensionPoints
- Removal of IPO functions:
LLVMAddArgumentPromotionPass
LLVMPassManagerBuilderPopulateLTOPassManager
- Removal of one calar function:
LLVMAddLoopUnswitchPass
- New
LLVMGetCastOpcode
function to aid users ofLLVMBuildCast
in resolving the best cast operation given a source value and destination type. This function is a direct wrapper ofCastInst::getCastOpcode
. - New
LLVMGetAggregateElement
function as a wrapper forConstant::getAggregateElement
, which can be used to fetch an element of a constant struct, array or vector, independently of the underlying representation. TheLLVMGetElementAsConstant
function is deprecated in favor of the new function, which works on all constant aggregates, rather than only instances ofConstantDataSequential
. - Removal of the following functions for creating constant expressions,
because the underlying constant expressions are nno longer supported.
Instead, an instruction should be created using the
LLVMBuildXYZ
APIs, which will constant fold the operands if possible and create an instruction otherwise:LLVMConstExtractValue
LLVMConstInsertValue
LLVMConstUDiv
LLVMConstExactUDiv
LLVMConstSDiv
LLVMConstExactSDiv
LLVMConstURem
LLVMConstSRem
LLVMConstFAdd
LLVMConstFSub
LLVMConstFMul
LLVMConstFDiv
LLVMConstFRem
- New
LLVMDeleteInstruction
function which allows deleting instructions that are not inserted into a basic block.
Signed-off-by: Michal Rostecki vadorovsky@gmail.com
Edited by vadorovsky