LLVM/project 57aab63libcxx/include __tree, libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach ranges.for_each.associative.pass.cpp ranges.for_each.associative.pass copy.cpp

[libc++] Fix std::for_each(associative-container) not using std:invoke and projections (#171984)

#164405 added specializations of `for_each` that didn't do the ranges
call shenanigans, but instead just did what the classic algorithms have
to do. This updates the calls to work for the ranges overloads as well.
DeltaFile
+238-0libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/ranges.for_each.associative.pass.cpp
+0-168libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/ranges.for_each.associative.pass copy.cpp
+2-2libcxx/include/__tree
+240-1703 files

LLVM/project 7d08651clang/test/CodeGen builtins-nvptx.c, llvm/include/llvm/IR IntrinsicsNVVM.td

[clang][NVPTX] Add support for mixed-precision FP arithmetic (#168359)

This change adds support for mixed precision floating point 
arithmetic for `f16` and `bf16` where the following patterns:
```
%fh = fpext half %h to float
%resfh = fp-operation(%fh, ...)
...
%fb = fpext bfloat %b to float
%resfb = fp-operation(%fb, ...)

where the fp-operation can be any of:
- fadd
- fsub
- llvm.fma.f32
- llvm.nvvm.add(/fma).*
```
are lowered to the corresponding mixed precision instructions which 
combine the conversion and operation into one instruction from 

    [18 lines not shown]
DeltaFile
+443-0llvm/test/CodeGen/NVPTX/mixed-precision-fp.ll
+115-0llvm/test/CodeGen/NVPTX/fp-arith-sat.ll
+111-0llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
+70-0llvm/test/CodeGen/NVPTX/fp-fold-sub.ll
+39-0clang/test/CodeGen/builtins-nvptx.c
+19-15llvm/include/llvm/IR/IntrinsicsNVVM.td
+797-151 files not shown
+813-157 files

LLVM/project 0636225llvm/test/Transforms/LoopVectorize/AArch64 scalable-strict-fadd.ll partial-reduce-dot-product.ll

[VPlan] Directly unroll VectorPointerRecipe (#168886)

In an effort to get rid of VPUnrollPartAccessor and directly unroll
recipes, start by directly unrolling VectorPointerRecipe, allowing for
VPlan-based simplifications and simplification of the corresponding
execute.
DeltaFile
+394-457llvm/test/Transforms/LoopVectorize/AArch64/scalable-strict-fadd.ll
+42-72llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product.ll
+40-60llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect.ll
+45-51llvm/test/Transforms/LoopVectorize/AArch64/uniform-args-call-variants.ll
+24-48llvm/test/Transforms/LoopVectorize/AArch64/sve-wide-lane-mask.ll
+28-43llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll
+573-73145 files not shown
+901-1,16951 files

LLVM/project b3ec8bemlir/include/mlir/Target/LLVM ModuleToObject.h, mlir/include/mlir/Target/LLVM/ROCDL Utils.h

[mlir][gpu] Expose some utility functions from `gpu-to-binary` infra (#172205)

For people who do not want to use a single monolithic pass.
DeltaFile
+48-48mlir/lib/Target/LLVM/ROCDL/Target.cpp
+7-5mlir/include/mlir/Target/LLVM/ModuleToObject.h
+9-3mlir/include/mlir/Target/LLVM/ROCDL/Utils.h
+5-4mlir/lib/Target/LLVM/NVVM/Target.cpp
+4-4mlir/lib/Target/LLVM/ModuleToObject.cpp
+4-3mlir/lib/Target/LLVM/XeVM/Target.cpp
+77-676 files

LLVM/project 4e95718libcxx/include __tree map

[libc++] Remove unused __parent_pointer alias from __tree and map (#172185)

The `__parent_pointer` type alias was marked to be removed in
d163ab3323495560eb0255ac807da2bf24d3c629.
At that time, <map> still had uses of `__parent_pointer` as a local
variable type in operator[] and at()

Those uses were removed in 4a2dd31f16d60b65a46696a909efad5c11b18c19,
which refactored `__find_equal` to return a pair instead of using an out
parameter

However, the typedef in <map> and the alias in __tree were left behind

This patch removes the unused typedef from <map> and the
`__parent_pointer` alias from __tree

Signed-off-by: Krechals <topala.andrei at gmail.com>
DeltaFile
+0-2libcxx/include/__tree
+0-1libcxx/include/map
+0-32 files

LLVM/project ed79fd7clang/include/clang/Basic BuiltinsX86.td, clang/lib/AST ExprConstant.cpp

[Clang][x86]:  allow PCLMULQDQ intrinsics to be used in constexpr (#169214)

Resolves #168741
DeltaFile
+78-0clang/test/CodeGen/X86/vpclmulqdq-builtins.c
+64-0clang/lib/AST/ByteCode/InterpBuiltin.cpp
+55-0clang/lib/AST/ExprConstant.cpp
+34-1clang/test/CodeGen/X86/pclmul-builtins.c
+6-3clang/include/clang/Basic/BuiltinsX86.td
+237-45 files

LLVM/project 92c6db1mlir/lib/Dialect/Affine/IR AffineOps.cpp

Comment out inline-breaking affine
DeltaFile
+1-1mlir/lib/Dialect/Affine/IR/AffineOps.cpp
+1-11 files

LLVM/project f024026llvm/test/CodeGen/AMDGPU vector-reduce-xor.ll vector-reduce-and.ll, llvm/test/CodeGen/AMDGPU/GlobalISel add.vni16.ll xnor.ll

AMDGPU/GlobalISel: Regbanklegalize for G_CONCAT_VECTORS (#171471)

RegBankLegalize using trivial mapping helper, assigns same reg bank
to all operands, vgpr or sgpr.
Uncovers multiple codegen and regbank combiner regressions related to
looking through sgpr to vgpr copies.
Skip regbankselect-concat-vector.mir since agprs are not yet supported.
DeltaFile
+86-55llvm/test/CodeGen/AMDGPU/GlobalISel/add.vni16.ll
+70-56llvm/test/CodeGen/AMDGPU/vector-reduce-xor.ll
+70-56llvm/test/CodeGen/AMDGPU/vector-reduce-and.ll
+70-56llvm/test/CodeGen/AMDGPU/vector-reduce-or.ll
+80-41llvm/test/CodeGen/AMDGPU/freeze.ll
+43-61llvm/test/CodeGen/AMDGPU/GlobalISel/xnor.ll
+419-3254 files not shown
+525-38210 files

LLVM/project f3e508c

[mlir:bazel] Fix missing dependency introduced in #171727. (#172267)

That PR added an include to `LLVMOps.td` without adding a target
providing that file. Curiously, this does not break the official builds
but it *does* break my bazel build.

Signed-off-by: Ingo Müller <ingomueller at google.com>
DeltaFile
+0-00 files

LLVM/project 90783f5lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime AppleObjCDeclVendor.cpp

[lldb][AppleObjCDeclVendor] Fix format specifiers when printing log (#172263)

This was causing a crash when enabling the expression log:
```
4   LLDB                                       0x1376d68d0 llvm::formatv_object_base::parseFormatString(llvm::StringRef, unsigned long, bool) + 532
5   LLDB                                       0x13776d838 llvm::formatv_object_base::format(llvm::raw_ostream&) const + 84
6   LLDB                                       0x13776d7d4 llvm::raw_ostream::operator<<(llvm::formatv_object_base const&) + 36
7   LLDB                                       0x1375f4980 lldb_private::Log::Format(llvm::StringRef, llvm::StringRef, llvm::formatv_object_base const&) + 164
8   LLDB                                       0x12f7b39f0 lldb_private::AppleObjCExternalASTSource::CompleteType(clang::TagDecl*) + 416
9   LLDB                                       0x12fa038dc lldb_private::ClangASTSource::FindExternalLexicalDecls(clang::DeclContext const*, llvm::function_ref<bool (clang::Decl::Kind)>, llvm::SmallVectorImpl<clang::Decl*>&) + 1132
10  LLDB                                       0x135d94838 clang::ExternalASTSource::FindExternalLexicalDecls(clang::DeclContext const*, llvm::SmallVectorImpl<clang::Decl*>&) + 92
11  LLDB                                       0x135d94690 clang::DeclContext::LoadLexicalDeclsFromExternalStorage() const + 204
12  LLDB                                       0x135d95ca0 clang::DeclContext::buildLookup() + 308
13  LLDB                                       0x135d964b8 clang::DeclContext::lookupImpl(clang::DeclarationName, clang::DeclContext const*) const + 824
14  LLDB                                       0x135d96168 clang::DeclContext::lookup(clang::DeclarationName) const + 124
15  LLDB                                       0x134f093d4 clang::Sema::CheckImplicitSpecialMemberDeclaration(clang::Scope*, clang::FunctionDecl*) + 128
16  LLDB                                       0x134efb488 clang::Sema::DeclareImplicitDestructor(clang::CXXRecordDecl*) + 932
17  LLDB                                       0x1352ddf24 clang::Sema::LookupSpecialMember(clang::CXXRecordDecl*, clang::CXXSpecialMemberKind, bool, bool, bool, bool, bool)::$_0::operator()() const + 36
```
DeltaFile
+2-2lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp
+2-21 files

LLVM/project 96881c1llvm/include/llvm/CGData CodeGenDataReader.h, llvm/tools/llvm-cgdata llvm-cgdata.cpp

llvm: Export IndexedCodeGenDataLazyLoading (#169563)

This is needed so the llvm-cgdata tool properly builds with
`LLVM_BUILD_LLVM_DYLIB` so LLVM can be built as a DLL on Windows.

This effort is tracked in #109483.
DeltaFile
+0-4llvm/tools/llvm-cgdata/llvm-cgdata.cpp
+3-0llvm/include/llvm/CGData/CodeGenDataReader.h
+3-42 files

LLVM/project 5785b4aclang-tools-extra/clangd/index BackgroundIndexStorage.cpp, clang-tools-extra/clangd/test background-index.test

Add .gitignore file in .cache/clangd/index (#170003)

This solves a common issue where users have to manually add the
`.cache/clangd/index/` folder to their `.gitignore`. I got this idea
from [ruff](https://github.com/astral-sh/ruff), which creates
`.ruff_cache/.gitignore` and it would greatly improve the user
experience for everyone without requiring per-computer configurations
and without any significant cost.
DeltaFile
+9-0clang-tools-extra/clangd/index/BackgroundIndexStorage.cpp
+4-0clang-tools-extra/clangd/test/background-index.test
+2-0clang-tools-extra/docs/ReleaseNotes.rst
+15-03 files

LLVM/project a5bfe8eclang/lib/Sema TreeTransform.h, clang/test/SemaTemplate concepts.cpp

[Clang] Recompute the value category when rebuilding SubstNonTypeTemplateParmExpr (#172251)

In concept checking, we need to transform SubstNTTPExpr when evaluating
constraints.

The value category is initially computed during parameter mapping,
possibly with a dependent expression. However during instantiation, it
wasn't recomputed, and the stale category is propagated into parent
expressions. So we may end up with an 'out-of-thin-air' reference type,
which breaks the evaluation.

We now call BuildSubstNonTypeTemplateParmExpr in TreeTransform, in which
the value category is recomputed.

The issue was brought by both 078e99e and the concept normalization
patch, which are not released yet, so no release note.

Fixes https://github.com/llvm/llvm-project/issues/170856
DeltaFile
+45-0clang/test/SemaTemplate/concepts.cpp
+14-5clang/lib/Sema/TreeTransform.h
+59-52 files

LLVM/project 17f29c2llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 alias_mask.ll alias_mask_scalable.ll

[AArch64] Support lowering smaller than legal LOOP_DEP_MASKs to whilewr/rw (#171982)

This adds support for lowering smaller-than-legal masks such as:

```
<vscale x 8 x i1> @llvm.loop.dependence.war.mask.nxv8i1(ptr %a, ptr %b, i64 1)
```

To a whilewr + unpack. It also slightly simplifies the lowering.
DeltaFile
+28-40llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+37-0llvm/test/CodeGen/AArch64/alias_mask.ll
+35-0llvm/test/CodeGen/AArch64/alias_mask_scalable.ll
+100-403 files

LLVM/project 80b900ellvm/lib/Analysis InstructionSimplify.cpp, llvm/test/Transforms/InstSimplify ptrtoaddr.ll

[InstSimplify] Support ptrtoaddr in simplifyICmpInst() (#171985)

This is basically the same change as #162653, but for InstSimplify
instead of ConstantFolding.

It folds `icmp (ptrtoaddr x, ptrtoaddr y)` to `icmp (x, y)` and `icmp
(ptrtoaddr x, C)` to `icmp (x, inttoptr C)`.

The fold is restricted to the case where the result type is the address
type, as icmp only compares the icmp bits. As in the other PR, I think
in practice all the folds are also going to work if the ptrtoint result
type is larger than the address size, but it's unclear how to justify
this in general.
DeltaFile
+72-0llvm/test/Transforms/InstSimplify/ptrtoaddr.ll
+7-5llvm/lib/Analysis/InstructionSimplify.cpp
+79-52 files

LLVM/project 37c7f69libcxx/include/__string char_traits.h, libcxx/test/libcxx/strings/char.traits nodiscard.verify.cpp

[libc++][char_traits] Applied `[[nodiscard]]` (#172244)

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.

- https://libcxx.llvm.org/CodingGuidelines.html
- https://wg21.link/char.traits
DeltaFile
+162-0libcxx/test/libcxx/strings/char.traits/nodiscard.verify.cpp
+44-31libcxx/include/__string/char_traits.h
+206-312 files

LLVM/project db557beclang/lib/AST/ByteCode Pointer.cpp EvalEmitter.cpp

[clang][bytecode][NFC] Add Block::getBlockDesc<T>() (#172218)

Which returns the block-level descriptor. This way we don't have to do
the reinterpret_cast dance everywhere.
DeltaFile
+4-8clang/lib/AST/ByteCode/Pointer.cpp
+4-5clang/lib/AST/ByteCode/EvalEmitter.cpp
+8-0clang/lib/AST/ByteCode/InterpBlock.h
+2-4clang/lib/AST/ByteCode/Compiler.cpp
+1-2clang/lib/AST/ByteCode/Interp.h
+1-2clang/lib/AST/ByteCode/Interp.cpp
+20-216 files

LLVM/project ce1b047llvm/lib/CodeGen SelectOptimize.cpp, llvm/test/CodeGen/X86 select-optimize.ll

[SelectOptimize] Respect optnone (#170858)

Add the missing skipFunction() call so that optnone attributes and
opt-bisect-limit is respected.
DeltaFile
+10-0llvm/test/CodeGen/X86/select-optimize.ll
+3-0llvm/lib/CodeGen/SelectOptimize.cpp
+13-02 files

LLVM/project c13bf9ellvm/lib/Target/AMDGPU SIInstructions.td SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU insert_vector_dynelt.ll extract_vector_dynelt.ll

Reapply "[AMDGPU][SDAG] Add missing cases for SI_INDIRECT_SRC/DST (#170323) (#171838)

A buildbot failed for the original patch.

https://github.com/llvm/llvm-project/pull/171835 addresses the issue
raised by the buildbot.
After the fix is merged, the original patch is reapplied without any
change.
DeltaFile
+5,963-0llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
+3,310-0llvm/test/CodeGen/AMDGPU/extract_vector_dynelt.ll
+16-0llvm/lib/Target/AMDGPU/SIInstructions.td
+8-0llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+9,297-04 files

LLVM/project e309272llvm/test/tools/llvm-mca/AArch64/Neoverse N2-writeback.s N1-writeback.s, llvm/test/tools/llvm-mca/ARM m85-int.s

[AArch64][ARM] Regenerate llvm-mca tests. NFC
DeltaFile
+52-52llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-writeback.s
+5-5llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-writeback.s
+1-1llvm/test/tools/llvm-mca/ARM/m85-int.s
+58-583 files

LLVM/project 1e9e389llvm/lib/Target/AArch64 AArch64ISelLowering.cpp

[AArch64] Add a performBICiCombine function.

This moves the code out of PerformDAGCombine directly, changing the return
to return SDValue(N, 0) to match other uses of SimplifyDemandedBits.
DeltaFile
+15-12llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+15-121 files

LLVM/project 6ff3df8libcxx/include unordered_set, libcxx/test/libcxx/diagnostics unordered_set.nodiscard.verify.cpp

[libc++][unordered_set] Applied `[[nodiscard]]` (#170435)

[[nodiscard]] should be applied to functions where discarding the return
value is most likely a correctness issue.

- https://libcxx.llvm.org/CodingGuidelines.html
- https://wg21.link/unord.set
DeltaFile
+89-12libcxx/test/libcxx/diagnostics/unordered_set.nodiscard.verify.cpp
+47-37libcxx/include/unordered_set
+136-492 files

LLVM/project e22ff9blibcxx/include unordered_set, libcxx/test/libcxx/diagnostics unordered_multiset.nodiscard.verify.cpp

[libc++][unordered_multiset] Applied `[[nodiscard]]` (#171664)

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.

- https://libcxx.llvm.org/CodingGuidelines.htm
- https://wg21.link/unord.multiset
DeltaFile
+103-0libcxx/test/libcxx/diagnostics/unordered_multiset.nodiscard.verify.cpp
+47-37libcxx/include/unordered_set
+150-372 files

LLVM/project a5b7c42libcxx/include unordered_map, libcxx/test/libcxx/diagnostics unordered_multimap.nodiscard.verify.cpp

[libc++][unordered_multimap] Applied `[[nodiscard]]` (#171659)

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.

- https://libcxx.llvm.org/CodingGuidelines.htm
- https://wg21.link/unord.multimap
DeltaFile
+101-0libcxx/test/libcxx/diagnostics/unordered_multimap.nodiscard.verify.cpp
+49-37libcxx/include/unordered_map
+150-372 files

LLVM/project ffaa6f2llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV sadd_sat.ll ssub_sat.ll

[RISCV] Custom legalize i32 saddo/ssubo on RV64 to return a sign extended value for the data result. (#172112)

This is consistent with how we handle regular ADD/SUB and helps with
computeNumSignBits optimizations.

Fixes #172089
DeltaFile
+29-22llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+6-7llvm/test/CodeGen/RISCV/sadd_sat.ll
+5-6llvm/test/CodeGen/RISCV/ssub_sat.ll
+5-5llvm/test/CodeGen/RISCV/ssub_sat_plus.ll
+5-5llvm/test/CodeGen/RISCV/sadd_sat_plus.ll
+50-455 files

LLVM/project 7fa062aclang/lib/AST ItaniumMangle.cpp, clang/test/CodeGenCXX riscv-mangle-rvv-fixed-vectors.cpp

[RISCV] Add BFloat16 to mangleRISCVFixedRVVVectorType. (#172095)

DeltaFile
+54-0clang/test/CodeGenCXX/riscv-mangle-rvv-fixed-vectors.cpp
+3-0clang/lib/AST/ItaniumMangle.cpp
+57-02 files

LLVM/project c878cf4llvm/include/llvm/CodeGen ISDOpcodes.h

[SelectionDAG] Consistently use doxygen comments in the NodeType enum. NFC (#172178)

DeltaFile
+63-63llvm/include/llvm/CodeGen/ISDOpcodes.h
+63-631 files

LLVM/project 61908c5orc-rt/include/orc-rt RTTI.h

[orc-rt] Prevent RTTIExtends from being used for errors. (#172250)

Custom error types (ErrorInfoBase subclasses) should use ErrorExtends as
of 8f51da369e6. Adding a static_assert allows us to enforce that at
compile-time.
DeltaFile
+8-0orc-rt/include/orc-rt/RTTI.h
+8-01 files

LLVM/project 4cf98d1llvm/docs MemProf.rst

Fix indentation.
DeltaFile
+4-4llvm/docs/MemProf.rst
+4-41 files

LLVM/project 5a581acclang/include/clang/CIR/Dialect/IR CIROps.td, clang/test/CIR/CodeGen switch.cpp

[CIR] Rename allEnumCasesCovered to all_enum_cases_covered (#172153)

Use the convetional snake_case for MLIR assembly and align with
operation documentation that already mentions snake_cased attribute.
DeltaFile
+2-2clang/include/clang/CIR/Dialect/IR/CIROps.td
+2-2clang/test/CIR/IR/switch.cir
+1-1clang/test/CIR/CodeGen/switch.cpp
+5-53 files