SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [analyzer] SATestBuild.py: Be defensive against corrupt plist files. (details)
  2. Revert "[libc++] [LWG3321] Mark "year_month_day_last::day() specification does not cover !ok() values" issue as "Nothing to do", but add assertion." (details)
  3. [AMDGPU][MC][GFX9+] Enabled clamp for v_add_i32 and v_sub_i32 (details)
  4. [lldb] Merge PlatformXXX::ResolveExecutable (details)
  5. [mlir] Adapted standard Alloc and Alloca ops to use new side-effect resources. (details)
  6. [compiler-rt] [builtin] Switch the return type of __atomic_compare_exchange_##n to bool (details)
  7. [StructurizeCFG] Fix region nodes ordering (details)
  8. Recommit #2: "[LV] Induction Variable does not remain scalar under tail-folding." (details)
  9. Clang crash targeting ARM or Thumb when assembling a prel31 relocation variant (details)
  10. [MLIR] Nested regions test for Buffer Assginment (details)
  11. [LSR][ARM] Add new TTI hook to mark some LSR chains as profitable (details)
Commit 8cbd3f431a919e3398683bb5b72fdd781798bcc8 by Artem Dergachev
[analyzer] SATestBuild.py: Be defensive against corrupt plist files.
The file was modifiedclang/utils/analyzer/SATestBuild.py
Commit ab61fe41505c0dab8c05b3b6792454fc097b2999 by marek
Revert "[libc++] [LWG3321] Mark "year_month_day_last::day() specification does not cover !ok() values" issue as "Nothing to do", but add assertion."

This reverts commit e25a2601aaa95c861af3228982ecbb2b1c19d27a.
It was failing due to _LIBCPP_ASSERT throwing in a method marked noexcept.
The file was modifiedlibcxx/include/chrono
The file was modifiedlibcxx/www/cxx2a_status.html
Commit 18a5428e60272482e7a3855fbfd40427e8066be6 by dmitry.preobrazhensky
[AMDGPU][MC][GFX9+] Enabled clamp for v_add_i32 and v_sub_i32

See bug 45830: https://bugs.llvm.org/show_bug.cgi?id=45830

Reviewers: arsenm, rampitec

Differential Revision: https://reviews.llvm.org/D79585
The file was modifiedllvm/lib/Target/AMDGPU/VOP3Instructions.td
The file was modifiedllvm/test/MC/AMDGPU/gfx10_asm_all.s
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/gfx10_dasm_all.txt
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/vop3_gfx9.txt
The file was modifiedllvm/test/MC/AMDGPU/vop3-gfx9.s
Commit e072b20bdea5629d0bc7a7c2216bdc7762dcb564 by pavel
[lldb] Merge PlatformXXX::ResolveExecutable

The near-identical implementations of this function for posix-y
platforms were merged in r293910. PlatformWindows was left out of this
merge because at the time we did not have a suitable base class to sink
the code into. That is no longer true, so this commit finishes the job
by moving the code into RemoteAwarePlatform::ResolveExecutable.
The file was modifiedlldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
The file was modifiedlldb/source/Target/RemoteAwarePlatform.cpp
The file was modifiedlldb/include/lldb/Target/RemoteAwarePlatform.h
The file was modifiedlldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
The file was modifiedlldb/source/Plugins/Platform/Windows/PlatformWindows.h
The file was modifiedlldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h
Commit 881c3bb6a7323fe01f95d4e95755c78cd805056f by marcel.koester
[mlir] Adapted standard Alloc and Alloca ops to use new side-effect resources.

The current standard Alloca node is not annotated with the
MemEffect<Alloc> trait. This CL updates the Alloc and Alloca
memory-effect annotations using the latest Resource objects. Alloca
nodes will use a newly defined AutomaticAllocationScopeResource to
distinguish between Alloc and Alloca memory effects.

Differential Revision: https://reviews.llvm.org/D79620
The file was modifiedmlir/include/mlir/Interfaces/SideEffects.h
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/include/mlir/Interfaces/SideEffectInterfaces.td
Commit f61f6ffe1126869b05a6f0b8fdee7b24c02d24f3 by n54
[compiler-rt] [builtin] Switch the return type of __atomic_compare_exchange_##n to bool

Summary:
Synchronize the function definition with the LLVM documentation.

https://llvm.org/docs/Atomics.html#libcalls-atomic

GCC also returns bool for the same atomic builtin.

Reviewers: theraven

Reviewed By: theraven

Subscribers: theraven, dberris, jfb, #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D79845
The file was modifiedcompiler-rt/lib/builtins/atomic.c
Commit 897d8ee5cd693e17f95a7e84194bca4c089a520b by ehudkatz
[StructurizeCFG] Fix region nodes ordering

This is a reimplementation of the `orderNodes` function, as the old
implementation didn't take into account all cases.

Fix PR41509

Differential Revision: https://reviews.llvm.org/D79037
The file was modifiedllvm/lib/Transforms/Scalar/StructurizeCFG.cpp
The file was addedllvm/test/Transforms/StructurizeCFG/interleaved-loop-order.ll
Commit 9529597cf4562c64034943dacc29a4ff4fe93d86 by sjoerd.meijer
Recommit #2: "[LV] Induction Variable does not remain scalar under tail-folding."

This was reverted because of a miscompilation. At closer inspection, the
problem was actually visible in a changed llvm regression test too. This
one-line follow up fix/recommit will splat the IV, which is what we are trying
to avoid if unnecessary in general, if tail-folding is requested even if all
users are scalar instructions after vectorisation. Because with tail-folding,
the splat IV will be used by the predicate of the masked loads/stores
instructions. The previous version omitted this, which caused the
miscompilation. The original commit message was:

If tail-folding of the scalar remainder loop is applied, the primary induction
variable is splat to a vector and used by the masked load/store vector
instructions, thus the IV does not remain scalar. Because we now mark
that the IV does not remain scalar for these cases, we don't emit the vector IV
if it is not used. Thus, the vectoriser produces less dead code.

Thanks to Ayal Zaks for the direction how to fix this.
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/imprecise-through-phis.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/pr35432.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/small-size.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/vect.omp.force.small-tc.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/fcmp-vectorize.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/vector-intrinsic-call-cost.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/PowerPC/vectorize-bswap.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/SystemZ/predicated-first-order-recurrence.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/x86-interleaved-accesses-masked-group.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/metadata-enable.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/runtime-check-needed-but-empty.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/if-pred-stores.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/constant-fold.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/strided_load_cost.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/pr36524.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/pr36032.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/Hexagon/invalidate-cm-after-invalidating-interleavegroups.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/if-reduction.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/sphinx.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/float-minmax-instruction-flag.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/pr44488-predication.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/optsize.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/pr35773.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
Commit 410644fbf767d5853f170cb2d664a5fef37cb20a by simon.wallis2
Clang crash targeting ARM or Thumb when assembling a prel31 relocation variant

Summary:
In the assembler or inline assembler,
attempting to use an invalid fixup type
gives a crash with a segmentation fault.

__attribute__((naked))
void foo(void) {
__asm__("mov r9, :lower16:bar(prel31)");
}

This should give a proper error message when building for ARM or Thumb.
This brings it in line with AARCH64.

This fixes all 8 instances of llvm_unreachable("Unsupported Modifier");
in ARM/MCTargetDesc/ARMELFObjectWriter.cpp.
A test is provided for each instance.

Reviewers: llvm-commits, MarkMurrayARM

Reviewed By: MarkMurrayARM

Subscribers: kristof.beyls, hiraditya, danielkiss

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79782

Change-Id: I6971ba37f129cc453568fe71514ccb2ac9d16831
The file was modifiedllvm/test/MC/ARM/error-location.s
The file was modifiedllvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
Commit 1b140a87a5815513da69fa894e9533f500ea1c12 by ehsan.nadjaran_toosi
[MLIR] Nested regions test for Buffer Assginment

Due to the extension of Liveness, Buffer Assignment can now work on nested regions. This PR provides a test case to show that existing functionally of BA works properly.

Differential Revision: https://reviews.llvm.org/D79332
The file was modifiedmlir/test/Transforms/buffer-placement.mlir
Commit 2668775f66656f719f7d8164066ec5ca64d707f2 by pierre.vanhoutryve
[LSR][ARM] Add new TTI hook to mark some LSR chains as profitable

This patch adds a new TTI hook to allow targets to tell LSR that
a chain including some instruction is already profitable and
should not be optimized. This patch also adds an implementation
of this TTI hook for ARM so LSR doesn't optimize chains that include
the VCTP intrinsic.

Differential Revision: https://reviews.llvm.org/D79418
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/lsr-profitable-chain.ll
The file was addedllvm/test/Transforms/LoopStrengthReduce/ARM/vctp-chains.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h