1. [c++20] For P1907R1: Add checking for structural types for non-type (details)
  2. [lld-macho] Mark weak symbols in symbol table (details)
  3. [lld-macho] Export trie addresses should be relative to the image base (details)
  4. [EHStreamer] Fix a "Continue to action" -fverbose-asm comment when multi-byte LEB128 encoding is needed (details)
  5. [docs][flang] Fix typos (details)
  6. Add missing new line after debug logging in MLIRContext (NFC) (details)
  7. [c++20] Consistent with the intent to allow all plausible types in (details)
  8. [SyntaxTree][Synthesis] Improve testing `createLeaf` (details)
  9. [AST] Fix dependence-bits for CXXDefaultInitExpr. (details)
  10. [SyntaxTree] Test for '\' inside token. (details)
  11. [clang][AArch64] Correct return type of Neon vqmovun intrinsics (details)
  12. [clang] Fix incorrect call to TextDiagnostic::printDiagnosticMessage (details)
  13. [LSR] Preserve MSSA when using SplitCriticalEdge. (details)
  14. Fix crash in the pass pipeline when local reproducer is enabled (details)
  15. [CodeGen] Fixing inconsistent ABI mangling of vlaues in SelectionDAGBuilder (details)
  16. [Test] Test auto-update (details)
  17. [lld][ELF][test] Add additional LTO testing (details)
  18. [RISC-V] Implement RISCVInstrInfo::isCopyInstrImpl() (details)
  19. [compiler-rt] Fix atomic support functions on 32-bit architectures (details)
  20. [SyntaxTree][Synthesis] Implement `deepCopy` (details)
  21. [mlir] Shape.AssumingOp implements RegionBranchOpInterface. (details)
  22. [AArch64] Cortex-A55 scheduler model (details)
  23. [NFC][ARM] More tail predication tests. (details)
  24. [llvm-readelf/obj] - Stop printing invalid names for unnamed section symbols. (details)
  25. Do not dereference an array out of bound just to take its address (details)
  26. [ARM] Select f32 constants with vmov.f16 (details)
Commit 0cd73dbe2c0d169ec2cdd9a8264f4ee1695b53b7 by richard
[c++20] For P1907R1: Add checking for structural types for non-type
template parameters.

No support for the new kinds of non-type template argument yet.

This is not entirely NFC for prior language modes: we have historically
incorrectly accepted rvalue references as the types of non-type template
parameters. Such invalid code is now rejected.
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/test/CXX/temp/temp.param/p7.cpp
The file was modifiedclang/include/clang/AST/CXXRecordDeclDefinitionBits.def
The file was modifiedclang/lib/AST/DeclCXX.cpp
The file was modifiedclang/include/clang/AST/Type.h
The file was addedclang/test/SemaTemplate/temp_arg_nontype_cxx20.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/AST/Type.cpp
The file was modifiedclang/include/clang/AST/DeclCXX.h
The file was modifiedclang/test/SemaCXX/invalid-template-params.cpp
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
The file was modifiedclang/test/CodeGenCXX/debug-info-template.cpp
Commit 0a7e56f74c2adde9a4bc2c1163e7ed3aff984584 by jezng
[lld-macho] Mark weak symbols in symbol table

Reviewed By: #lld-macho, smeenai

Differential Revision: https://reviews.llvm.org/D86908
The file was modifiedlld/test/MachO/symtab.s
The file was modifiedlld/MachO/SyntheticSections.cpp
Commit abd70fb3983f342bc1c90f9c70a7b59790ad5206 by jezng
[lld-macho] Export trie addresses should be relative to the image base

We didn't notice this earlier this we were only testing the export trie
encoded in a dylib, whose image base starts at zero. But a regular
executable contains `__PAGEZERO`, which means it has a non-zero image
base. This bug was discovered after attempting to run some programs that
performed `dlopen` on an executable.

Reviewed By: #lld-macho, smeenai

Differential Revision: https://reviews.llvm.org/D87780
The file was modifiedlld/MachO/ExportTrie.cpp
The file was modifiedlld/MachO/SyntheticSections.cpp
The file was modifiedlld/test/MachO/export-trie.s
The file was modifiedlld/MachO/ExportTrie.h
Commit dbc616e9825080f617865f7698647985d7c24e5e by i
[EHStreamer] Fix a "Continue to action" -fverbose-asm comment when multi-byte LEB128 encoding is needed

This only happens with more than 64 action records and it is difficult to construct a test.
The file was modifiedllvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp
Commit 000eb1f314c1fc194454ad6c128f3c110eb8a34d by SourabhSingh.Tomar
[docs][flang] Fix typos

Reviewed By: SouraVX

Differential Revision: https://reviews.llvm.org/D87885
The file was modifiedflang/docs/Calls.md
Commit dabe67948841542d14823976c65baecaaabb9bf1 by joker.eph
Add missing new line after debug logging in MLIRContext (NFC)
The file was modifiedmlir/lib/IR/MLIRContext.cpp
Commit aa769358d8c80d06963d7bc529dd6edd76d3f0de by richard
[c++20] Consistent with the intent to allow all plausible types in
non-type template parameters, permit vector types.
The file was modifiedclang/test/CXX/temp/temp.param/p7.cpp
The file was modifiedclang/lib/AST/DeclCXX.cpp
The file was modifiedclang/lib/AST/Type.cpp
Commit bb5b28f12fbd029773dc93d18a82ef42f4889b2a by ecaldas
[SyntaxTree][Synthesis] Improve testing `createLeaf`

The new test shows that `createLeaf` depends on the C++ version.

Differential Revision: https://reviews.llvm.org/D87896
The file was modifiedclang/unittests/Tooling/Syntax/SynthesisTest.cpp
Commit f8f1e5fb39d20985974658fb3d4401a80c0fcccd by hokein.wu
[AST] Fix dependence-bits for CXXDefaultInitExpr.

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D87382
The file was modifiedclang/lib/AST/ExprCXX.cpp
The file was modifiedclang/test/SemaCXX/invalid-constructor-init.cpp
The file was modifiedclang/lib/AST/ComputeDependence.cpp
The file was modifiedclang/include/clang/AST/ComputeDependence.h
Commit e616a4259889b55ed1bf5bf095f0e59658c6e311 by ecaldas
[SyntaxTree] Test for '\' inside token.

Differential Revision: https://reviews.llvm.org/D87895
The file was modifiedclang/unittests/Tooling/Syntax/BuildTreeTest.cpp
Commit 349af8054218017a2ac0c4bfeddd63e6ccbf4a21 by david.spickett
[clang][AArch64] Correct return type of Neon vqmovun intrinsics

Neon intrinsics vqmovunh_s16, vqmovuns_s32, vqmovund_s64
should have unsigned return types.

See https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/intrinsics?search=vqmovun

Fixes https://bugs.llvm.org/show_bug.cgi?id=46840

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D85118
The file was modifiedclang/test/CodeGen/aarch64-neon-intrinsics.c
The file was modifiedclang/test/Sema/arm64-neon-header.c
The file was modifiedclang/test/CodeGen/aarch64-neon-misc.c
The file was modifiedclang/include/clang/Basic/arm_neon.td
Commit 4eae6fc95f95563a73a510a8b09cfce01004930a by andrzej.warzynski
[clang] Fix incorrect call to TextDiagnostic::printDiagnosticMessage

As per the documentation, the 2nd argument in printDiagnosticMessage
should be a bool that specifies whether the underlying message is a
continuation note diagnostic or not. More specifically, it should be:
Level == DiagnosticsEngine::Note
instead of:

This change means that `no input file` in the following scenario will be
now correctly printed in bold:
$ bin/clang
clang: error: no input files
In terminals that don't support text formatting the behaviour doesn't

Differential Revision: https://reviews.llvm.org/D87816
The file was modifiedclang/lib/Frontend/TextDiagnosticPrinter.cpp
Commit 57ae9bb9323548b2ad4ba8274c3910bf9c764983 by flo
[LSR] Preserve MSSA when using SplitCriticalEdge.

LSR claims to MemorySSA, but we also have to make sure it is preserved
when splitting critical edges. This can be done by passing MSSAU to

Fixes PR47557.
The file was addedllvm/test/Analysis/MemorySSA/update-remove-dead-blocks.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
Commit 702f06ad14ac61d364b773e5a1f4d8b0b0214553 by joker.eph
Fix crash in the pass pipeline when local reproducer is enabled

This crash only happens when a function pass is followed by a module
pass. In this case the splitting of the pass pipeline didn't handle
properly the verifier passes and ended up with an odd number of pass in
the pipeline, breaking an assumption of the local crash reproducer
executor and hitting an assertion.

Differential Revision: https://reviews.llvm.org/D88000
The file was modifiedmlir/lib/Pass/Pass.cpp
The file was modifiedmlir/test/Pass/crash-recovery.mlir
Commit 53d238a961d14eae46f6f2b296ce48026c7bd0a1 by lucas.prates
[CodeGen] Fixing inconsistent ABI mangling of vlaues in SelectionDAGBuilder

SelectionDAGBuilder was inconsistently mangling values based on ABI
Calling Conventions when getting them through copyFromRegs in
SelectionDAGBuilder, causing duplicate value type convertions for
function arguments. The checking for the mangling requirement was based
on the value's originating instruction and was performed outside of, and
inspite of, the regular Calling Convention Lowering.

The issue could be observed in a scenario such as:

%arg1 = load half, half* %const, align 2
%arg2 = call fastcc half @someFunc()
call fastcc void @otherFunc(half %arg1, half %arg2)
; Here, %arg2 was incorrectly mangled twice, as the CallConv data from
; the call to @someFunc() was taken into consideration for the check
; when getting the value for processing the call to @otherFunc(...),
; after the proper convertion had taken place when lowering the return
; value of the first call.

This patch fixes the issue by disregarding the Calling Convention
information for such copyFromRegs, making sure the ABI mangling is
properly contanined in the Calling Convention Lowering.

This fixes Bugzilla #47454.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D87844
The file was addedllvm/test/CodeGen/ARM/pr47454.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Commit 98aed8aa00dcc021686972734b5356c831328721 by mkazantsev
[Test] Test auto-update
The file was modifiedllvm/test/Transforms/IndVarSimplify/eliminate-comparison.ll
Commit fa6da90aef004339e768c84d648f449348a5b13c by james.henderson
[lld][ELF][test] Add additional LTO testing

The additional testing is testing we previously had in a downstream test

Reviewed by: grimar, MaskRay

Differential Revision: https://reviews.llvm.org/D87824
The file was addedlld/test/ELF/lto/archive-mixed.test
The file was modifiedlld/test/ELF/lto/internalize-basic.ll
The file was modifiedlld/test/ELF/lto/wrap-2.ll
The file was addedlld/test/ELF/lto/undef-mixed2.test
Commit 8cf6778d3040b33db768bb7542630d9820a72e28 by Alexander.Richardson
[RISC-V] Implement RISCVInstrInfo::isCopyInstrImpl()

This does not result in changes for any of the current tests, but it might
improve debug information in some cases.

Reviewed By: luismarques

Differential Revision: https://reviews.llvm.org/D86522
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.h
Commit aa85c6f2a528792e2ff778a36fb6f35a01e8191c by Alexander.Richardson
[compiler-rt] Fix atomic support functions on 32-bit architectures

The code currently uses __c11_atomic_is_lock_free() to detect whether an
atomic operation is natively supported. However, this can result in a
runtime function call to determine whether the given operation is lock-free
and clang generating a call to e.g. __atomic_load_8 since the branch is
not a constant zero. Since we are implementing those runtime functions, we
must avoid those calls. This patch replaces __c11_atomic_is_lock_free()
with __atomic_always_lock_free() which always results in a compile-time
constant value. This problem was found while compiling atomic.c for MIPS32
since the -Watomic-alignment warning was being triggered and objdump showed
an undefined reference to _atomic_is_lock_free.

In addition to fixing 32-bit platforms this also enables the 16-byte case
that was disabled in r153779 (185f2edd70a34d28b305df0cd8ce519ecbca2cfd).

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D86510
The file was modifiedcompiler-rt/lib/builtins/atomic.c
Commit 4a5cc389c51d267f39286a9a8c58c32f758b9d4b by ecaldas
[SyntaxTree][Synthesis] Implement `deepCopy`

Differential Revision: https://reviews.llvm.org/D87749
The file was modifiedclang/lib/Tooling/Syntax/Synthesis.cpp
The file was modifiedclang/unittests/Tooling/Syntax/SynthesisTest.cpp
The file was modifiedclang/include/clang/Tooling/Syntax/BuildTree.h
Commit ffdd4a46a9a90d7b63b840c4b3c775074815f3ed by tpopp
[mlir] Shape.AssumingOp implements RegionBranchOpInterface.

This adds support for the interface and provides unambigious information
on the control flow as it is unconditional on any runtime values.
The code is tested through confirming that buffer-placement behaves as

Differential Revision: https://reviews.llvm.org/D87894
The file was modifiedmlir/test/Transforms/buffer-placement.mlir
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
Commit 4b8ade837e36b7f0181ce86fc23f33851d0fdd35 by sjoerd.meijer
[AArch64] Cortex-A55 scheduler model

This is an initial commit adding the A55 model, but it isn't used/enabled yet.
We will follow up on this to improve the model, then flip the switch.

The optimisation guide describing Cortex-A55 micro-architecture in more detail
can be found here:


Original patch by Javed Absar.

Differential Revision: https://reviews.llvm.org/D46884
The file was addedllvm/lib/Target/AArch64/AArch64SchedA55.td
The file was modifiedllvm/lib/Target/AArch64/AArch64.td
Commit 13c73632c7cfcc2c8e70c93781d8fb9872153ede by sam.parker
[NFC][ARM] More tail predication tests.

Add mir tests for use/def of P0.
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt.mir
Commit 095f6fbbd7b61af205d761f6951a869ec4a61722 by grimar
[llvm-readelf/obj] - Stop printing invalid names for unnamed section symbols.

We have an issue with `ELFDumper<ELFT>::getSymbolSectionName`:
1) It is used deeply for both LLVM/GNU styles and might return LLVM-style only
   values to describe symbols: "Undefined", "Processor Specific", "Absolute", etc.

2) `getSymbolSectionName` is used by `getFullSymbolName` and these special values
   might appear instead of symbol names in many places.
   This occurs for unnamed section symbols currently.

This patch extracts the LLVM specific logic to `LLVMStyle<ELFT>::printSymbolSection`,
which seems to be the only place where we want to print the special values mentioned.
It also adds a meaningful new warning that is reported when we are unable to get
a section index for a section symbol.

Differential revision: https://reviews.llvm.org/D87764
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dyn-symbols.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/mips-got.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/mips-plt.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-symbols.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/symbol-shndx.test
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
Commit 2a774411174466010c69a2460c81b8d0d4f7165f by sguelton
Do not dereference an array out of bound just to take its address

This is UB by the standard, and caught by the libstdc++ asserts

Differential Revision: https://reviews.llvm.org/D87892
The file was modifiedflang/lib/Parser/token-sequence.cpp
Commit f4c5cadbcbb41f13cff0905449cfff4aef6a083c by david.green
[ARM] Select f32 constants with vmov.f16

This adds lowering for f32 values using the vmov.f16, which zeroes the
top bits whilst setting the lower bits to a pattern. This range of
values does not often come up, except where a f16 constant value has
been converted to a f32.

Differential Revision: https://reviews.llvm.org/D87790
The file was modifiedllvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h
The file was modifiedllvm/test/CodeGen/ARM/fp16-bitcast.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrVFP.td
The file was modifiedllvm/test/CodeGen/ARM/cmse-clear-float-hard.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp