SuccessChanges

Summary

  1. [mlir][VectorToGPU] First step to convert vector ops to GPU MMA ops (details)
  2. [SLP][NFC]Add a test for unordered stores, NFC. (details)
  3. [SLP]Remove unnecessary UndefValue in CreateShuffle. (details)
  4. [lld/mac] Use sectionType() more (details)
  5. [HWASan] Add basic stack tagging support for LAM. (details)
  6. [Sema] Address-space sensitive check for unbounded arrays (v2) (details)
  7. Revert "[Sema] Address-space sensitive check for unbounded arrays (v2)" (details)
  8. [SLP]Allow reordering of insertelements. (details)
  9. [CodeGen][regalloc] Don't align stack slots if the stack can't be realigned (details)
  10. Update the C status page somewhat. (details)
  11. [lldb-vscode] Synchronize calls to SendTerminatedEvent (details)
  12. [HIP] Fix --hip-version flag with 0 as component (details)
  13. [Matrix] In transpose opts, handle a^t * a^t (details)
  14. [libcxx][ranges] Add range.subrange. (details)
  15. [gn build] Port 9106047ee3dd (details)
  16. [libc++] Enable the synchronization library on Apple platforms (details)
  17. [X86FixupLEAs] Sub register usage of LEA dest should block LEA/SUB optimization (details)
  18. [libc++] NFC: Move indirect_concepts.h to __iterator/concepts.h (details)
  19. [gn build] Port c54d3050f7b9 (details)
  20. [SLP][NFC] Fix condition that was supposed to save a bit of compile time. (details)
Commit edd9515bd125634f40ebc2e783d6a127345e7c0d by thomasraoux
[mlir][VectorToGPU] First step to convert vector ops to GPU MMA ops

This is the first step to convert vector ops to MMA operations in order to
target GPUs tensor core ops. This currently only support simple cases,
transpose and element-wise operation will be added later.

Differential Revision: https://reviews.llvm.org/D102962
The file was modifiedmlir/include/mlir/Conversion/Passes.td
The file was modifiedmlir/include/mlir/Conversion/Passes.h
The file was addedmlir/lib/Conversion/VectorToGPU/CMakeLists.txt
The file was addedmlir/lib/Conversion/VectorToGPU/VectorToGPU.cpp
The file was addedmlir/test/Conversion/VectorToGPU/vector-to-mma-ops.mlir
The file was addedmlir/include/mlir/Conversion/VectorToGPU/VectorToGPU.h
The file was modifiedmlir/lib/Conversion/CMakeLists.txt
Commit cd2bb16d563ef515903b2f421c0f0a1899314af5 by a.bataev
[SLP][NFC]Add a test for unordered stores, NFC.
The file was addedllvm/test/Transforms/SLPVectorizer/X86/stores-non-ordered.ll
Commit 74af4bb1f471d042084328271bad80fe2acde8f4 by a.bataev
[SLP]Remove unnecessary UndefValue in CreateShuffle.

No need to use UndefValue in CreateShuffle call.

Differential Revision: https://reviews.llvm.org/D104113
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/phi.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/sext.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/load-merge-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr49081.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/sext-inseltpoison.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-fp-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/cmp_commute-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR35865-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-calls-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-cast-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-cast.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/vectorize-free-extracts-inserts.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/load-merge.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/cmp_commute.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/transpose-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AMDGPU/add_sub_sat.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/resched.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/gather-root.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/transpose.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/arith-fp.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR35865.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-int-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/arith-fp-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-fp.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AMDGPU/add_sub_sat-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-calls.ll
Commit f2b1a1e10c5a4a3e96cc244adfbacfb5e97c3ca5 by thakis
[lld/mac] Use sectionType() more

Not sure sectionType() carries its weight, but while we have it
we should use it consistently.

No behavior change.

Differential Revision: https://reviews.llvm.org/D104027
The file was modifiedlld/MachO/ConcatOutputSection.cpp
The file was modifiedlld/MachO/InputSection.cpp
Commit 0867edfc643891c22ef089f8f6a4dadc691f0742 by mascasa
[HWASan] Add basic stack tagging support for LAM.

Adds the basic instrumentation needed for stack tagging.

Currently does not support stack short granules or TLS stack histories,
since a different code path is followed for the callback instrumentation
we use.

We may simply wait to support these two features until we switch to
a custom calling convention.

Patch By: xiangzhangllvm, morehouse

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D102901
The file was modifiedcompiler-rt/test/hwasan/TestCases/longjmp.c
The file was modifiedcompiler-rt/test/hwasan/TestCases/deep-recursion.c
The file was modifiedclang/lib/Driver/SanitizerArgs.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
The file was modifiedclang/test/Driver/fsanitize.c
The file was addedllvm/test/Instrumentation/HWAddressSanitizer/X86/alloca-array.ll
The file was addedllvm/test/Instrumentation/HWAddressSanitizer/X86/alloca.ll
The file was modifiedcompiler-rt/test/hwasan/TestCases/stack-uar-realign.c
The file was modifiedcompiler-rt/test/hwasan/TestCases/mem-intrinsics.c
The file was modifiedcompiler-rt/test/hwasan/TestCases/stack-oob.c
The file was modifiedcompiler-rt/test/hwasan/TestCases/stack-uar.c
The file was modifiedcompiler-rt/test/hwasan/TestCases/stack-uar-dynamic.c
The file was modifiedcompiler-rt/test/hwasan/TestCases/rich-stack.c
The file was modifiedcompiler-rt/test/hwasan/TestCases/stack-history-length.c
The file was addedllvm/test/Instrumentation/HWAddressSanitizer/X86/alloca-with-calls.ll
Commit e42a347b74400b7212ceaaea6d39562a0435df42 by Chris.Hamilton
[Sema] Address-space sensitive check for unbounded arrays (v2)

Check applied to unbounded (incomplete) arrays and pointers to spot
cases where the computed address is beyond the largest possible
addressable extent of the array, based on the address space in which the
array is delcared, or which the pointer refers to.

Check helps to avoid cases of nonsense pointer math and array indexing
which could lead to linker failures or runtime exceptions.  Of
particular interest when building for embedded systems with small
address spaces.

This is version 2 of this patch -- version 1 had some testing issues
due to a sign error in existing code.  That error is corrected and
lit test for this chagne is extended to verify the fix.

Originally reviewed/accepted by: aaron.ballman
Original revision: https://reviews.llvm.org/D86796

Reviewed By: aaron.ballman, ebevhan

Differential Revision: https://reviews.llvm.org/D88174
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/Sema/const-eval.c
The file was modifiedclang/test/SemaCXX/constant-expression-cxx14.cpp
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was addedclang/test/Sema/unbounded-array-bounds.c
Commit 7e9822cc55065b7c450dda254340765794e11fe3 by Chris.Hamilton
Revert "[Sema] Address-space sensitive check for unbounded arrays (v2)"

This reverts commit e42a347b74400b7212ceaaea6d39562a0435df42.
The file was modifiedclang/test/Sema/const-eval.c
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was removedclang/test/Sema/unbounded-array-bounds.c
The file was modifiedclang/test/SemaCXX/constant-expression-cxx14.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
Commit a010d4230e13790b6ff7d2b8f49d478185489fb4 by a.bataev
[SLP]Allow reordering of insertelements.

After we added support for non-ordered insertelements, we can allow
their reordering.

Differential Revision: https://reviews.llvm.org/D104057
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/vectorize-free-extracts-inserts.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/external_user_jumbled_load-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/operandorder.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/external_user_jumbled_load.ll
Commit 773771ba382b1fbcf6acccc0046bfe731541a599 by tomas.matheson
[CodeGen][regalloc] Don't align stack slots if the stack can't be realigned

Register allocation may spill virtual registers to the stack, which can
increase alignment requirements of the stack frame. If the the function
did not require stack realignment before register allocation, the
registers required to do so may not be reserved/available. This results
in a stack frame that requires realignment but can not be realigned.

Instead, only increase the alignment of the stack if we are still able
to realign.

The register SpillAlignment will be ignored if we can't realign, and the
backend will be responsible for emitting the correct unaligned loads and
stores. This seems to be the assumed behaviour already, e.g.
ARMBaseInstrInfo::storeRegToStackSlot and X86InstrInfo::storeRegToStackSlot
are both `canRealignStack` aware.

Differential Revision: https://reviews.llvm.org/D103602
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vldst4.ll
The file was modifiedllvm/test/CodeGen/X86/avx512-regcall-NoMask.ll
The file was modifiedllvm/test/CodeGen/X86/stack-folding-int-avx512.ll
The file was modifiedllvm/test/CodeGen/X86/AMX/amx-across-func.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-increment.ll
The file was modifiedllvm/test/CodeGen/X86/vector-half-conversions.ll
The file was modifiedllvm/test/CodeGen/X86/half.ll
The file was modifiedllvm/test/CodeGen/X86/vec-strict-128.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vst4.ll
The file was modifiedllvm/test/CodeGen/X86/avx-vzeroupper.ll
The file was modifiedllvm/test/CodeGen/X86/stack-folding-fp-avx512.ll
The file was modifiedllvm/test/CodeGen/X86/AMX/amx-lower-tile-copy.ll
The file was modifiedllvm/test/CodeGen/X86/avx-intrinsics-x86_64.ll
The file was modifiedllvm/test/CodeGen/X86/div-rem-pair-recomposition-unsigned.ll
The file was modifiedllvm/test/CodeGen/X86/avx512-bugfix-25270.ll
The file was modifiedllvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-4.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-multivec-spill.ll
The file was modifiedllvm/test/CodeGen/X86/vec-libcalls.ll
The file was modifiedllvm/test/CodeGen/X86/AMX/amx-spill.ll
The file was modifiedllvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll
The file was modifiedllvm/test/CodeGen/X86/AMX/amx-spill-merge.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-postinc-dct.ll
The file was modifiedllvm/test/CodeGen/X86/div-rem-pair-recomposition-signed.ll
The file was modifiedllvm/test/CodeGen/X86/rotate-extract-vector.ll
The file was modifiedllvm/test/CodeGen/X86/vzero-excess.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-scatter-increment.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-float32regloops.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-phireg.ll
The file was modifiedllvm/lib/CodeGen/VirtRegMap.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vld4.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-postinc-lsr.ll
The file was modifiedllvm/test/CodeGen/X86/addsub-constant-folding.ll
The file was modifiedllvm/test/CodeGen/X86/fma.ll
The file was modifiedllvm/test/CodeGen/X86/sext-vsetcc.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-mlapred.ll
Commit 82a3b606b01d2da23a40785222f3f7d15401dda0 by aaron
Update the C status page somewhat.

This adds implementation information for N2607,
clarifies that C17 only resolved defect reports,
and adds -std= information for the different versions.
The file was modifiedclang/www/c_status.html
Commit 5ef5177145b48e6379fe3a6434d3ff593fe7202a by asahay
[lldb-vscode] Synchronize calls to SendTerminatedEvent

If an inferior exits prior to the processing of a disconnect request,
then the threads executing EventThreadFunction and request_discontinue
respectively may call SendTerminatedEvent simultaneously, in turn,
testing and/or setting g_vsc.sent_terminated_event without any
synchronization. In case the thread executing EventThreadFunction sets
it before the thread executing request_discontinue has had a chance to
test it, the latter would move ahead to issue a response to the
disconnect request. Said response may be dispatched ahead of the
terminated event compelling the client to terminate the debug session
without consuming any console output that might've been generated by
the execution of terminateCommands.

Reviewed By: clayborg, wallace

Differential Revision: https://reviews.llvm.org/D103609
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp
Commit f2cc0427b13ef10e67eed6eab9eefb58e8aef3d9 by enye.shi
[HIP] Fix --hip-version flag with 0 as component

Allow the usage of minor version 0, for hip versions
such as 4.0. Change the default values when performing
version checks.

Reviewed By: yaxunl

Differential Revision: https://reviews.llvm.org/D104062
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.cpp
The file was modifiedclang/test/Driver/hip-version.hip
Commit e0efebb8eb7cec4a90c73d693c9e1e7fbce8d637 by anemet
[Matrix] In transpose opts, handle a^t * a^t

Without the fix the testcase crashes because we remove the same instruction
twice.

Differential Revision: https://reviews.llvm.org/D104127
The file was modifiedllvm/test/Transforms/LowerMatrixIntrinsics/transpose-opts.ll
The file was modifiedllvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
Commit 9106047ee3dd93a250deb1ef34b890f486dee710 by zoecarver
[libcxx][ranges] Add range.subrange.

Basically the title.

Differential Revision: https://reviews.llvm.org/D102006
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/ctor/range_size.pass.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/ctad.compile.pass.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/ctor/pair_like_conv.pass.cpp
The file was modifiedlibcxx/include/CMakeLists.txt
The file was addedlibcxx/include/__ranges/subrange.h
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/subrange_test_types.h
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/ctor/begin_end_size.pass.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/ctor/range.pass.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/ctor/begin_end.pass.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/access/advance.pass.cpp
The file was modifiedlibcxx/include/ranges
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/general.compile.pass.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/access/primitives.pass.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/access/get.pass.cpp
Commit 2244a0f5fe627bacd32e493604b5c604ef41d361 by llvmgnsyncbot
[gn build] Port 9106047ee3dd
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit f84dbd2f2befb628ac2ac151fed495d70a2d05be by Louis Dionne
[libc++] Enable the synchronization library on Apple platforms

The synchronization library was marked as disabled on Apple platforms
up to now because we were not 100% sure that it was going to be ABI
stable. However, it's been some time since we shipped it in upstream
libc++ now and there's been no changes so far. This patch enables the
synchronization library on Apple platforms, and hence commits the ABI
stability as far as that vendor is concerned.

Differential Revision: https://reviews.llvm.org/D96790
The file was modifiedlibcxx/include/__availability
The file was modifiedlibcxx/test/std/thread/thread.barrier/arrive.pass.cpp
The file was modifiedlibcxx/test/std/thread/thread.barrier/completion.pass.cpp
The file was modifiedlibcxx/test/std/thread/thread.latch/try_wait.pass.cpp
The file was modifiedlibcxx/test/std/thread/thread.semaphore/release.pass.cpp
The file was modifiedlibcxx/test/std/thread/thread.latch/arrive_and_wait.pass.cpp
The file was modifiedlibcxx/test/std/thread/thread.semaphore/acquire.pass.cpp
The file was modifiedlibcxx/test/std/thread/thread.semaphore/timed.pass.cpp
The file was modifiedlibcxx/test/std/thread/thread.latch/count_down.pass.cpp
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_wait.pass.cpp
The file was modifiedlibcxx/test/std/thread/thread.semaphore/try_acquire.pass.cpp
The file was modifiedlibcxx/test/std/thread/thread.semaphore/binary.pass.cpp
The file was modifiedlibcxx/test/std/thread/thread.barrier/arrive_and_drop.pass.cpp
The file was modifiedlibcxx/test/std/thread/thread.barrier/arrive_and_wait.pass.cpp
Commit f35bcea1d4748889b8240defdf00cb7a71cbe070 by carrot
[X86FixupLEAs] Sub register usage of LEA dest should block LEA/SUB optimization

In function searchALUInst, sub register usage of LEA dest should also block LEA/SUB optimization, otherwise the sub register usage gets an undefined value.

This patch fixes https://bugs.llvm.org/show_bug.cgi?id=50615.

Differential Revision: https://reviews.llvm.org/D103922
The file was modifiedllvm/test/CodeGen/X86/lea-opt2.ll
The file was modifiedllvm/lib/Target/X86/X86FixupLEAs.cpp
Commit c54d3050f7b9fa550144f792d79ec5b2d5de31c5 by Louis Dionne
[libc++] NFC: Move indirect_concepts.h to __iterator/concepts.h

There's no fundamental reason to separate those from the other iterator
concepts.

Differential Revision: https://reviews.llvm.org/D104048
The file was modifiedlibcxx/include/__iterator/projected.h
The file was modifiedlibcxx/include/iterator
The file was modifiedlibcxx/include/__iterator/concepts.h
The file was modifiedlibcxx/include/CMakeLists.txt
The file was removedlibcxx/include/__iterator/indirect_concepts.h
Commit ee98f600de9ed1498fae75a08382a1f73c1d69bb by llvmgnsyncbot
[gn build] Port c54d3050f7b9
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit 94a07c79cf108b8b9566acfa64d11aca27d60a84 by valery.n.dmitriev
[SLP][NFC] Fix condition that was supposed to save a bit of compile time.

It was found by chance revealing discrepancy between comment (few lines above),
the condition and how re-ordering of instruction is done inside the if statement
it guards. The condition was always evaluated to true.

Differential Revision: https://reviews.llvm.org/D104064
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp