Skip to content
  • vadorovsky's avatar
    41ba9666
    Update to LLVM 15 · 41ba9666
    vadorovsky authored
    
    
    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`
    * New functionns for interaction with opaque pointers:
      * `LLVMContextSetOpaquePointers`
      * `LLVMPointerTypeIsOpaque`
      * `LLVMPointerTypeInContext`
    * Change of signature of `LLVMOpInfoCallback` function type:
      * New arguments `OpSize` and `InstSize`.
      * Removal of `Size` argument.
    * New RMW atomic operations:
      * `LLVMAtomicRMWBinOpFMax`
      * `LLVMAtomicRMWBinOpFMin`
    * New LLVM binary type:
      * `LLVMBinaryTypeOffload` - offloading fatbinary.
    * New JIT symbol generic flag:
      * `LLVMJITSymbolGenericFlagsNone`
    * Renaming of `LLVMJITCSymbolMapPair` to `LLVMOrcCSymbolMapPair`.
    * 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.
    * 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 of `LLVMBuildCast` in
      resolving the best cast operation given a source value and
      destination type. This function is a direct wrapper of
      `CastInst::getCastOpcode`.
    * New `LLVMGetAggregateElement` function as a wrapper for
      `Constant::getAggregateElement`, which can be used to fetch an element
      of a constant struct, array or vector, independently of the underlying
      representation. The `LLVMGetElementAsConstant` function is deprecated
      in favor of the new function, which works on all constant aggregates,
      rather than only instances of `ConstantDataSequential`.
    * 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: vadorovsky's avatarMichal Rostecki <vadorovsky@gmail.com>
    41ba9666
    Update to LLVM 15
    vadorovsky authored
    
    
    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`
    * New functionns for interaction with opaque pointers:
      * `LLVMContextSetOpaquePointers`
      * `LLVMPointerTypeIsOpaque`
      * `LLVMPointerTypeInContext`
    * Change of signature of `LLVMOpInfoCallback` function type:
      * New arguments `OpSize` and `InstSize`.
      * Removal of `Size` argument.
    * New RMW atomic operations:
      * `LLVMAtomicRMWBinOpFMax`
      * `LLVMAtomicRMWBinOpFMin`
    * New LLVM binary type:
      * `LLVMBinaryTypeOffload` - offloading fatbinary.
    * New JIT symbol generic flag:
      * `LLVMJITSymbolGenericFlagsNone`
    * Renaming of `LLVMJITCSymbolMapPair` to `LLVMOrcCSymbolMapPair`.
    * 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.
    * 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 of `LLVMBuildCast` in
      resolving the best cast operation given a source value and
      destination type. This function is a direct wrapper of
      `CastInst::getCastOpcode`.
    * New `LLVMGetAggregateElement` function as a wrapper for
      `Constant::getAggregateElement`, which can be used to fetch an element
      of a constant struct, array or vector, independently of the underlying
      representation. The `LLVMGetElementAsConstant` function is deprecated
      in favor of the new function, which works on all constant aggregates,
      rather than only instances of `ConstantDataSequential`.
    * 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: vadorovsky's avatarMichal Rostecki <vadorovsky@gmail.com>
Loading