SuccessChanges

Summary

  1. Emit predefined macro for wavefront size for amdgcn (details)
  2. [TableGen] New backend to print detailed records. (details)
  3. [gn build] Port 0c1bb4f8851 (details)
  4. [compiler-rt] [netbsd] Improve the portability of ThreadSelfTlsTcb (details)
  5. Fix failure in test hip-macros.hip (details)
  6. [Statepoints][ISEL] visitGCRelocate: chain to current DAG root. (details)
  7. Fix interaction between stack alignment and inline-asm stack clash protection (details)
  8. [mlir] Attempt to appease gcc-5 const char* -> StringLiteral conversion issu (details)
  9. [mlir] Fix call op conversion in bare-ptr calling convention (details)
  10. [clangd] Add bencmark for measuring latency of DecisionForest model. (details)
  11. [AArch64] Generate dot for v16i8 sum reduction to i32 (details)
  12. TruncInstCombine.cpp - use auto * to fix llvm-qualified-auto clang-tidy warning. NFCI. (details)
  13. TruncInstCombine.cpp - fix header include ordering to fix llvm-include-order clang-tidy warning. NFCI. (details)
  14. [InstCombine] recognizeBSwapOrBitReverseIdiom - support for 'partial' bswap patterns (PR47191) (details)
  15. Revert "[WebAssembly] Emulate v128.const efficiently" (details)
  16. [CostModel] move default handling after switch; NFC (details)
  17. [MLIR] Better message for FuncOp type mismatch (details)
  18. [mlir] Add Float Attribute, Integer Attribute and Bool Attribute subclasses to python bindings. (details)
  19. [MemCpyOpt] Regnerate test checks (NFC) (details)
  20. [VPlan] Use isa<> instead of directly checking VPRecipeID (NFC). (details)
Commit 36501b180a4f0194f0cfb4374d096ae660182827 by Yaxun.Liu
Emit predefined macro for wavefront size for amdgcn

Also fix the issue of multiple -m[no-]wavefrontsize64
options to make the last one wins.

Differential Revision: https://reviews.llvm.org/D88370
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.cpp
The file was modifiedclang/test/Driver/hip-toolchain-features.hip
The file was modifiedclang/test/Driver/amdgpu-macros.cl
The file was addedclang/test/Driver/hip-macros.hip
The file was modifiedclang/lib/Basic/Targets/AMDGPU.h
The file was modifiedclang/lib/Basic/Targets/AMDGPU.cpp
The file was modifiedclang/test/Driver/amdgpu-features.c
Commit 0c1bb4f8851b87224f33abafbaae805942009a7f by paul
[TableGen] New backend to print detailed records.
Pertinent lints are fixed.
The file was modifiedllvm/utils/TableGen/TableGen.cpp
The file was modifiedllvm/lib/TableGen/Main.cpp
The file was modifiedllvm/include/llvm/TableGen/Record.h
The file was modifiedllvm/lib/Support/SourceMgr.cpp
The file was modifiedllvm/lib/TableGen/TableGenBackendSkeleton.cpp
The file was modifiedllvm/docs/TableGen/BackGuide.rst
The file was modifiedllvm/include/llvm/Support/SourceMgr.h
The file was modifiedllvm/lib/TableGen/Record.cpp
The file was modifiedllvm/lib/TableGen/CMakeLists.txt
The file was addedllvm/lib/TableGen/DetailedRecordsBackend.cpp
Commit d9e397208002281322cb72383edff24e21dbeb27 by llvmgnsyncbot
[gn build] Port 0c1bb4f8851
The file was modifiedllvm/utils/gn/secondary/llvm/lib/TableGen/BUILD.gn
Commit 2a9ce60de98e53198047daaeeec3cf09ece4e693 by n54
[compiler-rt] [netbsd] Improve the portability of ThreadSelfTlsTcb

Use __lwp_gettcb_fast() and __lwp_getprivate_fast(), as _lwp_getprivate()
can be a biased pointer and invalid for use in this function on all CPUs.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
Commit c87c017a4c47c47b002b9f55f25285298cd07093 by Yaxun.Liu
Fix failure in test hip-macros.hip

requires amdgpu-registered-target.
The file was modifiedclang/test/Driver/hip-macros.hip
Commit 7b19cd06d732e9c3db326dc9b9c82d66dc624fd2 by dantrushin
[Statepoints][ISEL] visitGCRelocate: chain to current DAG root.

This is similar to D87251, but for CopyFromRegs nodes.
Even for local statepoint uses we generate CopyToRegs/CopyFromRegs
nodes.  When generating CopyFromRegs in visitGCRelocate, we must chain
to current DAG root, not EntryNode, to ensure proper ordering of copy
w.r.t. statepoint node producing result for it.

Reviewed By: reames

Differential Revision: https://reviews.llvm.org/D88639
The file was modifiedllvm/test/CodeGen/X86/statepoint-vreg-details.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
Commit f2c6bfa350de142e4d63808d03335f69bd136d6a by sguelton
Fix interaction between stack alignment and inline-asm stack clash protection

As reported in https://github.com/rust-lang/rust/issues/70143 alignment is not
taken into account when doing the probing. Fix that by adjusting the first probe
if the stack align is small, or by extending the dynamic probing if the
alignment is large.

Differential Revision: https://reviews.llvm.org/D84419
The file was addedllvm/test/CodeGen/X86/stack-clash-small-alloc-medium-align.ll
The file was modifiedllvm/lib/Target/X86/X86FrameLowering.cpp
The file was addedllvm/test/CodeGen/X86/stack-clash-large-large-align.ll
The file was removedllvm/test/CodeGen/X86/stack-clash-no-free-probe.ll
The file was modifiedllvm/lib/Target/X86/X86FrameLowering.h
The file was addedllvm/test/CodeGen/X86/stack-clash-small-large-align.ll
Commit 86b14d0969ebdf51674df6d41c5e88a8d34879e8 by ntv
[mlir] Attempt to appease gcc-5 const char* -> StringLiteral conversion issu
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
Commit a611f9a5c689995f21204139eb2667b8ce4c9dd2 by diego.caballero
[mlir] Fix call op conversion in bare-ptr calling convention

We hit an llvm_unreachable related to unranked memrefs for call ops
with scalar types. Removing the llvm_unreachable since the conversion
should gracefully bail out in the presence of unranked memrefs. Adding
tests to verify that.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D88709
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-static-memref-ops.mlir
Commit db2a646c5f002cc16d02d6fac0b2d715cdd4a809 by usx
[clangd] Add bencmark for measuring latency of DecisionForest model.

Differential Revision: https://reviews.llvm.org/D88590
The file was modifiedclang-tools-extra/clangd/benchmarks/CMakeLists.txt
The file was addedclang-tools-extra/clangd/benchmarks/CompletionModel/DecisionForestBenchmark.cpp
The file was addedclang-tools-extra/clangd/benchmarks/CompletionModel/CMakeLists.txt
Commit f192594956281744f67c4535bf2cce922f155aff by david.green
[AArch64] Generate dot for v16i8 sum reduction to i32

Convert VECREDUCE_ADD( EXTEND(v16i8_type) ) to VECREDUCE_ADD( DOTv16i8(v16i8_type) ) whenever the result type is i32. This gains in one of the SPECCPU 2017 benchmark.

This partially solves the bug: https://bugs.llvm.org/show_bug.cgi?id=46888
Meta ticket: https://bugs.llvm.org/show_bug.cgi?id=46929

Differential Revision: https://reviews.llvm.org/D88577
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/neon-dot-product.ll
Commit 5e8e89d814817fac19c5a93e4ed7910e97401a3f by llvm-dev
TruncInstCombine.cpp - use auto * to fix llvm-qualified-auto clang-tidy warning. NFCI.
The file was modifiedllvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp
Commit 0347f3ea720b16305d77449f9868255496e0b27c by llvm-dev
TruncInstCombine.cpp - fix header include ordering to fix llvm-include-order clang-tidy warning. NFCI.
The file was modifiedllvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp
Commit 3d14a1e982ad27111346471564d575ad5efc6419 by llvm-dev
[InstCombine] recognizeBSwapOrBitReverseIdiom - support for 'partial' bswap patterns (PR47191)

If we're bswap'ing some bytes and zero'ing the remainder we can perform this as a bswap+mask which helps us match 'partial' bswaps as a first step towards folding into a more complex bswap pattern.

Differential Revision: https://reviews.llvm.org/D88578
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modifiedllvm/test/Transforms/InstCombine/bswap.ll
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
Commit 432e4e56d3d25c209b3336655aa374095e695956 by stilis
Revert "[WebAssembly] Emulate v128.const efficiently"

This reverts commit 542523a61a21c13e7f244bcf821b0fdeb8c6bb24.
The file was modifiedllvm/test/CodeGen/WebAssembly/simd-build-vector.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
Commit 33fa3dbce91c8e75af57beeb013d82f08cccb733 by spatel
[CostModel] move default handling after switch; NFC

We will need to add intrinsics to the switch (such as
the ones that are currently in the switch above this
one) that deal with special cases and then break to
the default handling.
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h
Commit 34d12c15f7d8336c74bd4493e8d284dc169587b9 by stephen.neuendorffer
[MLIR] Better message for FuncOp type mismatch

Previously the actual types were not shown, which makes the message
difficult to grok in the context of long lowering chains.  Also, it
appears that there were no actual tests for this.

Differential Revision: https://reviews.llvm.org/D88318
The file was modifiedmlir/test/IR/operand.mlir
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
Commit 2fc0d4a8e83807d57f8d586af82934f94dead5e3 by zhanghb97
[mlir] Add Float Attribute, Integer Attribute and Bool Attribute subclasses to python bindings.

Based on PyAttribute and PyConcreteAttribute classes, this patch implements the bindings of Float Attribute, Integer Attribute and Bool Attribute subclasses.
This patch also defines the `mlirFloatAttrDoubleGetChecked` C API which is bound with the `FloatAttr.get_typed` python method.

Differential Revision: https://reviews.llvm.org/D88531
The file was modifiedmlir/lib/CAPI/IR/StandardAttributes.cpp
The file was modifiedmlir/test/Bindings/Python/ir_attributes.py
The file was modifiedmlir/lib/Bindings/Python/IRModules.cpp
The file was modifiedmlir/include/mlir-c/StandardAttributes.h
Commit 64c54c5459cfae8478ce28710784f36b0d94fb2f by nikita.ppv
[MemCpyOpt] Regnerate test checks (NFC)
The file was modifiedllvm/test/Transforms/MemCpyOpt/pr29105.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/2011-06-02-CallSlotOverwritten.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/profitable-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/store-to-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/crash.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/align.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot_throw.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memset-memcpy-redundant-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot_aa.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/2008-02-24-MultipleUseofSRet.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/atomic.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/invariant.start.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/fca2memcpy.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/sret.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/smaller.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/store-to-memset-is-nonzero-type.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/loadstore-sret.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/load-store-to-memcpy.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/nontemporal.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/aggregate-type-crash.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/lifetime.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy-undef.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/pr37967.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/2008-03-13-ReturnSlotBitcast.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/process_store.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot_deref.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy-to-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/capturing-func.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/form-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memset-memcpy-oversized.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memmove.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/stackrestore.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/vscale-memset.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memset-memcpy-to-2x-memset.ll
Commit 0867a9e85ace8ed0b11f6a7fc4c9e4bb1606263b by flo
[VPlan] Use isa<> instead of directly checking VPRecipeID (NFC).

getVPRecipeID is intended to be only used in `classof` helpers. Instead
of checking it directly, use isa<> with the correct recipe type.
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp