LLVM/project 6c3604bllvm/test/CodeGen/NVPTX mixed-precision-sub-f32x2-downconvert-invalid.ll mixed-precision-f32x2-sm-version.ll

[NVPTX] Add support for f32x2 mixed-precision add/sub (#221957)

This change adds support for mixed precision addition and 
subtraction of `f16x2` and `bf16x2` with `f32x2`, where the
following upconverting patterns:
```
%e = fpext <2 x half> %h to <2 x float>
%res = fp-operation(%e, ...)
...
%e = fpext <2 x bfloat> %b to <2 x float>
%res = fp-operation(%e, ...)

where the fp-operation can be any of:
- fadd
- fsub
- llvm.nvvm.fadd.v2f32
```
are lowered to `add/sub.{rnd}.f32x2.{f16x2/bf16x2}.f32x2`, and the
following downconverting pattern:

    [22 lines not shown]
DeltaFile
+719-0llvm/test/CodeGen/NVPTX/mixed-precision-add-f32x2-upconvert-invalid.ll
+543-0llvm/test/CodeGen/NVPTX/mixed-precision-add-f32x2-upconvert.ll
+539-0llvm/test/CodeGen/NVPTX/mixed-precision-sub-f32x2-upconvert-invalid.ll
+394-0llvm/test/CodeGen/NVPTX/mixed-precision-sub-f32x2-upconvert.ll
+304-0llvm/test/CodeGen/NVPTX/mixed-precision-f32x2-sm-version.ll
+274-0llvm/test/CodeGen/NVPTX/mixed-precision-sub-f32x2-downconvert-invalid.ll
+2,773-05 files not shown
+3,369-411 files

LLVM/project 3f8625ellvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/lib/Target/X86 X86ISelLowering.cpp

[DAGCombiner] Narrow the integer source of sint_to_fp

Truncate the source of a `sint_to_fp` when it is known to fit in a narrower
type the target can convert from directly.
For example:
```
    sitofp (sext i32 %x to i64) to float
```
On AMDGPU this becomes a single `v_cvt_f32_i32` instead of the generic
i64 to f32 expansion.

Note: X86 marks i16 sint_to_fp as Custom, but SSE only supports conversion from
i32, so the custom lowering sign-extends i16 back to i32. Mark i16 as
undesirable to avoid a redundant movswl.
DeltaFile
+169-769llvm/test/CodeGen/AMDGPU/int_to_fp_narrow_i64.ll
+29-0llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+4-4llvm/test/CodeGen/X86/fold-int-pow2-with-fmul-or-fdiv.ll
+1-0llvm/lib/Target/X86/X86ISelLowering.cpp
+203-7734 files

LLVM/project 8ea2449clang/lib/CIR/Lowering/DirectToLLVM LowerToLLVM.cpp, clang/test/CIR/Lowering unlowered-address-spaces.cir

[CIR] Reject language address spaces in DirectToLLVM pointer conversion

Reject unlowered language address spaces in pointer types when bypassing TargetLowering. Guard pointer-producing lowerings, including generated patterns, so failed conversions report legalization failures instead of silently selecting address space zero or constructing invalid LLVM operations.

Assisted-by: Codex / GPT-6
DeltaFile
+545-0clang/test/CIR/Lowering/unlowered-address-spaces.cir
+64-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+2-0clang/utils/TableGen/CIRLoweringEmitter.cpp
+611-03 files

LLVM/project 3f9ca80llvm/include/llvm/ExecutionEngine/Orc/Shared Mangler.h, llvm/lib/ExecutionEngine/Orc CMakeLists.txt Mangler.cpp

[ORC] Move Mangler functions into header. (#224209)

Move Mangler functions into Mangler.h so that they can be used from
OrcTargetProcess without introducing a dependence on OrcJIT.

This is a temporary fix to enable use of SymbolNameSpec in
OrcTargetProcess (see https://github.com/llvm/llvm-project/pull/224188).
Future work will reorganize these libraries and should allow this code
to sink back down into a .cpp file.
DeltaFile
+0-53llvm/lib/ExecutionEngine/Orc/Mangler.cpp
+42-2llvm/include/llvm/ExecutionEngine/Orc/Shared/Mangler.h
+0-1llvm/lib/ExecutionEngine/Orc/CMakeLists.txt
+42-563 files

LLVM/project b436b44clang/include/clang/CIR LoweringHelpers.h, clang/include/clang/CIR/Dialect/IR CIROps.td

[CIR] Propagate initializer type adjustment failures

Reject initializers whose active members have no LLVM representation, including when an enclosing union's storage type is convertible. Propagate recursive adjustment failures before querying data layout or constructing LLVM operations.

Assisted-by: Codex / GPT-6
DeltaFile
+66-0clang/test/CIR/Lowering/unsupported-initializer-types.cir
+13-2clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+12-0clang/lib/CIR/Lowering/LoweringHelpers.cpp
+2-1clang/include/clang/CIR/LoweringHelpers.h
+1-1clang/include/clang/CIR/Dialect/IR/CIROps.td
+94-45 files

LLVM/project d3cc1d7clang/lib/CIR/Lowering/DirectToLLVM LowerToLLVM.h LowerToLLVM.cpp, clang/test/CIR/Lowering unsupported-type-conversions.cir

[CIR] Propagate type conversion failures in DirectToLLVM

Propagate failed type and constant conversions through DirectToLLVM so unsupported types produce legalization failures instead of invalid LLVM operations or a void function result.

Assisted-by: Codex / GPT-6
DeltaFile
+178-0clang/test/CIR/Lowering/unsupported-type-conversions.cir
+49-13clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+4-3clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.h
+231-163 files

LLVM/project 1ebf89dllvm/lib/Target/AMDGPU SIRegisterInfo.td MIMGInstructions.td, llvm/lib/Target/AMDGPU/Disassembler AMDGPUDisassembler.cpp

[AMDGPU][GFX13] MC support for indexed VIMAGE/VSAMPLE resources (#223429)
DeltaFile
+158-60llvm/lib/Target/AMDGPU/MIMGInstructions.td
+19-0llvm/test/MC/AMDGPU/gfx13_asm_vsample.s
+18-0llvm/test/MC/AMDGPU/gfx13_asm_vimage.s
+12-1llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
+7-5llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+9-0llvm/lib/Target/AMDGPU/SIRegisterInfo.td
+223-661 files not shown
+227-677 files

LLVM/project 5ee9be9llvm/lib/Analysis ScalarEvolution.cpp, llvm/test/Analysis/DependenceAnalysis DifferentOffsets.ll MIVCheckConst.ll

[SCEV] Look thru more expressions in isKnownMultipleOf (#219951)

Generalize the existing logic to look through AddRecs to look through
Add, Mul, and MinMax expressions in isKnownMultipleOf, noting that this
simply increases precision of added predicates, allowing us to add more
fine-grained predicates. It also fixes an underlying bug in the case the
AddRec wraps. The patch has no optimization impact at the moment, and
only serves to have higher precision in its sole user,
DependenceAnalysis.

Proof: https://alive2.llvm.org/ce/z/JLCqGJ
DeltaFile
+23-9llvm/lib/Analysis/ScalarEvolution.cpp
+2-4llvm/test/Analysis/DependenceAnalysis/MIVCheckConst.ll
+3-1llvm/test/Analysis/DependenceAnalysis/DifferentOffsets.ll
+28-143 files

LLVM/project 5781d4bllvm/lib/Support UnicodeCaseFold.cpp, llvm/utils unicode-case-fold.py

[llvm] Updates case folding rules to Unicode 18 (#223716)

This PR updates other Unicode tables started by
https://github.com/llvm/llvm-project/pull/198255

Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
DeltaFile
+63-8llvm/lib/Support/UnicodeCaseFold.cpp
+27-22llvm/utils/unicode-case-fold.py
+3-3llvm/utils/UnicodeData/UnicodeNameMappingGenerator.cpp
+93-333 files

LLVM/project 7232f3blld/test/ELF arm-thunk-overlay-reuse.s aarch64-thunk-bti-overlay-reuse.s

[LLD][ELF] Reduce memory and file size of overlay thunk tests (#222565)

Add AT(address) to linker script to force generation of a program header
for each address. Without AT we get a single large program header that
takes up a large amount of memory and causes a large file to be
generated. This may prevent the test from running on a 32-bit machine
without a lot of memory. See comment on #200415

Also removed a superfluous --print-map from
aarch64-thunk-bit-overlay-reuse.s. This was used when constructing the
test but it is not needed.
DeltaFile
+3-3lld/test/ELF/aarch64-thunk-bti-overlay-reuse.s
+2-2lld/test/ELF/arm-thunk-overlay-reuse.s
+5-52 files

LLVM/project 9a3d449flang/test/Driver fno-optimize-sibling-calls.f90, flang/test/Transforms function-attr-disable-tail-calls.fir

[Flang][Driver]Implemented the support for option -f[no-]optimize-sibling-calls in Flang (#216650)

Added support for -foptimize-sibling-calls and
-fno-optimize-sibling-calls in Flang.

- Sibling call optimization is on by default and the driver pass the
option `-f[no-]optimize-sibling-calls` to flang -fc1.
- When `-fno-optimize-sibling-calls` flag is passed, it sets boolen
`DisableTailCalls` and this results in adding the LLVM IR attribute
`"disable-tail-calls"="true"` which disables sibling call optimization.
DeltaFile
+16-0mlir/test/Target/LLVMIR/Import/disable-tail-calls.ll
+14-0mlir/test/Target/LLVMIR/disable-tail-calls.mlir
+11-0mlir/lib/Target/LLVMIR/ModuleImport.cpp
+11-0flang/test/Driver/fno-optimize-sibling-calls.f90
+11-0flang/test/Transforms/function-attr-disable-tail-calls.fir
+7-0mlir/test/Target/LLVMIR/Import/import-failure.ll
+70-010 files not shown
+102-516 files

LLVM/project 3d6cd38llvm/lib/Target/AMDGPU VOP3PInstructions.td VOPCInstructions.td

[AMDGPU] Set Format/FormatModifier directly instead of per-flag bits, NFC.

Remove the now-redundant individual InstSI format flag fields (SOP1/2/C/K/P,
VOP1/2/C/VOP3/VINTRP/VOPD3/LDSDIR, the memory formats, Spill, and DPP/SDWA) and
have instruction classes set the Format / FormatModifier enum fields directly.
The enum fields are packed into TSFlags exactly as before, so this is NFC (the
full instruction table is byte-identical).

Real instructions copy Format/FormatModifier from their pseudo in the base real
classes (kept next to the existing TSFlags copy), so the Format field is now
correct on real instructions too.

Two derived helper bits (IsVOP3Encoding, VOPD3) are computed from Format for the
getVOPe32/getVOPe64 relation maps and the VOPDPairs searchable table; they are
not part of TSFlags.

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+21-73llvm/lib/Target/AMDGPU/SIInstrFormats.td
+21-17llvm/lib/Target/AMDGPU/VOPInstructions.td
+15-10llvm/lib/Target/AMDGPU/SOPInstructions.td
+11-11llvm/lib/Target/AMDGPU/SIInstructions.td
+9-8llvm/lib/Target/AMDGPU/VOPCInstructions.td
+7-7llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+84-12612 files not shown
+123-15818 files

LLVM/project 7d61d88llvm/lib/Target/AMDGPU SIInstrInfo.cpp SIDefines.h, llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

[AMDGPU] Decouple isVOP3P/isVINTERP from isVOP3 (#223448)

VOP3P and VINTERP instructions also set the VOP3 TSFlags bit, so isVOP3()
returned true for them. This overloaded isVOP3() to mean both "the VOP3
encoding" and "uses VOP3-style operand rules" (modifiers, constant bus,
literal legality).

Make VOP3P and VINTERP their own instruction-format enum values so
isVOP3() is strict (Format == VOP3). Callers that need "any VOP3-family
operand encoding" now use isVOP3Like() (VOP3 | VOP3P | VINTERP), added as
a SIInstrInfo wrapper. Redundant "isVOP3() && !isVOP3P()" tests are
simplified to isVOP3().

Resolves llvm/llvm-project#223448.

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+19-17llvm/lib/Target/AMDGPU/SIInstrFormats.td
+12-13llvm/lib/Target/AMDGPU/SIDefines.h
+7-6llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+5-6llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+2-2llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+2-2llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
+47-465 files not shown
+53-5211 files

LLVM/project d5a8179llvm/lib/Target/AMDGPU SIInstrFormats.td SIDefines.h

[AMDGPU] Pack instruction format and modifier TSFlags bits into enums, NFC.

The instruction-format bits in TSFlags are mutually exclusive, so
collapse them into a single 5-bit Format enum and likewise FormatModifier
enum for DPP/SDWA. This frees 18 TSFlags bits.

For now Format is derived from individual TableGen bitfields to minimize
the patch, but next commit will remove those.

All raw format-bit tests already go through the SIInstrFlags predicates,
so no call sites change.

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+110-71llvm/lib/Target/AMDGPU/SIDefines.h
+82-34llvm/lib/Target/AMDGPU/SIInstrFormats.td
+192-1052 files

LLVM/project 4ee94b0llvm/lib/Target/AArch64 SMEPeepholeOpt.cpp, llvm/test/CodeGen/AArch64 sme-peephole-opt-sm-compat.ll stack-hazard.ll

 [AArch64] Allow SME peephole opts without +sme in streaming compat functions (#222728)
DeltaFile
+7-31llvm/test/CodeGen/AArch64/stack-hazard.ll
+36-0llvm/test/CodeGen/AArch64/sme-peephole-opt-sm-compat.ll
+5-2llvm/lib/Target/AArch64/SMEPeepholeOpt.cpp
+48-333 files

LLVM/project 28f36e6clang/lib/Driver/ToolChains WebAssembly.cpp, clang/test/Driver wasm-toolchain.c

WebAssembly: Drive Emscripten EH from the exception model, drop the cl::opt (#223972)

Remove the deprecated -enable-emscripten-cxx-exceptions flag. This
should now be driven by the generic exception-model mechanisms. There 
was also some special case handling of the -mllvm flag in the clang driver 
which also needed removal.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+1-25clang/test/Driver/wasm-toolchain.c
+2-14llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+3-13clang/lib/Driver/ToolChains/WebAssembly.cpp
+5-2llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
+1-5llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+1-2llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
+13-611 files not shown
+13-627 files

LLVM/project de199ddclang/lib/StaticAnalyzer/Checkers/WebKit PtrTypesSemantics.cpp, clang/test/Analysis/Checkers/WebKit uncounted-local-vars.cpp

[WebKit Checkers] Honor using declarations when looking up protocol conformance (#223902)
DeltaFile
+40-0clang/test/Analysis/Checkers/WebKit/uncounted-local-vars.cpp
+9-0clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
+49-02 files

LLVM/project 15cff90libc/src/__support/threads/linux thread.cpp, libc/startup/linux CMakeLists.txt do_start.cpp

[libc] Make it possible to join the main thread (#221177)

Joining the main thread currently crashes because its ThreadAttributes
has a null platform_data pointer, causing Thread::wait() to dereference
a null futex.

While this is not a frequently used feature, it is supported by other
implementations, and I believe it is required by POSIX (the exec page
says that the main thread is created in a joinable state, and neither
pthread_join nor pthread_exit mention them not working on the main
thread).

This patch sets up the main thread attributes during startup:
- allocate a static futex for the main thread's clear_tid and point
platform_data to it
- invoke set_tid_address to have the kernel clear the futex and wake
waiters on thread termination
- mark the main thread as joinable (it was previously defaulting to
detached)

    [10 lines not shown]
DeltaFile
+45-0libc/test/integration/src/pthread/pthread_join_main_test.cpp
+10-12libc/src/__support/threads/linux/thread.cpp
+15-0libc/test/integration/src/pthread/CMakeLists.txt
+6-0libc/startup/linux/do_start.cpp
+1-1libc/test/integration/src/pthread/pthread_getattr_np_test.cpp
+1-0libc/startup/linux/CMakeLists.txt
+78-136 files

LLVM/project ee0f498llvm/lib/Transforms/Scalar SROA.cpp, llvm/test/Transforms/SROA struct-to-vector-stack-alignment.ll

[SROA] Avoid unnecessary stack realignment when rewriting allocas (#222967)

SROA can introduce dynamic stack realignment when rewriting an aggregate
alloca as a vector. On SystemZ (`S64`), a five-pointer structure with
alignment 8 becomes `<5 x ptr>` with alignment 64, adding an alignment
mask and extra stack-frame setup instructions.

Create replacement allocas with the alignment inherited from the
original alloca and partition offset, then use `tryEnforceAlignment` to
request the preferred type alignment. This reuses the existing
stack-alignment check: when a natural stack alignment is specified,
promotions beyond it are rejected. Stronger inherited alignments are
preserved.

Add SROA-only regression coverage for `S64`, `S128`, unspecified natural
stack alignment, and explicit stronger alignments. Existing SROA,
debug-info, and NVPTX tests retain their original RUN lines and checks,
including the NVPTX vector stores.


    [2 lines not shown]
DeltaFile
+140-0llvm/test/Transforms/SROA/struct-to-vector-stack-alignment.ll
+5-8llvm/lib/Transforms/Scalar/SROA.cpp
+145-82 files

LLVM/project e470d98clang/www cxx_status.html

[clang][www] Fix a typo in cxx_status page (#224206)

the "Clang 24" shows up left-aligned right now.
DeltaFile
+1-1clang/www/cxx_status.html
+1-11 files

LLVM/project 53a00b2llvm/include/llvm/ADT DenseMap.h, llvm/unittests/ADT DenseMapTest.cpp

[DenseMap] memcpy buckets with trivial copy constructor and destructor. NFC (#224193)

std::pair has a user-provided copy assignment operator, so
std::is_trivially_copyable is false. Define is weaker
isRelocatableBucket instead.

This optimizes some DenseMap instantiations within lld (e.g.
lld/ELF/SyntheticSections.cpp)
DeltaFile
+8-1llvm/include/llvm/ADT/DenseMap.h
+8-0llvm/unittests/ADT/DenseMapTest.cpp
+16-12 files

LLVM/project 39ee115compiler-rt/lib/builtins assembly.h, compiler-rt/lib/builtins/arm aeabi_cfcmp.S

[compiler-rt][ARM] Make ARMv4T assembly builtins interwork (#221725)

ARMv4T can't switch instruction state when a saved return address is
loaded directly into the pc. Several builtins did exactly that, so a
call from Thumb could call into Arm state and return without switching.

To mitigate that, this patch amends POP_PC and adds
POP_PC_WITH_REGS, which expand to sensible code depending on
what arch they are compiled for. ARMv5 and later keep direct pop-to-pc
forms. v4T returns through ip and bx.
DeltaFile
+102-0compiler-rt/test/builtins/Unit/arm/aeabi_mem_test.c
+71-0compiler-rt/test/builtins/Unit/arm/aeabi_cmpflags_interwork_test.c
+56-0compiler-rt/test/builtins/Unit/arm/aeabi_ldivmod_test.c
+40-0compiler-rt/test/builtins/Unit/arm/aeabi_fcmp_test.c
+20-4compiler-rt/lib/builtins/assembly.h
+7-7compiler-rt/lib/builtins/arm/aeabi_cfcmp.S
+296-1123 files not shown
+345-3929 files

LLVM/project 7db98d6mlir/lib/Dialect/Affine/IR AffineOps.cpp, mlir/test/Dialect/Affine constant-fold.mlir

[mlir][affine] Avoid folding out-of-bounds constant loads (#224076)

`AffineLoadOp::fold` could crash when folding a constant load with
out-of-bounds indices, including loads from zero-sized constant memrefs.

Check `ElementsAttr::isValidIndex` before indexing the constant
attribute and skip folding when the access is invalid.

Adds a regression test for `memref<0xi8>`.

Fixes #223949

Co-authored-by: Purnima Shrivastava <purnimashrivastava05@.com>
DeltaFile
+12-0mlir/test/Dialect/Affine/constant-fold.mlir
+4-1mlir/lib/Dialect/Affine/IR/AffineOps.cpp
+16-12 files

LLVM/project 9310ac7clang/lib/CIR/CodeGen CIRGenRecordLayoutBuilder.cpp, clang/test/CIR/CodeGen bitfield-unaligned-expensive-access.c

[CIR] Support bitfields when unaligned access is expensive (#223748)

This basically ports OGCG codepath to enable bitfields on AMDGPU.

Assisted by claude in test checks generation.
DeltaFile
+260-0clang/test/CIR/CodeGen/bitfield-unaligned-expensive-access.c
+24-3clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
+284-32 files

LLVM/project efb4638libc/src/stdlib CMakeLists.txt mkostemp.h, libc/src/stdlib/linux CMakeLists.txt mkostemp.cpp

[libc] Implement mkostemp (#224112)

Added the POSIX mkostemp entrypoint for Linux targets (aarch64, riscv,
x86_64) following the shared mktemp_core helper pattern from commit
1b48a14a3608.

Validated open flags against the supported POSIX Issue 8 set (O_APPEND,
O_CLOEXEC, O_DSYNC, O_SYNC) before invoking internal::mktemp_core.

Added unit tests in mkostemp_test.cpp covering flag combinations, append
semantics, template modification, and error conditions.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+337-0libc/test/src/stdlib/mkostemp_test.cpp
+48-0libc/src/stdlib/linux/mkostemp.cpp
+33-0libc/test/src/stdlib/CMakeLists.txt
+25-0libc/src/stdlib/mkostemp.h
+18-0libc/src/stdlib/linux/CMakeLists.txt
+7-0libc/src/stdlib/CMakeLists.txt
+468-04 files not shown
+478-010 files

LLVM/project bdb0f57llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AArch64 lowmaskedlanes.ll

[DAG] Optimize masked store of constant lane mask to standard store (#223665)

A masked store with a constant mask enabling the first n lanes can be
lowered to a standard store of size n.

For example a masked store with masks `<1, 1, 0, 0>` or a scalable store
with mask `llvm.get.active.lane.mask.v4i1.i32(i32 0, i32 2)`
DeltaFile
+68-9llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+11-36llvm/test/CodeGen/AArch64/lowmaskedlanes.ll
+15-12llvm/test/CodeGen/Hexagon/autohvx/vector-align-basic.ll
+2-10llvm/test/CodeGen/X86/apx/kmov-postrapseudos.ll
+2-4llvm/test/CodeGen/X86/pr179489.ll
+0-2llvm/test/CodeGen/X86/pr46532.ll
+98-736 files

LLVM/project f557f80clang/lib/CIR/CodeGen CIRGenAtomic.cpp, clang/test/CIR/CodeGenHIP atomic-classify.hip

[CIR][AMDGPU][OpenCL] Classify __hip_atomic_*/__opencl_atomic_* operations (#220856)

load, store, exchange, compare_exchange_strong/weak, and every fetch op
were missing from the operand-classification switches, so they fell to
the default and reported an unimplemented atomic. They take the same
operands as their __c11_atomic_*/__atomic_* counterparts, so they belong
with them.

This is the ground work for implementing more AMDGPU atomics.

---------

Signed-off-by: Steffen Holst Larsen <sholstla at amd.com>
DeltaFile
+207-0clang/test/CIR/CodeGenHIP/atomic-classify.hip
+50-39clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
+257-392 files

LLVM/project 511e3cbclang-tools-extra/clangd Hover.cpp, clang-tools-extra/clangd/unittests HoverTests.cpp

[clang][clangd] Resolve decltype when printing types for display (#223950)

`decltype(x)` is rarely what a reader wants to see in a display context:
a code completion offering `set_x(decltype(x) val)` conveys much less
than `set_x(int val)`.

clangd already worked around this for hover, by stripping decltypes off
the type before printing it, with a FIXME noting that this belongs in a
printing policy and that it does not handle composite types.
`HoverTests.cpp` carries a matching FIXME on one of the cases it misses.
Add such a policy flag, honour it in `TypePrinter`, and set it both for
code completion and for the types clangd displays on hover.

Applying it in the printer rather than at the call site also covers the
cases the workaround could not reach:

```c++
const decltype(a) b;                 // was `int`, now `const int`
void f(decltype(lamb) &bar);         // was `decltype(lamb) &`, now `(lambda) &`

    [16 lines not shown]
DeltaFile
+11-6clang-tools-extra/clangd/Hover.cpp
+10-2clang/include/clang/AST/PrettyPrinter.h
+12-0clang-tools-extra/docs/ReleaseNotes.md
+3-6clang-tools-extra/clangd/unittests/HoverTests.cpp
+8-1clang/lib/AST/TypePrinter.cpp
+5-0clang/docs/ReleaseNotes.md
+49-151 files not shown
+50-157 files

LLVM/project 33c1570llvm/include/llvm/IR Instruction.h, llvm/lib/IR Verifier.cpp Core.cpp

[IR] Make Instruction::DebugMarker private behind getDbgMarker(). NFC (#224190)

Make it private and add getDbgMarker(); only BasicBlock and DbgMarker,
which maintain the marker links, write it. This enables experiments to
change the data representation.

Aided by Opus 5
DeltaFile
+38-37llvm/unittests/IR/DebugInfoTest.cpp
+37-37llvm/unittests/IR/BasicBlockDbgInfoTest.cpp
+17-18llvm/lib/IR/BasicBlock.cpp
+8-8llvm/lib/IR/Core.cpp
+5-3llvm/include/llvm/IR/Instruction.h
+3-3llvm/lib/IR/Verifier.cpp
+108-1063 files not shown
+113-1109 files

LLVM/project c8e8ad2llvm/lib/Transforms/InstCombine InstCombineMulDivRem.cpp, llvm/test/Transforms/InstCombine div.ll

Update for comments
DeltaFile
+11-7llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
+4-4llvm/test/Transforms/InstCombine/div.ll
+15-112 files