Update to LLVM 15
This includes the following API changes:
- New BLAKE3 API:
- Structs:
llvm_blake3_chunk_state-
llvm_blake3_hasher.
- Functions:
llvm_blake3_versionllvm_blake3_hasher_initllvm_blake3_hasher_init_keyedllvm_blake3_hasher_init_derive_keyllvm_blake3_hasher_init_derive_key_rawllvm_blake3_hasher_updatellvm_blake3_hasher_finalizellvm_blake3_hasher_finalize_seekllvm_blake3_hasher_reset
- Structs:
- New functionns for interaction with opaque pointers:
LLVMContextSetOpaquePointersLLVMPointerTypeIsOpaqueLLVMPointerTypeInContext
- Change of signature of
LLVMOpInfoCallbackfunction type:- New arguments
OpSizeandInstSize. - Removal of
Sizeargument.
- New arguments
- New RMW atomic operations:
LLVMAtomicRMWBinOpFMaxLLVMAtomicRMWBinOpFMin
- New LLVM binary type:
-
LLVMBinaryTypeOffload- offloading fatbinary.
-
- New JIT symbol generic flag:
LLVMJITSymbolGenericFlagsNone
- Renaming of
LLVMJITCSymbolMapPairtoLLVMOrcCSymbolMapPair. - New struct and type for JITDylib search order:
LLVMOrcCJITDylibSearchOrderElementLLVMOrcCJITDylibSearchOrder
- New ORC function types:
LLVMOrcDisposeCAPIDefinitionGeneratorFunctionLLVMOrcExecutionSessionLookupHandleResultFunction
- New ORC functions:
LLVMOrcExecutionSessionLookupLLVMOrcLookupStateContinueLookup
- Change of signature of
LLVMOrcCreateCustomCAPIDefinitionGenerator:- New
Disposeargument.
- New
- Removal of
coroutinesheader, which included functions:LLVMAddCoroEarlyPassLLVMAddCoroSplitPassLLVMAddCoroElidePassLLVMAddCoroCleanupPassLLVMPassManagerBuilderAddCoroutinePassesToExtensionPoints
- Removal of IPO functions:
LLVMAddArgumentPromotionPassLLVMPassManagerBuilderPopulateLTOPassManager
- Removal of one calar function:
LLVMAddLoopUnswitchPass
- New
LLVMGetCastOpcodefunction to aid users ofLLVMBuildCastin resolving the best cast operation given a source value and destination type. This function is a direct wrapper ofCastInst::getCastOpcode. - New
LLVMGetAggregateElementfunction 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. TheLLVMGetElementAsConstantfunction 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
LLVMBuildXYZAPIs, which will constant fold the operands if possible and create an instruction otherwise:LLVMConstExtractValueLLVMConstInsertValueLLVMConstUDivLLVMConstExactUDivLLVMConstSDivLLVMConstExactSDivLLVMConstURemLLVMConstSRemLLVMConstFAddLLVMConstFSubLLVMConstFMulLLVMConstFDivLLVMConstFRem
- New
LLVMDeleteInstructionfunction which allows deleting instructions that are not inserted into a basic block.
Signed-off-by: Michal Rostecki vadorovsky@gmail.com
Edited by vad