Changes

Summary

  1. [gn build] (manually) port f8b1cc365786 (details)
  2. [gn build] Port 7a320b279d07 (details)
  3. [SelectionDAG] Add PromoteIntOp_INSERT_SUBVECTOR. (details)
  4. [lldb] JITLoaderGDB tests can use lli in ORC greedy mode (details)
  5. [SLP][NFC]Rename function in the test for better matching of the (details)
  6. [ELF][test] Restore important part of ICF alignment test (details)
  7. AArch64: use indivisible cmpxchg for 128-bit atomic loads at O0 (details)
  8. [SelectionDAG] Remove PromoteIntOp_EXTRACT_SUBVECTOR. (details)
  9. [AArch64][SVE] Add extract_subvector patterns for unpacked fp16 and bfloat types. (details)
  10. [mailmap] Add entry for myself (details)
  11. [OpenMP] Make sure the Thread ID function is not removed (details)
  12. [AArch64][SVE] NFC: Move extract_subvector tests around. (details)
  13. [InstCombine] Update InstCombine to use poison instead of undef for shufflevector's placeholder (1/3) (details)
  14. [Target][CodeGen] Remove default CostKind arguments on inner/impl TTI overrides (details)
  15. [Sanitizer] Add Windows header for _mkdir (details)
  16. [libc++][NFC] Add link to Discord channel from documentation (details)
  17. [InstCombine] Update InstCombine to use poison instead of undef for shufflevector's placeholder (2/3) (details)
Commit c828b93fb367b67d5e6342fee179a93970ba71ec by thakis
[gn build] (manually) port f8b1cc365786
The file was modifiedllvm/utils/gn/secondary/libcxxabi/src/BUILD.gn
Commit f099ac838e6bce8b743a71c2fc46c1699eae8dc3 by llvmgnsyncbot
[gn build] Port 7a320b279d07
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit d5681f1d688a45c000dd1e2c4f4d3678e0440b94 by sander.desmalen
[SelectionDAG] Add PromoteIntOp_INSERT_SUBVECTOR.

This is required to codegen something like:
  <vscale x 8 x i16> @llvm.experimental.vector.insert(<vscale x 8 x i16> %vec,
                                                      <vscale x 2 x i16> %subvec,
                                                      i64 %idx)
where the output vector is legal, but the input vector needs promoting.

It implements this by performing the whole operation on the promoted type,
and then truncating the result.

Reviewed By: david-arm, craig.topper

Differential Revision: https://reviews.llvm.org/D110059
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sve-insert-vector.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
Commit 9689c1b7bb77d65e8acc9a13e5e416803d38b02f by Stefan Gränitz
[lldb] JITLoaderGDB tests can use lli in ORC greedy mode

At first, lli only supported lazy mode for ORC. Greedy mode was added with e1579894d205 and is the default settings now. JITLoaderGDB tests don't rely on laziness, so we can switch them to greedy and remove some complexity.
The file was modifiedlldb/test/Shell/Breakpoint/jit-loader_jitlink_elf.test
The file was modifiedlldb/test/Shell/Breakpoint/jit-loader_rtdyld_elf.test
Commit b6d10beb505cbf17c21668cca0486f89ce35857c by a.bataev
[SLP][NFC]Rename function in the test for better matching of the
transformation.
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
Commit 05b130342143a0c93407cfbecf6d7cf30c6d1890 by andrew.ng
[ELF][test] Restore important part of ICF alignment test

Restore the checking of addresses in ICF test which was testing the
behaviour of ICF with regards to different alignments of otherwise
identical sections. Also make the test more robust to layout changes.

Differential Revision: https://reviews.llvm.org/D110090
The file was modifiedlld/test/ELF/icf7.s
Commit 3a00e58c2fca0c20d3792c897ef1ea54b6a168a0 by Tim Northover
AArch64: use indivisible cmpxchg for 128-bit atomic loads at O0

Like normal atomicrmw operations, at -O0 the simple register-allocator can
insert spills into the LL/SC loop if it's expanded and visible when regalloc
runs. This can cause the operation to never succeed by repeatedly clearing the
monitor. Instead expand to a cmpxchg, which has a pseudo-instruction for -O0.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic-128.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit 3e8d2008f74245e9e1ca60bc97e4e619b0d42c6c by sander.desmalen
[SelectionDAG] Remove PromoteIntOp_EXTRACT_SUBVECTOR.

This code seems untested and is likely obsolete, because this case
should already be handled by the code that legalizes the result type
of EXTRACT_SUBVECTOR.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D110061
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
Commit 6375ca40590b9fea49a9d7d20f80d3da6af381f1 by sander.desmalen
[AArch64][SVE] Add extract_subvector patterns for unpacked fp16 and bfloat types.

Reviewed By: david-arm

Differential Revision: https://reviews.llvm.org/D110163
The file was modifiedllvm/test/CodeGen/AArch64/sve-extract-vector.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Commit f7d1a60cac6b7bb3199e3aba083346bf0eb4a24f by JCTremoulet
[mailmap] Add entry for myself
The file was modified.mailmap
Commit 1cf86df8839ae2c8ebb7c68e1c355ec960a153cf by jhuber6
[OpenMP] Make sure the Thread ID function is not removed

Summary:
The thread ID function was reintroduced in D110195, but could
potentially be removed by the optimizer. Make the function noinline to
preserve the call sites and add it to the externalization RAII so its
definition is not removed by the attributor.
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Mapping.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/include/Utils.h
Commit c97820c50d73d05d3ec5679253206d1ac39d10ee by sander.desmalen
[AArch64][SVE] NFC: Move extract_subvector tests around.

This patch splits up sve-extract-vector.ll into
  * sve-extract-fixed-vector.ll
  * sve-extract-scalable-vector.ll

For testing extracts of a fixed-width or scalable sub-vector from a
scalable source vector, respectively.
The file was addedllvm/test/CodeGen/AArch64/sve-extract-scalable-vector.ll
The file was removedllvm/test/CodeGen/AArch64/sve-extract-vector.ll
The file was addedllvm/test/CodeGen/AArch64/sve-extract-fixed-vector.ll
Commit e5aaf0332670577cc19ac67b07b10261da6fc1e1 by gusrb406
[InstCombine] Update InstCombine to use poison instead of undef for shufflevector's placeholder (1/3)

This patch is for fixing potential shufflevector-related bugs like D93818.
As D93818, this patch change shufflevector's default placeholder to poison.
To reduce risk, it was divided into several patches, and this patch is for InstCombineCasts.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D110226
The file was modifiedllvm/test/Transforms/InstCombine/shufflevec-bitcast.ll
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-f16c.ll
The file was modifiedllvm/test/Transforms/InstCombine/trunc-inseltpoison.ll
The file was modifiedclang/test/Headers/wasm.c
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
The file was modifiedllvm/test/Transforms/InstCombine/shufflevec-bitcast-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/shuffle-cast-dist.ll
The file was modifiedllvm/test/Transforms/InstCombine/vector-casts.ll
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-f16c-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/cast.ll
The file was modifiedllvm/test/Transforms/InstCombine/trunc.ll
Commit b1f38a27f0c95fdf5f81eac4812b781a9d612425 by llvm-dev
[Target][CodeGen] Remove default CostKind arguments on inner/impl TTI overrides

Based off a discussion on D110100, we should be avoiding default CostKinds whenever possible.

This initial patch removes them from the 'inner' target implementation callbacks - these should only be used by the main TTI calls, so this should guarantee that we don't cause changes in CostKind by missing it in an inner call. This exposed a few missing arguments in getGEPCost and reduction cost calls that I've cleaned up.

Differential Revision: https://reviews.llvm.org/D110242
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was modifiedllvm/lib/Target/Lanai/LanaiTargetTransformInfo.h
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
The file was modifiedllvm/lib/Target/BPF/BPFTargetTransformInfo.h
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
The file was modifiedllvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
Commit 1864976c967de36146eb5a5b86e6312d466e1031 by tejohnson
[Sanitizer] Add Windows header for _mkdir

This will hopefully fix the sanitizer_windows bot failure after D109794:
https://lab.llvm.org/buildbot/#/builders/127/builds/17222
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_win.cpp
Commit b034593c8719e42a56cf4e6cb2ffb762783b0d7f by Louis Dionne
[libc++][NFC] Add link to Discord channel from documentation
The file was modifiedlibcxx/docs/Contributing.rst
Commit ec8311444abec8ad68a9fd08e509ae2178b43ca3 by gusrb406
[InstCombine] Update InstCombine to use poison instead of undef for shufflevector's placeholder (2/3)

This patch is for fixing potential shufflevector-related bugs like D93818.
As D93818, this patch change shufflevector's default placeholder to poison.
To reduce risk, it was divided into several patches, and this patch is for InstCombineCompares and InstructionCombining.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D110227
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/transpose-inseltpoison.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/test/Transforms/InstCombine/icmp-vec.ll
The file was modifiedllvm/test/Transforms/InstCombine/shufflevector-div-rem-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/shuffle.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/shuffle-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/broadcast.ll
The file was modifiedllvm/test/Transforms/InstCombine/vec-binop-select-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/transpose.ll
The file was modifiedllvm/test/Transforms/InstCombine/shufflevector-div-rem.ll
The file was modifiedllvm/test/Transforms/InstCombine/gep-inbounds-null.ll
The file was modifiedllvm/test/Transforms/InstCombine/getelementptr.ll
The file was modifiedllvm/test/Transforms/InstCombine/vec_shuffle-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-int-inseltpoison.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/icmp-vec-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/vec-binop-select.ll
The file was modifiedllvm/test/Transforms/InstCombine/broadcast-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/vec_shuffle.ll
The file was modifiedllvm/test/Transforms/InstCombine/vscale_cmp.ll