Changes

Summary

  1. test-release.sh: Kill python2 (details)
  2. [RISCV] Add test case showing suboptimal BUILD_VECTOR lowering (details)
  3. [RISCV] Optimize floating-point "dominant value" BUILD_VECTORs (details)
  4. [LoopFlatten] Fix missed LoopFlatten opportunity (details)
  5. Fix FindZ3.cmake to support static libraries and Windows (details)
  6. [mlir] Remove the default isDynamicallyLegal hook (details)
  7. [mlir] Put back virtual ~ConversionTarget(), some users started relying on it (details)
  8. [AMDGPU][GlobalISel] Insert an and with exec before s_cbranch_vccnz if necessary (details)
  9. [lldb][AArch64] Annotate synchronous tag faults (details)
  10. NFC: Change quotes from Unicode to ASCII (details)
  11. [AArch64][GlobalISel] More widenToNextPow2 changes, this time for arithmetic/bitwise ops. (details)
Commit 9ff030ca50e327d522e80ee20f4d5febcce94a24 by diana.picus
test-release.sh: Kill python2

Don't prefer python2's virtualenv when setting up the test-suite.
Always use python3 instead, since that's what we support everywhere else
anyway.

Differential Revision: https://reviews.llvm.org/D106941
The file was modifiedllvm/utils/release/test-release.sh
Commit a33f60db39836d94a79557b147515d42d30ecba3 by fraser
[RISCV] Add test case showing suboptimal BUILD_VECTOR lowering

The second test case added here was pointed out to me by @craig.topper
and shows how we "optimize" a two-element BUILD_VECTOR from being one
load from the constant pool to two loads from the constant pool.

The first test case shows that since materialization for the
floating-point +0.0 value is cheap and doesn't involve a load, the
optimization is more clearly beneficial here.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D106962
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
Commit 02dd4b59bc0d34ecd41fcc314f5571572b3feebc by fraser
[RISCV] Optimize floating-point "dominant value" BUILD_VECTORs

This patch aims to improve the performance of BUILD_VECTORs which are
identified as containing a dominant element. Given that most
floating-point constants themselves require a load from the constant
pool, it was possible for the optimization to actually increase the
number of individual loads on small vectors. The exception is the zero
constant -- +0.0 -- which can be materialized efficiently.

While this optimization could do with a proper cost model to weigh the
benfits of a single vector load vs. the manipulation of individual
elements -- even for integer vectors which often require several
instructions to materialize -- without a concrete RVV implementation to
work with any heuristic is likely to be both more obtuse and inaccurate.

Until then, this patch fixes at least one known obvious deficiency.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D106963
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
Commit 2df8bf9339e43de63d8d28e07182e1d6d7ffb843 by rosie.sumpter
[LoopFlatten] Fix missed LoopFlatten opportunity

When the trip count of the inner loop is a constant, the InstCombine
pass now causes the transformation e.g. imcp ult i32 %inc, tripcount ->
icmp ult %j, tripcount-step (where %j is the inner loop induction
variable and %inc is add %j, step), which is now accounted for when
identifying the trip count of the loop. This is also an acceptable use
of %j (provided the step is 1) so is ignored as long as the compare
that it's used in is also the condition of the inner branch.

Differential Revision: https://reviews.llvm.org/D105802
The file was modifiedllvm/lib/Transforms/Scalar/LoopFlatten.cpp
The file was modifiedllvm/test/Transforms/LoopFlatten/loop-flatten-negative.ll
The file was modifiedllvm/test/Transforms/LoopFlatten/loop-flatten.ll
Commit f1ab60e40d16970381a003e145be6d5932823597 by balazs.benics
Fix FindZ3.cmake to support static libraries and Windows

Use absolute path to link z3 to allow builds both on windows and linux
since the library name is platform dependent for Z3 (libz3 on Windows
and z3 on Linux) and MSVC does not recognized -L and -l options.
Fix CMAKE_CROSSCOMPILING that does not work correctly since it uses
Z3_BUILD_VERSION instead of Z3_BUILD_NUMBER
Fix building with the static version of z3 library (supersedes D80227).

- Build the Z3 version detection code as C++, since the static
   library brings in libstdc++ symbols
- Detect threading support and link against threading, in the
   (likely) case Z3 was built with threads

Exposed compilation error from building a program that is used to detect
z3 version in the warning message, to simplify troubleshooting.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D106131
The file was modifiedllvm/cmake/modules/FindZ3.cmake
Commit 1c9c2c91d4d4b62d99ea1472de4d01eb7d7e6ee0 by benny.kra
[mlir] Remove the default isDynamicallyLegal hook

This is redundant with the callback variant and untested. Also remove
the callback-less methods for adding a dynamically legal op, as they
are no longer useful.

Differential Revision: https://reviews.llvm.org/D106786
The file was modifiedmlir/include/mlir/Transforms/DialectConversion.h
The file was modifiedmlir/lib/Transforms/Utils/DialectConversion.cpp
The file was modifiedmlir/docs/DialectConversion.md
Commit d81a843846f4171ffe3f44b66bf3a9fda5c411cf by benny.kra
[mlir] Put back virtual ~ConversionTarget(), some users started relying on it
The file was modifiedmlir/include/mlir/Transforms/DialectConversion.h
Commit 971f4173f82da6e13ee4c5b1a0301ba0fde0d696 by Mirko.Brkusanin
[AMDGPU][GlobalISel] Insert an and with exec before s_cbranch_vccnz if necessary

While v_cmp will AND inactive lanes with 0, that is not the case for logical
operations.

This fixes a Vulkan CTS test that would hang otherwise.

Differential Revision: https://reviews.llvm.org/D105709
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-brcond.mir
Commit d510b5f199d6e7a3062b5a6ea43181c4cc00a605 by david.spickett
[lldb][AArch64] Annotate synchronous tag faults

In the latest Linux kernels synchronous tag faults
include the tag bits in their address.
This change adds logical and allocation tags to the
description of synchronous tag faults.
(asynchronous faults have no address)

Process 1626 stopped
* thread #1, name = 'a.out', stop reason = signal SIGSEGV: sync tag check fault (fault address: 0x900fffff7ff9010 logical tag: 0x9 allocation tag: 0x0)

This extends the existing description and will
show as much as it can on the rare occasion something
fails.

This change supports AArch64 MTE only but other
architectures could be added by extending the
switch at the start of AnnotateSyncTagCheckFault.
The rest of the function is generic code.

Tests have been added for synchronous and asynchronous
MTE faults.

Reviewed By: omjavaid

Differential Revision: https://reviews.llvm.org/D105178
The file was modifiedlldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp
The file was modifiedlldb/source/Plugins/Process/Linux/NativeThreadLinux.h
The file was addedlldb/test/API/linux/aarch64/mte_tag_faults/TestAArch64LinuxMTEMemoryTagFaults.py
The file was addedlldb/test/API/linux/aarch64/mte_tag_faults/Makefile
The file was addedlldb/test/API/linux/aarch64/mte_tag_faults/main.c
Commit d8fd2146daaa28d118fd7c29d63e817a8c955b81 by kbobyrev
NFC: Change quotes from Unicode to ASCII

This was causing some problems for Python scripts that we have.

Context: https://reviews.llvm.org/D106792
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/abseil-no-internal-dependencies.rst
Commit da61ab847577dd81d6267c532d9810fc19596033 by Amara Emerson
[AArch64][GlobalISel] More widenToNextPow2 changes, this time for arithmetic/bitwise ops.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-and.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-add.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp