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 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

LLVM/project 305a60ellvm/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
+12-3llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+10-5llvm/test/CodeGen/AArch64/ptrauth-arm64-tls-dynamics.ll
+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 727f788lld/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-dso.s
+1-1lld/test/ELF/aarch64-reloc-pauth-undef-weak.s
+35-636 files

LLVM/project 4bd8774lld/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.s
+48-0lld/test/ELF/aarch64-reloc-pauth-undef-weak-dso.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 8446759lldb/source/Plugins/ExpressionParser/Clang ClangASTImporter.h

[lldb] Don't assume non-erased DenseMap entries remain valid after erase. NFC (#199499)

Similar to #198982
DeltaFile
+2-7lldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.h
+2-71 files

LLVM/project 7284f65llvm/include/llvm/BinaryFormat/ELFRelocs AArch64.def, llvm/test/tools/llvm-readobj/ELF reloc-types-aarch64.test

[PAC][llvm-readobj][ELF][AArch64] Define R_AARCH64_AUTH_TLSDESC_CALL reloc

See specification https://github.com/ARM-software/abi-aa/pull/395
DeltaFile
+2-0llvm/test/tools/llvm-readobj/ELF/reloc-types-aarch64.test
+1-0llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
+3-02 files

LLVM/project 0285f1cmlir/include/mlir/Support ThreadLocalCache.h, mlir/lib/Conversion/PDLToPDLInterp RootOrdering.cpp

[mlir] Don't assume non-erased DenseMap entries remain valid after erase. NFC (#199365)

Like the preceding llvm/ change, fix MLIR sites that reuse an iterator
or bucket reference after erasing from the same map, in preparation for
backward-shift DenseMap deletion which relocates surviving entries.

Use DenseMap::remove_if in ThreadLocalCache::clearExpiredEntries and the
RootOrdering cycle contraction (deferring the in-cycle graph erases
until
after iteration). ThreadLocalCache::get reads the value into a local and
bufferizeOp snapshots the worklist before folding, since those erases
re-enter via a rewriter listener.

Aided by Claude Opus 4.7
DeltaFile
+20-20mlir/lib/Conversion/PDLToPDLInterp/RootOrdering.cpp
+9-6mlir/include/mlir/Support/ThreadLocalCache.h
+8-2mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp
+37-283 files

LLVM/project 6aa8e1cllvm/lib/Target/AMDGPU SIMemoryLegalizer.cpp, llvm/test/CodeGen/AMDGPU memory-legalizer-av-none.ll

[AMDGPU] Implement "non-av" semantics using metadata

When the MMRA tag !{!"amdgcn-av", !"none"} is present on a synchronization
operation (fence, atomic load/store/rmw/cmpxchg), suppress cache writeback
(MakeAvailable) and cache invalidation (MakeVisible) while preserving
memory ordering (waits).

This implements the metadata proposed in #191246.

Fixes: LCOMPILER-2214

Assisted-By: Claude Opus 4.6
DeltaFile
+722-0llvm/test/CodeGen/AMDGPU/memory-legalizer-av-none.ll
+47-29llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
+769-292 files

LLVM/project ee4c5d2clang/test/AST ast-dump-lambda-json.cpp ast-dump-template-json-win32-mangler-crash.cpp, lldb/tools/lldb-dap/extension package-lock.json

Merge branch 'main' into users/kovdan01/pauth-relr-rela-movement
DeltaFile
+23,873-20,923llvm/lib/Support/UnicodeNameToCodepointGenerated.cpp
+12,365-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
+3,903-0llvm/test/CodeGen/NVPTX/machine-cse-predicate-inversion.ll
+2,504-1,285lldb/tools/lldb-dap/extension/package-lock.json
+0-3,387clang/test/AST/ast-dump-lambda-json.cpp
+7-3,217clang/test/AST/ast-dump-template-json-win32-mangler-crash.cpp
+42,652-28,8123,377 files not shown
+154,853-85,4223,383 files

LLVM/project 2e344c4llvm/lib/Target/AMDGPU SIMemoryLegalizer.cpp

[AMDGPU] Refactor insertRelease into insertWriteback + insertWait (NFC)

A release consists of two actions: write-back the current cache, and wait for
"relevant" outstanding operations to complete. With the new memory model, it is
possible to disable the cache write-back using "av none" semantics. This patch
cleanly separates the existing implementation so that the write-backs can be
selectively applied when such metadata is present.

Assisted-By: Claude Opus 4.6
DeltaFile
+123-137llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
+123-1371 files

LLVM/project b5b862flld/ELF/Arch LoongArch.cpp, lld/test/ELF loongarch-tls-dtprel.s

[lld][LoongArch] Handle DTPREL relocations in debug sections

Teach the LoongArch lld backend to classify R_LARCH_TLS_DTPREL32
and R_LARCH_TLS_DTPREL64 as R_DTPREL.

This allows linker processing of TLS debug info references emitted
into .debug_info via .dtprelword/.dtpreldword. Add 32-bit and 64-bit
tests that assemble objects with DTPREL relocations in debug sections.
DeltaFile
+34-0lld/test/ELF/loongarch-tls-dtprel.s
+3-0lld/ELF/Arch/LoongArch.cpp
+37-02 files

LLVM/project 47a026eclang/lib/CIR/CodeGen CIRGenBuiltinAMDGPU.cpp

[CIR][AMDGPU] Clean up emitAMDGCNImageOverloadedReturnType helper
DeltaFile
+4-37clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
+4-371 files

LLVM/project b0a5ba5clang/lib/CIR/CodeGen CIRGenBuiltinAMDGPU.cpp CIRGenTypes.cpp, clang/test/CIR/CodeGenHIP builtins-amdgcn-image.hip

[CIR][AMDGPU] Adds lowering for amdgcn image load/store builtins
DeltaFile
+466-0clang/test/CIR/CodeGenHIP/builtins-amdgcn-image.hip
+106-12clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
+17-0clang/lib/CIR/CodeGen/CIRGenTypes.cpp
+589-123 files

LLVM/project aac212futils/bazel/llvm-project-overlay/llvm BUILD.bazel

[Bazel] Fixes e77ae26 (#199476)

This fixes e77ae26ca8ead5ca47dd6ed909031fb3c539a488.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+1-0utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+1-01 files

LLVM/project 9bd8bbb.github/workflows llvm-abi-tests.yml

workflows/llvm-abi-tests: Remove template expansions (#199436)

https://github.com/llvm/llvm-project/security/code-scanning/1655
https://github.com/llvm/llvm-project/security/code-scanning/1656
https://github.com/llvm/llvm-project/security/code-scanning/1657
https://github.com/llvm/llvm-project/security/code-scanning/1658
https://github.com/llvm/llvm-project/security/code-scanning/1659
https://github.com/llvm/llvm-project/security/code-scanning/1660
https://github.com/llvm/llvm-project/security/code-scanning/1661
https://github.com/llvm/llvm-project/security/code-scanning/1662
https://github.com/llvm/llvm-project/security/code-scanning/1663
https://github.com/llvm/llvm-project/security/code-scanning/1664
DeltaFile
+16-7.github/workflows/llvm-abi-tests.yml
+16-71 files

LLVM/project d06febclibcxx/include/__memory shared_ptr.h, libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const shared_ptr_Y.pass.cpp

[libc++] Fix shared_ptr(Y*) constraint check on GCC (#199429)

GCC has fixed SFINAEing on `delete` since at least GCC 11, so we can
properly constrain the constructor.
DeltaFile
+1-1libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/shared_ptr_Y.pass.cpp
+1-1libcxx/include/__memory/shared_ptr.h
+2-22 files

LLVM/project 63bb8dcclang/lib/Driver/ToolChains CommonArgs.cpp

[Mips] Remove mips from omitting the frame pointer for Linux (#199381)

6b1f976858eea5a64f058ca48873be834bd79569 enabled omitting
the frame pointer no matter what OS so remove the now redundancy
with having this on the Linux path.
DeltaFile
+0-4clang/lib/Driver/ToolChains/CommonArgs.cpp
+0-41 files

LLVM/project e77ae26llvm/test/tools/llubi stack_overflow.ll assume_invalid_align.ll, llvm/tools/llubi llubi.cpp

[llubi] Print out inst location in stack trace (#199430)

This patch appends `file:line number` to each frame in the stack trace.
It would improve the debugging experience.

In all test files, the inputs are supplied via stdin. I think it should
be okay, as I don't need to add wildcards for filenames.
DeltaFile
+10-10llvm/test/tools/llubi/stack_overflow.ll
+4-2llvm/tools/llubi/llubi.cpp
+3-3llvm/tools/llubi/lib/Context.cpp
+5-1llvm/tools/llubi/lib/Context.h
+6-0llvm/tools/llubi/lib/ExecutorBase.cpp
+1-1llvm/test/tools/llubi/assume_invalid_align.ll
+29-1753 files not shown
+82-6959 files

LLVM/project bafeb86llvm/docs AMDGPUUsage.rst, llvm/lib/Target/AMDGPU AMDGPUAsmPrinter.cpp AMDGPUMCResourceInfo.cpp

[AMDGPU] Introduce ABI occupancy for object linking

This PR introduces ABI occupancy as the contract used to compile functions under
object linking. The default is derived from the occupancy needed for a 1024
workitem workgroup, can be overridden with `-amdgpu-abi-waves-per-eu`, and can
be overridden per function by `amdgpu-flat-work-group-size` or tightened by an
accepted `amdgpu-waves-per-eu` hint.

The backend emits the selected occupancy in `.amdgpu.info` and uses it to
enforce the object linking register budget.
DeltaFile
+67-35llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+53-7llvm/docs/AMDGPUUsage.rst
+37-3llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
+34-0llvm/test/CodeGen/AMDGPU/object-linking-abi-occupancy-preserves-attr.ll
+32-2llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
+31-0llvm/test/CodeGen/AMDGPU/object-linking-abi-occupancy-kernel-no-attr.ll
+254-4714 files not shown
+410-4820 files

LLVM/project ad0e4c0clang/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/test/AST/ast-dump-linkage.cpp
+32-592 files not shown
+34-618 files

LLVM/project 4aac0c6llvm/utils/lit/tests/unit Util.py

[AIX] Re-apply: Remove unsupported AIX native echo option -n by using printf (#199395)

AIX native echo doesn't support the `-n` flag.
Use `printf` instead to ensure the test works across all systems and
making it portable.

The current test fails as follows:
```
FAIL: lit :: unit/Util.py (1 of 1)
******************** TEST 'lit :: unit/Util.py' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
"/opt/freeware/bin/python3.12" /home/himadhit/llvm/community/build/utils/lit/tests/unit/Util.py
# executed command: /opt/freeware/bin/python3.12 /home/himadhit/llvm/community/build/utils/lit/tests/unit/Util.py
# .---command stderr------------
# | F..

    [16 lines not shown]
DeltaFile
+2-2llvm/utils/lit/tests/unit/Util.py
+2-21 files

LLVM/project 8811c2bllvm/lib/Transforms/Scalar ConstantHoisting.cpp

[ConstantHoisting] Avoid DenseMap reference invalidated by insertion (#199468)

Fix https://reviews.llvm.org/D28962 : DenseMap does not promise to keep
references stable across insertion. This happens to work today because
we don't do bucket eviction.

Pre-populate every node up front.
DeltaFile
+6-4llvm/lib/Transforms/Scalar/ConstantHoisting.cpp
+6-41 files

LLVM/project a49c16aclang/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