LLVM/project 72b1c13lldb/include/lldb/ValueObject DILEval.h DILParser.h, lldb/source/ValueObject DILEval.cpp DILParser.cpp

[lldb] Add enum lookup to DIL (#192065)
DeltaFile
+36-0lldb/test/API/commands/frame/var-dil/expr/EnumValueLookup/TestEnumValueLookup.py
+29-0lldb/source/ValueObject/DILEval.cpp
+19-0lldb/test/API/commands/frame/var-dil/expr/EnumValueLookup/main.cpp
+5-0lldb/include/lldb/ValueObject/DILEval.h
+2-2lldb/source/ValueObject/DILParser.cpp
+3-0lldb/include/lldb/ValueObject/DILParser.h
+94-21 files not shown
+97-27 files

LLVM/project 2894d75flang/lib/Semantics check-omp-structure.cpp, flang/test/Semantics/OpenMP workdistribute05.f90

[Flang][OpenMP] Allow workdistribute inside 'target teams' (#199006)

Currently, a `workdistribute` construct nested inside of a combined
`target teams` is incorrectly reported as an error. This patch fixes
that.
DeltaFile
+23-0flang/test/Semantics/OpenMP/workdistribute05.f90
+1-1flang/lib/Semantics/check-omp-structure.cpp
+24-12 files

LLVM/project 586b9a4clang/include/clang/AST DeclTemplate.h, clang/lib/AST DeclTemplate.cpp

[clang] fix getTemplateInstantiationArgs

This implements a new strategy for collecting the template arguments, by
relying on the qualifiers and template parameter lists to navigate the template
context of out-of-line definitions.

This greatly simplifies the signature of that function, by removing a bunch
of workarounds, and simpliffying a couple that weren't removed yet.

Since this now relies on qualifiers and template parameter lists,
this patch expends most of its effort making sure these are placed,
transformed and propagated to template instantiations.

Also makes the explicit specialization AST nodes stop abusing the template
parameter lists by storing it's own template parameter list, creating a
dedicated field for them, similar to partial specializations.
DeltaFile
+194-429clang/lib/Sema/SemaTemplateInstantiate.cpp
+257-164clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+150-148clang/lib/Sema/SemaTemplate.cpp
+96-95clang/include/clang/AST/DeclTemplate.h
+59-129clang/lib/Sema/SemaConcept.cpp
+60-92clang/lib/AST/DeclTemplate.cpp
+816-1,05746 files not shown
+1,384-1,63852 files

LLVM/project 00fb002clang/include/clang/Serialization ASTRecordReader.h, clang/lib/AST ASTContext.cpp Type.cpp

trivial changes
DeltaFile
+20-14clang/lib/Sema/SemaOpenMP.cpp
+18-14clang/lib/AST/ASTContext.cpp
+16-15clang/lib/Sema/SemaTemplate.cpp
+14-11clang/lib/AST/Type.cpp
+14-8clang/lib/AST/ASTDiagnostic.cpp
+11-6clang/include/clang/Serialization/ASTRecordReader.h
+93-6833 files not shown
+202-15239 files

LLVM/project 7cc0b13clang/include/clang/AST ASTContext.h, clang/lib/AST ASTContext.cpp ItaniumMangle.cpp

[clang] implement CWG2064: ignore value dependence for decltype

The 'decltype' for a value-dependent (but non-type-dependent) should be known,
so this patch makes them non-opaque instead.

This patch also implements what's neceessary to allow overloading
on pure differences in instantiation dependence, making `std::void_t`
usable for SFINAE purposes.

This also readds a few test cases from da98651, which was a previous attempt
at resolving CWG2064.

Fixes #8740
Fixes #61818
Fixes #190388
DeltaFile
+888-161clang/lib/AST/ASTContext.cpp
+328-12clang/test/SemaTemplate/instantiation-dependence.cpp
+176-96clang/lib/AST/ItaniumMangle.cpp
+100-98clang/lib/Sema/SemaCXXScopeSpec.cpp
+62-57clang/lib/AST/Type.cpp
+88-11clang/include/clang/AST/ASTContext.h
+1,642-43569 files not shown
+2,376-79475 files

LLVM/project c237f89clang/include/clang/AST DeclTemplate.h, clang/lib/AST DeclTemplate.cpp

[clang] fix getTemplateInstantiationArgs

This implements a new strategy for collecting the template arguments, by
relying on the qualifiers and template parameter lists to navigate the template
context of out-of-line definitions.

This greatly simplifies the signature of that function, by removing a bunch
of workarounds, and simpliffying a couple that weren't removed yet.

Since this now relies on qualifiers and template parameter lists,
this patch expends most of its effort making sure these are placed,
transformed and propagated to template instantiations.

Also makes the explicit specialization AST nodes stop abusing the template
parameter lists by storing it's own template parameter list, creating a
dedicated field for them, similar to partial specializations.
DeltaFile
+194-429clang/lib/Sema/SemaTemplateInstantiate.cpp
+261-167clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+150-148clang/lib/Sema/SemaTemplate.cpp
+96-95clang/include/clang/AST/DeclTemplate.h
+59-129clang/lib/Sema/SemaConcept.cpp
+60-92clang/lib/AST/DeclTemplate.cpp
+820-1,06046 files not shown
+1,388-1,64152 files

LLVM/project 925ec82mlir/docs Tokens.md LangRef.md

address comments: symbols / IsolatedFromAbove
DeltaFile
+6-1mlir/docs/Tokens.md
+1-2mlir/docs/LangRef.md
+7-32 files

LLVM/project 2928ac8clang/include/clang/AST DeclTemplate.h, clang/lib/AST DeclTemplate.cpp

[clang] fix getTemplateInstantiationArgs

This implements a new strategy for collecting the template arguments, by
relying on the qualifiers and template parameter lists to navigate the template
context of out-of-line definitions.

This greatly simplifies the signature of that function, by removing a bunch
of workarounds, and simpliffying a couple that weren't removed yet.

Since this now relies on qualifiers and template parameter lists,
this patch expends most of its effort making sure these are placed,
transformed and propagated to template instantiations.

Also makes the explicit specialization AST nodes stop abusing the template
parameter lists by storing it's own template parameter list, creating a
dedicated field for them, similar to partial specializations.
DeltaFile
+194-429clang/lib/Sema/SemaTemplateInstantiate.cpp
+263-167clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+150-148clang/lib/Sema/SemaTemplate.cpp
+96-95clang/include/clang/AST/DeclTemplate.h
+59-129clang/lib/Sema/SemaConcept.cpp
+60-92clang/lib/AST/DeclTemplate.cpp
+822-1,06046 files not shown
+1,390-1,64152 files

LLVM/project e1a9576clang/lib/CIR/CodeGen CIRGenBuiltinAArch64.cpp, clang/test/CodeGen/AArch64 neon-intrinsics.c

[CIR][AArch64] Lower NEON vsli/vsliq intrinsics (#198309)

### summary

part of: https://github.com/llvm/llvm-project/issues/185382

Lower the AArch64 NEON shift-left-and-insert intrinsics (`vsli_n_v` /
`vsliq_n_v`) in the CIR codegen path. The lowering mirrors classic
CodeGen (`clang/lib/CodeGen/TargetBuiltins/ARM.cpp`): bitcast both
vector operands to the target element type and emit a direct
`llvm.aarch64.neon.vsli` intrinsic call.
DeltaFile
+289-0clang/test/CodeGen/AArch64/neon/intrinsics.c
+0-284clang/test/CodeGen/AArch64/neon-intrinsics.c
+14-1clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
+303-2853 files

LLVM/project 84f9530clang/lib/Driver/ToolChains Hexagon.cpp, clang/test/Driver hexagon-toolchain-elf.c

[Hexagon] Support reserving R16-R28 registers via -ffixed-rN (#197208)

Extend register reservation from R19-only to R16-R28. This allows users
to reserve callee-saved registers (R16-R27) and R28 via command-line
flags -ffixed-r16 through -ffixed-r28. The single bool ReservedR19 is
replaced with an array-based approach (ReservedR[32]) to scale cleanly
across all supported registers.

---------

Co-authored-by: quic-santdas <quic_santdas at quicinc.com>
DeltaFile
+38-2clang/test/Driver/hexagon-toolchain-elf.c
+30-0llvm/test/CodeGen/Hexagon/reserved-regs.ll
+20-3clang/lib/Driver/ToolChains/Hexagon.cpp
+7-2llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp
+6-2llvm/lib/Target/Hexagon/HexagonSubtarget.h
+4-2llvm/lib/Target/Hexagon/Hexagon.td
+105-116 files

LLVM/project 720dd96clang/lib/AST Decl.cpp DeclCXX.cpp, clang/lib/Sema SemaLookup.cpp

[clang] preserve exact redeclaration for getTemplateInstantiationPattern

This makes these functions not always return the definition if any.
The few users which depend on this are updated to fetch the definition
themselves.

Also fixes the VarDecl variant returning the queried declaration itself.
DeltaFile
+7-28clang/lib/AST/Decl.cpp
+9-10clang/test/AST/ast-dump-templates-pattern.cpp
+3-10clang/lib/AST/DeclCXX.cpp
+6-6clang/test/AST/ast-dump-decl.cpp
+6-4clang/lib/Sema/SemaLookup.cpp
+1-1clang/lib/StaticAnalyzer/Core/BugSuppression.cpp
+32-592 files not shown
+34-618 files

LLVM/project 3056addllvm/lib/Transforms/Vectorize VPlan.h VPlanRecipes.cpp

[VPlan] Rename Expression::isSingleScalar (NFC) (#199041)

The single-scalar terminology, as it is used in other places indicates
that all operands are scalars and that the result is a scalar.
VPExpressionRecipe::isSingleScalar is a misnomer, and is actually a
vector-to-scalar, using the existing terminology. Rename it for clarity.
DeltaFile
+2-2llvm/lib/Transforms/Vectorize/VPlan.h
+1-3llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+1-1llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+4-63 files

LLVM/project 00fcb51flang/test/Driver flang-f-opts.f90

Attempt to fix flang test
DeltaFile
+0-2flang/test/Driver/flang-f-opts.f90
+0-21 files

LLVM/project 59681c6libcxx/include any, libcxx/test/std/utilities/any/any.nonmembers/any.cast const_reference_types.verify.cpp void.const.verify.cpp

[libc++] remove duplicate assertions for void/reference const any_cast (#199425)

For test cases of the const overload of any_cast, such as:
```C++
void test() {
  std::any a = 0;
  const std::any& a2 = a;
  (void)std::any_cast<int&>(&a2);
}
```
(And similarly for void).

The problem is that the assertions are implemented both in the const and
non-const any_cast overloads, but since the const overload delegates to
the non-const overload, that ends up producing the same assertion twice.

This separates those test cases, because those assertions are
implemented in the function body, and that's only instantiated once per
specialization, not once per use.
DeltaFile
+33-0libcxx/test/std/utilities/any/any.nonmembers/any.cast/const_reference_types.verify.cpp
+23-0libcxx/test/std/utilities/any/any.nonmembers/any.cast/void.const.verify.cpp
+0-17libcxx/test/std/utilities/any/any.nonmembers/any.cast/reference_types.verify.cpp
+3-14libcxx/test/std/utilities/any/any.nonmembers/any.cast/void.verify.cpp
+0-2libcxx/include/any
+59-335 files

LLVM/project f347813clang/lib/CIR/CodeGen CIRGenBuiltinAMDGPU.cpp CIRGenFunction.h

[CIR] Add emitBuiltinWithOneOverloadedType helper
DeltaFile
+12-32clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
+19-0clang/lib/CIR/CodeGen/CIRGenFunction.h
+31-322 files

LLVM/project 25bb6a9llvm/lib/Transforms/InstCombine InstCombineCasts.cpp, llvm/test/Transforms/InstCombine trunc-minmax-intrinsics.ll

[InstCombine] Narrow umin/umax/smin/smax through trunc. (#199213)

Update EvaluateInDifferentType / canEvaluateTruncated to support
narrowing umin/umax/smin/smax intrinsics, when their result fits in the
narrow type: zero high bits for umin/umax, or enough sign
bits for smin/smax.

Alive2 Proofs:
 * umin/umax with high bits zero: https://alive2.llvm.org/ce/z/dJC_Fj
 * smin/smax with sign-bits set: https://alive2.llvm.org/ce/z/z7vM8Z

End-to-end examples from C workloads performing pixel math:
https://llvm.godbolt.org/z/jK3bd3GfY

PR: https://github.com/llvm/llvm-project/pull/199213
DeltaFile
+623-0llvm/test/Transforms/InstCombine/trunc-minmax-intrinsics.ll
+63-0llvm/test/Transforms/PhaseOrdering/AArch64/trunc-intrinsics.ll
+36-0llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+722-03 files

LLVM/project df4f0d0llvm/lib/Target/X86 X86ISelLowering.cpp X86ISelLowering.h, llvm/test/Transforms/AtomicExpand/X86 expand-atomic-non-integer.ll

[X86] Remove shouldCastAtomicLoadInIR; use DAG combine instead

Remove X86's shouldCastAtomicLoadInIR override that cast FP atomic
loads to integer at the IR level. Instead, handle this in a pre-legalize
DAG combine (combineAtomicLoad) that rewrites FP/FP-vector atomic loads
to integer atomic loads plus a bitcast.

This depends on #199310 which adds the necessary cmpxchg support for
non-integer atomic loads in AtomicExpand.
DeltaFile
+25-7llvm/lib/Target/X86/X86ISelLowering.cpp
+1-2llvm/test/Transforms/AtomicExpand/X86/expand-atomic-non-integer.ll
+0-2llvm/lib/Target/X86/X86ISelLowering.h
+26-113 files

LLVM/project c59178dlibc/src/__support/net address.cpp address.h, libc/src/arpa/inet inet_aton.cpp inet_addr.cpp

[libc] Fix inet_aton (#198791)

The main (in terms of LOC) change is moving the implementation to an
internal function in order to avoid the inet_addr->inet_aton dependency.

I also fix a bug where we (mistakenly) accepted whitespace and signs
inside the address. I also match the glibc implementation in ignoring
the data after the first whitespace.
DeltaFile
+65-0libc/src/__support/net/address.cpp
+5-37libc/src/arpa/inet/inet_aton.cpp
+30-0libc/src/__support/net/address.h
+25-0libc/test/src/arpa/inet/inet_aton_test.cpp
+13-0libc/src/__support/net/CMakeLists.txt
+6-4libc/src/arpa/inet/inet_addr.cpp
+144-412 files not shown
+149-448 files

LLVM/project dead187llvm/test/Transforms/SLPVectorizer/X86 scalarize-ctlz.ll arith-fp-inseltpoison.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+31-37llvm/test/Transforms/SLPVectorizer/X86/scalarize-ctlz.ll
+27-18llvm/test/Transforms/SLPVectorizer/X86/arith-fp-inseltpoison.ll
+30-15llvm/test/Transforms/SLPVectorizer/X86/sitofp.ll
+27-18llvm/test/Transforms/SLPVectorizer/X86/arith-fp.ll
+21-17llvm/test/Transforms/SLPVectorizer/X86/vec_list_bias_external_insert_shuffled.ll
+21-17llvm/test/Transforms/SLPVectorizer/X86/vec_list_bias.ll
+157-1229 files not shown
+244-18015 files

LLVM/project af92edflibc/src/__support/OSUtil/linux auxv.h, libc/src/__support/OSUtil/linux/syscall_wrappers mprotect.h munmap.h

[libc] Port munmap and mprotect to the new syscall interface (#199199)

Assisted by Gemini.
DeltaFile
+7-5libc/src/__support/threads/linux/thread.cpp
+2-6libc/src/__support/OSUtil/linux/syscall_wrappers/mprotect.h
+2-5libc/src/__support/OSUtil/linux/syscall_wrappers/munmap.h
+3-2libc/src/__support/OSUtil/linux/auxv.h
+2-1libc/startup/linux/riscv/tls.cpp
+2-1libc/startup/linux/aarch64/tls.cpp
+18-206 files not shown
+26-2112 files

LLVM/project 5f6a7f6llvm/lib/Transforms/Scalar LoopInterchange.cpp

[LoopInterchange] drop duplicate Instruction type check in populateDependencyMatrix (#199498)

Remove a duplicate isa<Instruction> check in populateDependencyMatrix.
DeltaFile
+0-2llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+0-21 files

LLVM/project f56b506lld/ELF SyntheticSections.cpp Relocations.cpp, lld/ELF/Arch AArch64.cpp

[PAC][lld] Do not emit AUTH relocs against undef weak non-preemptible symbols

Undefined weak non-preemptible symbols should be statically resolved to
the addend value and not signed. Previously, a dynamic relocation
against such symbols was emitted, which is not a correct behavior.

See also docs: https://github.com/ARM-software/abi-aa/pull/391

Resolves #173296
DeltaFile
+118-17lld/ELF/Arch/AArch64.cpp
+48-0lld/test/ELF/aarch64-reloc-pauth-undef-weak-dso.s
+48-0lld/test/ELF/aarch64-reloc-pauth-undef-weak.s
+47-0lld/test/ELF/aarch64-reloc-pauth-undef-weak-pie.s
+15-5lld/ELF/SyntheticSections.cpp
+13-6lld/ELF/Relocations.cpp
+289-283 files not shown
+300-369 files

LLVM/project 565d156lld/ELF RelocScan.h, lld/ELF/Arch AArch64.cpp

Support R_AARCH64_AUTH_TLSDESC_CALL
DeltaFile
+20-53lld/ELF/Arch/AArch64.cpp
+9-6lld/test/ELF/aarch64-tlsdesc-pauth.s
+3-1lld/ELF/RelocScan.h
+1-1lld/test/ELF/aarch64-reloc-pauth-undef-weak-pie.s
+1-1lld/test/ELF/aarch64-reloc-pauth-undef-weak.s
+1-1lld/test/ELF/aarch64-reloc-pauth-undef-weak-dso.s
+35-636 files

LLVM/project 728f4a1llvm/test/MC/AArch64 tls-auth-relocs.s

Address review comments
DeltaFile
+36-0llvm/test/MC/AArch64/tls-auth-relocs.s
+36-01 files

LLVM/project 51e74d6llvm/lib/Target/AArch64 AArch64AsmPrinter.cpp AArch64InstrInfo.td, llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp

[PAC][ELF] Support R_AARCH64_AUTH_TLSDESC_CALL relocation

The R_AARCH64_AUTH_TLSDESC_CALL is introduced to allow linker relaxation of
AUTH TLSDESC call sequences for non-preemptible undefined weak symbols.

The lld patch introducing the relaxation: #194636

Corresponding ARM docs PR: https://github.com/ARM-software/abi-aa/pull/395
DeltaFile
+11-6llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+10-5llvm/test/CodeGen/AArch64/ptrauth-arm64-tls-dynamics.ll
+12-3llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+9-0llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp
+8-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+3-0llvm/test/MC/AArch64/directives-case_insensitive.s
+53-146 files

LLVM/project bd7c21aclang/lib/CIR/Lowering/DirectToLLVM LowerToLLVM.cpp

[CIR] Support void calls in cir.call_llvm_intrinsic lowering
DeltaFile
+14-6clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+14-61 files

LLVM/project 48cec83compiler-rt/lib/builtins clear_cache.c

[compiler-rt] Inline __NR_riscv_flush_icache instead of including linux/unistd.h (#193645)

Avoid the dependency on kernel headers to get __NR_riscv_flush_icache,
mirroring the existing approach used for __ARM_NR_cacheflush.

Assisted-by: Claude Sonnet 4.6
DeltaFile
+4-5compiler-rt/lib/builtins/clear_cache.c
+4-51 files

LLVM/project 5226a61llvm/lib/Transforms/Utils CodeExtractor.cpp

Fix warning
DeltaFile
+1-0llvm/lib/Transforms/Utils/CodeExtractor.cpp
+1-01 files

LLVM/project 4e4095bllvm/lib/Target/RISCV RISCVISelLowering.cpp RISCVInstrInfoZvzip.td, llvm/test/CodeGen/RISCV/rvv vector-deinterleave.ll fixed-vectors-shuffle-deinterleave2.ll

[RISCV][CodeGen] Add initial CodeGen support of vunzip{e,o} (#196024)

Add initial support for vunzip{e,o} instructions, which are included in
zvzip extension.
DeltaFile
+93-183llvm/test/CodeGen/RISCV/rvv/vector-deinterleave.ll
+119-35llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+41-102llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-deinterleave2.ll
+22-80llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-fixed.ll
+25-0llvm/lib/Target/RISCV/RISCVInstrInfoZvzip.td
+300-4005 files

LLVM/project 9f74ecbllvm/test/MC/AArch64 tls-auth-relocs.s

Address review comments
DeltaFile
+36-0llvm/test/MC/AArch64/tls-auth-relocs.s
+36-01 files