Subject: CVS commit: pkgsrc
From: Thomas Klausner
Date: 2021-11-23 21:55:45
Message id: 20211123205545.7D29FFAEC@cvs.NetBSD.org

Log Message:
llvm: update llvm and friends to 13.0.0

Tested on NetBSD-current and 9.1/amd64.

Also update packages tightly coupled to llvm, if new versions are
available.

Mark creduce, include-what-you-use, and zig broken (waiting for a
new release).

Changes:

Non-comprehensive list of changes in this release

    Windows Control-flow Enforcement Technology: the -ehcontguard
    option now emits valid unwind entrypoints which are validated
    when the context is being set during exception handling.

    Flang is now included in the binary packages released by LLVM.

    The debuginfo-test project has been renamed cross-project-tests
    and is now intended for testing components from multiple
    projects, not just debug information. The new “cross-project-tests”
    name replaces “debuginfo-test” in LLVM_ENABLE_PROJECTS, and a
    new check-cross-project-tests target has been added for running
    all tests in the project. The pre-existing check-debuginfo-
    test target remains for running just the debug information
    tests. (D95339 and D96513)

Changes to the LLVM IR

    The inalloca attribute now has a mandatory type field, similar
    to byval and sret.

    The opaque pointer type ptr has been introduced. It is still
    in the process of being worked on and should not be used yet.

    Using the legacy pass manager for the optimization pipeline is
    deprecated and will be removed after LLVM 14. In the meantime,
    only minimal effort will be made to maintain the legacy pass
    manager for the optimization pipeline.

Changes to building LLVM

    The build system now supports building multiple distributions,
    so that you can e.g. have one distribution containing just
    tools and another for libraries (to enable development). See
    Multi-distribution configurations for details.

Changes to the AArch64 Backend

    Introduced assembly support for Armv9-A’s Realm Management
    Extension (RME) and Scalable Matrix Extension (SME).

    Produce proper cross-section relative relocations on COFF

    Fixed the calling convention on Windows for variadic functions
    involving floats in the fixed arguments

Changes to the ARM Backend

    Produce proper cross-section relative relocations on COFF

Changes to the Hexagon Target

    The Hexagon target now supports V68/HVX ISA.

Changes to the C API

    The C API functions LLVMGetAlignment and LLVMSetAlignment now
    allow changing alignment on atomicrmw and cmpxchg instructions

    A new entry LLVMDIArgListMetadataKind was added to the
    LLVMMetadataKind enum, representing DIArgLists (D88175)

    Type attributes have been added to LLVM-C, introducing
    LLVMCreateTypeAttribute, LLVMGetTypeAttributeValue and
    LLVMIsTypeAttribute. (D977763’)

    The LTO_API_VERSION was bumped to 28, introducing a new function
    lto_set_debug_options for parsing LTO debug options (D92611)

    LLVMJITTargetSymbolFlags was renamed to LLVMJITSymbolTargetFlags
    (rG8d718a0bff73af066675a6258c01307937c33cf9)

    The C API received support for creating custom ORCv2
    MaterializationUnits and APIs to retrieve an LLJIT instance’s
    linking layers. An ABI breaking change for LLVMOrcAbsoluteSymbols
    was introduced to make it consistent with
    LLVMOrcCreateCustomMaterializationUnit.
    (rGc8fc5e3ba942057d6c4cdcd1faeae69a28e7b671)

    The C API received support for adding ORCv2 object buffers
    directly to an object layer.
    (rG7b73cd684a8d5fb44d34064200f10e2723085c33)

    A breaking change to LLVMGetInlineAsm was introduced, adding
    a ninth argument LLVMBool CanThrow (D95745)

    The C API received support for calling into the new pass manager.
    (D102136)

    The C API function LLVMIntrinsicCopyOverloadedName has been
    deprecated. Please migrate to LLVMIntrinsicCopyOverloadedName2
    which takes an extra module argument and which also handles
    unnamed types. (D99173)

    The C API received support for dumping objects from ORCv2
    (rGcec8e69f01c3374cb38c6683058381b96fab8f89)

    A breaking change to LLVMOrcObjectTransformLayerTransformFunction
    was introduced, changing the order of the function pointer’s
    arguments. (rG8962c68ad007a525f9daa987c99eda57e0d0069a)

    The C API received support for accessing utilities from the
    LLJIT IRTransformLayer and ThreadSafeModule classes. (D103855)

    The C API received support for creating lazy-export
    MaterializationUnits (D104672)

    The C API function LLVMPassBuilderOptionsSetCoroutines was
    removed because couroutine passes have been enabled by default.
    (D105877)

    comdat noduplicates was renamed to comdat nodeduplicate and as
    a result, LLVMNoDuplicatesComdatSelectionKind was renamed to
    LLVMNoDeduplicateComdatSelectionKind. (D106319)

Changes to the FastISel infrastructure

    FastISel no longer tracks killed registers, and instead leaves
    this to the register allocator. This means that hasTrivialKill()
    is removed, as well as the OpNIsKill parameters to the fastEmit_*()
    family of functions.

Changes to the LLVM tools

    The options --build-id-link-{dir,input,output} have been deleted.
    (D96310)

    Support for in-order processors has been added to llvm-mca.
    (D94928)

    llvm-objdump supports -M {att,intel} now. --x86-asm-syntax is
    a deprecated internal option which will be removed in LLVM
    14.0.0. (D101695)

    The llvm-readobj short aliases -s (previously --sections) and
    -t (previously --syms) have been changed to --syms and
    --section-details respectively, to match llvm-readelf. (D105055)

    The llvm-nm short aliases -M (--print-armap), -U (--defined-only),
    and -W (--no-weak) are now deprecated. Use the long form versions
    instead. The alias --just-symbol-name is now deprecated in
    favor of --format=just-symbols and -j. (D105330)

    In lli the default JIT engine switched from MCJIT (-jit-kind=mcjit)
    to ORC (-jit-kind=orc). (D98931)

    llvm-rc got support for invoking Clang to preprocess its input.
    (D100755)

    llvm-rc got a GNU windres compatible frontend, llvm-windres.
    (D100756)

    llvm-ml has improved compatibility with MS ml.exe, managing to
    assemble more asm files.

Changes to LLDB

    LLDB executable is now included in pre-built LLVM binaries.

    LLDB now includes full featured support for AArch64 SVE register
    access.

    LLDB now supports AArch64 Pointer Authentication, allowing
    stack unwind with signed return address.

    LLDB now supports debugging programs on AArch64 Linux that use
    memory tagging (MTE).

    Added memory tag read and memory tag write commands.

    The memory region command will note when a region has memory
    tagging enabled.

    Synchronous and asynchronous tag faults are recognised.

    Synchronous tag faults have memory tag annotations in addition
    to the usual fault address.

Files:
RevisionActionfile
1.18modifypkgsrc/devel/creduce/Makefile
1.26modifypkgsrc/devel/include-what-you-use/Makefile
1.6modifypkgsrc/devel/lld/PLIST
1.15modifypkgsrc/devel/lld/distinfo
1.14modifypkgsrc/devel/lldb/PLIST
1.28modifypkgsrc/devel/lldb/distinfo
1.8modifypkgsrc/devel/polly/PLIST
1.22modifypkgsrc/devel/polly/distinfo
1.65modifypkgsrc/lang/clang/Makefile
1.47modifypkgsrc/lang/clang/Makefile.common
1.32modifypkgsrc/lang/clang/PLIST
1.16modifypkgsrc/lang/clang/buildlink3.mk
1.70modifypkgsrc/lang/clang/distinfo
1.5modifypkgsrc/lang/clang-tools-extra/PLIST
1.11modifypkgsrc/lang/clang-tools-extra/distinfo
1.8modifypkgsrc/lang/clang/patches/patch-lib_Driver_ToolChains_Solaris.cpp
1.15modifypkgsrc/lang/compiler-rt/distinfo
1.7modifypkgsrc/lang/libcxx/PLIST
1.15modifypkgsrc/lang/libcxx/distinfo
1.12modifypkgsrc/lang/libcxxabi/Makefile
1.13modifypkgsrc/lang/libcxxabi/distinfo
1.23modifypkgsrc/lang/libunwind/distinfo
1.18modifypkgsrc/lang/llvm/PLIST
1.16modifypkgsrc/lang/llvm/buildlink3.mk
1.32modifypkgsrc/lang/llvm/distinfo
1.6modifypkgsrc/lang/llvm/version.mk
1.8modifypkgsrc/lang/llvm/patches/patch-cmake_modules_AddLLVM.cmake
1.7modifypkgsrc/lang/llvm/patches/patch-tools_llvm-shlib_CMakeLists.txt
1.12modifypkgsrc/lang/zig/Makefile
1.4modifypkgsrc/parallel/opencl-clang/Makefile
1.3modifypkgsrc/parallel/opencl-clang/PLIST
1.6modifypkgsrc/parallel/opencl-clang/distinfo
1.11modifypkgsrc/parallel/openmp/distinfo
1.4modifypkgsrc/parallel/spirv-llvm-translator/Makefile
1.3modifypkgsrc/parallel/spirv-llvm-translator/PLIST
1.5modifypkgsrc/parallel/spirv-llvm-translator/distinfo
1.2modifypkgsrc/parallel/spirv-llvm-translator/patches/patch-CMakeLists.txt
1.1addpkgsrc/parallel/opencl-clang/patches/patch-CMakeLists.txt
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-lib_SPIRV_SPIRVReader.cpp
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-lib_SPIRV_SPIRVWriter.cpp
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-lib_SPIRV_SPIRVWriter.h
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-lib_SPIRV_libSPIRV_SPIRVFunction.h
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-lib_SPIRV_libSPIRV_SPIRVModule.cpp
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-lib_SPIRV_libSPIRV_SPIRVModule.h
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-lib_SPIRV_libSPIRV_SPIRVOpCode.h
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-lib_SPIRV_libSPIRV_SPIRVOpCodeEnum.h
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-spirv-headers-tag.conf
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-test_constexpr__vector.ll
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-test_transcoding_SPV__INTEL__function__pointers_bitcast.ll
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-test_transcoding_SPV__INTEL__function__pointers_const-function-pointer.ll
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-test_transcoding_SPV__INTEL__function__pointers_function-pointer.ll
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-test_transcoding_SPV__INTEL__function__pointers_global__ctor__dtor.ll
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-test_transcoding_SPV__INTEL__function__pointers_non-uniform-function-pointer.ll
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-test_transcoding_SPV__INTEL__function__pointers_select.ll
1.1addpkgsrc/parallel/spirv-llvm-translator/patches/patch-test_transcoding_SPV__INTEL__function__pointers_vector__elem.ll
1.9removepkgsrc/devel/lld/patches/patch-ELF_Driver.cpp
1.1removepkgsrc/devel/lldb/patches/patch-source_Plugins_ObjectFile_Mach-O_ObjectFileMachO.cpp
1.3removepkgsrc/devel/polly/patches/patch-lib_External_isl_configure