UnstableChanges

Summary

  1. ARM: support mandatory tail calls for tailcc & swifttailcc (details)
  2. SwiftTailCC: teach verifier musttail rules applicable to this CC. (details)
  3. Revert "[WebAssembly][CodeGen] IR support for WebAssembly local variables" (details)
  4. [mlir] Don't elide the last op if there is no terminator (details)
  5. SwiftAsync: add Clang attribute to apply the LLVM `swiftasync` one. (details)
  6. [RISCV] Add tests for fixed vector conversions between fp to/from i1 (details)
  7. [RISCV][NFC] Merge identical RV32 and RV64 test checks (details)
  8. Fix "enumerator 'llvm::TargetStackID::WasmLocal' in switch of enum 'llvm::TargetStackID::Value' is not handled" MSVC warnings. NFCI. (details)
  9. [x86] add test for extend of legal vector compare; NFC (details)
  10. [Matrix] Move C++ matrix cast checks to TryStaticCast. (details)
  11. [gn build] (semi-manually) port bd04d78d649b (details)
  12. [clang] NFC: Replace std::pair by a struct in InitHeaderSearch (details)
Commit d88f96dff3f192fc0c1bf57f7810b95a709b3591 by Tim Northover
ARM: support mandatory tail calls for tailcc & swifttailcc

This adds support for callee-pop conventions to the ARM backend so that it can
ensure a call marked "tail" is actually a tail call.
The file was modifiedllvm/lib/Target/ARM/ARMCallingConv.td
The file was addedllvm/test/CodeGen/ARM/fastcc-tailcall.ll
The file was modifiedllvm/test/CodeGen/ARM/peephole-callee-save-regalloc.mir
The file was modifiedllvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
The file was addedllvm/test/CodeGen/ARM/swifttailcc-call.ll
The file was modifiedllvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMFastISel.cpp
The file was modifiedllvm/lib/Target/ARM/ARMInstrInfo.td
The file was modifiedllvm/lib/Target/ARM/ARMMachineFunctionInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMSubtarget.cpp
The file was addedllvm/test/CodeGen/ARM/tailcc-call.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.h
The file was modifiedllvm/lib/Target/ARM/ARMFrameLowering.cpp
The file was addedllvm/test/CodeGen/ARM/swifttailcc-fastisel.ll
The file was modifiedllvm/test/CodeGen/ARM/v8m-tail-call.ll
The file was modifiedllvm/test/CodeGen/ARM/dbg-tcreturn.ll
Commit 9ff2eb1ea596a52ad2b5cfab826548c3af0a1e6e by Tim Northover
SwiftTailCC: teach verifier musttail rules applicable to this CC.

SwiftTailCC has a different set of requirements than the C calling convention
for a tail call. The exact argument sequence doesn't have to match, but fewer
ABI-affecting attributes are allowed.

Also make sure the musttail diagnostic triggers if a musttail call isn't
actually a tail call.
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was addedllvm/test/Verifier/swifttailcc-musttail-valid.ll
The file was addedllvm/test/Verifier/tailcc-musttail.ll
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was addedllvm/test/Verifier/swifttailcc-musttail.ll
The file was addedllvm/test/CodeGen/ARM/tailcc-notail.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was addedllvm/test/CodeGen/X86/tailcc-notail.ll
The file was modifiedllvm/test/CodeGen/AArch64/swifttail-call.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was addedllvm/test/CodeGen/AArch64/tailcc-notail.ll
The file was modifiedllvm/test/CodeGen/X86/tailcall-swifttailcc.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
Commit ca5f07f8c4bc96d16ed1992b810aa3897df157f2 by wingo
Revert "[WebAssembly][CodeGen] IR support for WebAssembly local variables"

This reverts commit 00ecf18979e3326b3afee8af3dc701c53ffdc93f, as it
broke the AMDGPU build.  Will reland later with a fix.
The file was modifiedllvm/include/llvm/CodeGen/MIRYamlMapping.h
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetFrameLowering.h
The file was modifiedllvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h
The file was removedllvm/test/CodeGen/WebAssembly/ir-locals.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
The file was removedllvm/test/CodeGen/WebAssembly/ir-locals-stackid.ll
The file was modifiedllvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISD.def
Commit 4694097dab72cc8caed8b93b82c87de686e81df6 by antiagainst
[mlir] Don't elide the last op if there is no terminator

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D103264
The file was modifiedmlir/lib/IR/AsmPrinter.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/test/IR/region.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
Commit e94fada045fe88787a414e3307412c1cc3a1b259 by Tim Northover
SwiftAsync: add Clang attribute to apply the LLVM `swiftasync` one.

Expected to be used by Swift runtime developers.
The file was modifiedclang/lib/AST/ItaniumMangle.cpp
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test
The file was modifiedclang/include/clang/Basic/Attr.td
The file was modifiedclang/test/CodeGen/arm-swiftcall.c
The file was modifiedclang/test/Sema/attr-swiftcall.c
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/include/clang/AST/Attr.h
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was modifiedclang/include/clang/Basic/Specifiers.h
The file was modifiedclang/lib/AST/TypePrinter.cpp
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
Commit f3afd0d193d2869933559f6d1a876b6c5707d1a9 by fraser
[RISCV] Add tests for fixed vector conversions between fp to/from i1

These fixed-length versions don't crash unlike the corresponding
scalable ones, but the code generation is scalarized. An imminent patch
will support scalable-vector conversions and improve the codegen for
these fixed-length conversions.
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-i2fp.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp2i.ll
Commit 3f5ae36833e28f29785a3485315556e957f6a5c7 by fraser
[RISCV][NFC] Merge identical RV32 and RV64 test checks
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vitofp-sdnode.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfptoi-sdnode.ll
Commit cf2eeb114c59cfc3a80133e96c585188fa16cc98 by llvm-dev
Fix "enumerator 'llvm::TargetStackID::WasmLocal' in switch of enum 'llvm::TargetStackID::Value' is not handled" MSVC warnings. NFCI.
The file was modifiedllvm/lib/Target/AMDGPU/SIFrameLowering.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVFrameLowering.cpp
Commit 49b2f8328f363b8c989f8139c2ab2063f26363ea by spatel
[x86] add test for extend of legal vector compare; NFC

Additional test coverage for D103280.
The file was modifiedllvm/test/CodeGen/X86/sext-vsetcc.ll
Commit 5bccdde070d29fb83aec69c498285b4c8914f8d1 by flo
[Matrix] Move C++ matrix cast checks to TryStaticCast.

At the moment, the matrix support in CheckCXXCStyleCast (added in
D101696) breaks function-style constructor calls that take a
single matrix value, because it is treated as matrix cast.

Instead, unify the C++ matrix cast handling by moving the logic to
TryStaticCast and only handle the case where both types are matrix
types. Otherwise, fall back to the generic mis-match detection.

Suggested by @rjmccall

Reviewed By: SaurabhJha

Differential Revision: https://reviews.llvm.org/D103163
The file was modifiedclang/test/CodeGenCXX/matrix-casts.cpp
The file was modifiedclang/lib/Sema/SemaCast.cpp
The file was modifiedclang/test/SemaCXX/matrix-casts.cpp
Commit 6915a55824d1204f51f329d3bbd7a425a93150bc by thakis
[gn build] (semi-manually) port bd04d78d649b
The file was modifiedllvm/utils/gn/secondary/compiler-rt/lib/scudo/standalone/BUILD.gn
Commit b76df3235cd05d11baea67ae684f9f1fd883b76d by Jan Svoboda
[clang] NFC: Replace std::pair by a struct in InitHeaderSearch

This patch replaces a `std::pair` by a proper struct in `InitHeaderSearch`. This will be useful in a follow-up: D102923.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D102924
The file was modifiedclang/lib/Frontend/InitHeaderSearch.cpp