LLVM/project c6fc142llvm/lib/Target/AArch64 AArch64SVEInstrInfo.td, llvm/test/CodeGen/AArch64 sve-partial-reduce-wide-add.ll sve-hadd.ll

[LLVM][CodeGen][SVE] Add isel patterns for add/sub where the second operand is promoted. (#212771)
DeltaFile
+75-0llvm/test/CodeGen/AArch64/sve2-wide-ops.ll
+32-16llvm/test/CodeGen/AArch64/sve-hadd.ll
+35-0llvm/test/CodeGen/AArch64/sve-partial-reduce-wide-add.ll
+28-0llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
+170-164 files

LLVM/project 21c30bcclang/include/clang/Basic AttrDocs.td, clang/lib/CodeGen CGBuiltin.cpp

[Clang][AMDGPU] Add amdgpu_av("none") attribute for atomic expressions

Add a statement attribute that suppresses MakeAvailable/MakeVisible
cache operations on AMDGPU atomic instructions while preserving memory
ordering (waits).

The attribute takes a string argument specifying the mode. Currently "none" is
the only supported mode. The resulting atomic or fence instruction carries !mmra
!{!"amdgcn-av", !"none"} metadata.

Assisted-By: Claude Opus 4.6
DeltaFile
+130-0clang/test/CodeGen/AMDGPU/amdgcn-av-none-attr.cpp
+72-0clang/test/CodeGen/AMDGPU/amdgcn-av-none-attr-c-atomic.c
+60-0clang/lib/Sema/SemaStmtAttr.cpp
+27-26clang/lib/CodeGen/CGBuiltin.cpp
+43-0clang/test/CodeGen/AMDGPU/amdgcn-av-non-atomic.cpp
+26-0clang/include/clang/Basic/AttrDocs.td
+358-269 files not shown
+442-2715 files

LLVM/project 59691a1llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Transforms/InstCombine/AArch64 sve-intrinsic-opts-cmpne.ll sve-intrinsic-simplify-cmp.ll

[LLVM][InstCombine] Add simplification of SVE compare intrinsics. (#211249)

Extends SVEIntrinsicInfo to accept LLVM IR compare information, which is
then used to call simplifyCmpInst on the data operands of SVE compare
intrinsic calls.
DeltaFile
+329-0llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-simplify-cmp.ll
+154-23llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+1-2llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-opts-cmpne.ll
+484-253 files

LLVM/project 18a4975llvm/lib/Target/AArch64 AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 neon-scalar-vcvtfp2fx.ll

[AArch64][SelectionDAG] Avoid cross-bank copy for NEON vcvtfp2fx result (#210275)

- Add SelectionDAG-only patterns for NEON vcvtfp2fx so integer result
select GPR instead of FPR, avoiding the need for cross-bank copies.
- Bitcast uses still select the FP/SIMD-register forms where available.
- Add testing for GPR-resulting and FPR-resulting patterns.
- Add missing tests in fp16_intrinsic_scalar_2op.ll:
test_vcvth_n_u64_f16_1 and test_vcvth_n_u64_f16_16.

A follow-up patch will also include the fix for GlobalIsel.
DeltaFile
+78-0llvm/test/CodeGen/AArch64/neon-scalar-vcvtfp2fx.ll
+42-35llvm/lib/Target/AArch64/AArch64InstrInfo.td
+120-352 files

LLVM/project 15b5e5cclang/lib/CodeGen CodeGenModule.cpp, clang/test/CodeGen arm-float-abi-flag.c

clang: Emit "float-abi" module flag

Emit the new module flag if it differs from the triple's
default.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+32-0clang/test/CodeGen/arm-float-abi-flag.c
+15-0clang/lib/CodeGen/CodeGenModule.cpp
+47-02 files

LLVM/project ba37179llvm/include/llvm/ExecutionEngine/Orc/RTBridge Calls.h, llvm/include/llvm/ExecutionEngine/Orc/RTBridge/SPS Calls.h

[ORC] Add rt::sps::MainCaller for running main-like functions. (#212948)

rt::MainCaller is a controller-side interface for running functions with
a main-like signature (int(int argc, char *argv[])) in the executor.
rt::sps::MainCaller is rt::MainCaller's first implementation, which
invokes main functions using on ORC runtime's orc_rt_ci_sps_call_main
entrypoint (using Simple Packed Serialization for argument/return
encoding / decoding).

These utilities live under the ExecutionEngine/Orc/RTBridge directory,
which is intended to hold controller-side utilities for invoking ORC
runtime systems. Subdirectories (e.g. SPS) hold implementations for
specific serialization schemes.

Adds SPSCallersTest with coverage for direct construction, the
synchronous and asynchronous call operators, use through the
rt::MainCaller interface, and the Create / bootstrap-JITDylib lookup
path.
DeltaFile
+144-0llvm/unittests/ExecutionEngine/Orc/SPSCallersTest.cpp
+72-0llvm/include/llvm/ExecutionEngine/Orc/RTBridge/SPS/Calls.h
+68-0llvm/include/llvm/ExecutionEngine/Orc/RTBridge/Calls.h
+4-0llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
+1-0llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
+289-05 files

LLVM/project e477a99llvm/test/CodeGen/AMDGPU amdgcn.bitcast.832bit.ll amdgcn.bitcast.896bit.ll

[AMDGPU] Re-fold masked hi16 pack into v_or_b32_sdwa (#210735)

Follow-up to #206058, which selects the (hi << 16) | (z & 0xffff)
high-half pack to a fused v_lshl_or_b32. When z's high bits are not
known zero this needs an explicit v_and_b32 0xffff, and since
v_lshl_or_b32 has no SDWA form the mask can no longer fold into a single
v_or_b32_sdwa (src1_sel:WORD_0) as it did before -- a small but real
perf hole (~5% on a VALU-bound char4 kernel on gfx942).

Add a SIPeepholeSDWA rewrite of the masked pack back into v_lshlrev_b32
+ v_or_b32_sdwa, erasing the dead v_and. It fires only on the masked
form, so the mask-free #206058 win is preserved, and it never increases
the instruction count.

Assisted-by: Claude Opus
DeltaFile
+2,825-2,887llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+1,005-1,070llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+475-501llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
+360-360llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+336-336llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+312-312llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+5,313-5,46667 files not shown
+9,317-9,53873 files

LLVM/project 07ce5aaflang/lib/Optimizer/CodeGen CodeGen.cpp, flang/test/Fir convert-to-llvm-invalid.fir convert-to-llvm.fir

[flang][CodeGen] Replace fir.select* FIR-to-LLVM patterns with stubs

`fir.select`, `fir.select_case`, `fir.select_rank`, and `fir.select_type`
are lowered to cf.* earlier in the pipeline (`--fir-select-ops-conversion`
and `--fir-polymorphic-op`). Their FIR-to-LLVM conversion patterns are
dead in a correct pipeline. Replace them with a single templated stub
`SelectShouldHaveBeenConvertedStub<OP>` that emits `"'fir.<op>' op should
have already been converted"` and fails legalization, so running
`--fir-to-llvm-ir` standalone on stale IR reports a clear diagnostic
instead of "unable to legalize".

`Fir/convert-to-llvm.fir`'s six select* test blocks are removed (the
lowering no longer runs; CF-level coverage lives in
`Fir/SelectOpsConversion/`). `Fir/convert-to-llvm-invalid.fir` gains a
stub-error test per op. `Fir/Todo/select_case_with_character.fir` is
retargeted to check the equivalent diagnostic now emitted by
`--fir-select-ops-conversion`.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+0-311flang/test/Fir/convert-to-llvm.fir
+19-266flang/lib/Optimizer/CodeGen/CodeGen.cpp
+41-4flang/test/Fir/convert-to-llvm-invalid.fir
+1-1flang/test/Fir/Todo/select_case_with_character.fir
+61-5824 files

FreeBSD/src 185becbcontrib/libarchive/libarchive/test test_read_format_zip_winzip_aes256_large_bzip2.zip.uu test_read_format_zip_winzip_aes256_large_lzma.zip.uu

libarchive: merge from vendor branch

libarchive 3.8.9

ChangeLog:
https://github.com/libarchive/libarchive/compare/v3.8.7...v3.8.9

Obtained from:  libarchive
Vendor commit:  27cbc7827172698143e440801fc0ba39ccb4f1f5
MFC after:      2 weeks
DeltaFile
+23,307-0contrib/libarchive/libarchive/test/test_read_format_rar_newsub_rr_over_1m.rar.uu
+2,919-0contrib/libarchive/libarchive/test/test_read_format_cpio_symlink_trailer.cpio.uu
+2,053-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_zstd.zip.uu
+1,898-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_xz.zip.uu
+1,893-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_lzma.zip.uu
+1,616-0contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes256_large_bzip2.zip.uu
+33,686-0438 files not shown
+58,681-9,875444 files

LLVM/project 379110allvm/lib/Transforms/Vectorize VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize epilog-vectorization-reductions.ll select-cmp-blend-chain.ll

[VPlan] Mark ComputeReductionResult as not reading or writing from memory

Enables some DCE
DeltaFile
+0-4llvm/test/Transforms/LoopVectorize/select-cmp-blend-chain.ll
+0-2llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
+1-0llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+1-63 files

LLVM/project 8212d30llvm/docs AMDGPUUsage.rst AMDGPUMemoryModel.md

[Docs][AMDGPU] availability/visibility in addrspace(3) and other cleanups (#212707)

addrspace(3) on AMDGPU corresponds to LDS, which is a fast memory directly
accessed by all threads in a workgroup (there is no intervening cache). Thus,
any accesses to this addrspace have built-in availability and visibility at
"workgroup" scope.

Other cleanups:
- Update the intrinsic names to match the implementation.
- Explain store-available and load-visible.
- Rename to "make-available" and "make-visible" for consistent spelling.
DeltaFile
+92-53llvm/docs/AMDGPUMemoryModel.md
+2-0llvm/docs/AMDGPUUsage.rst
+94-532 files

LLVM/project 5079f20llvm/lib/Target/ARM ARMAsmPrinter.cpp ARMTargetMachine.cpp, llvm/test/CodeGen/ARM float-abi-module-flag.ll

ARM: Read float ABI from the "float-abi" module flag

Use the value from the module flag if present, otherwise
fall back on the legacy TargetOptions field until that is
removed.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+43-0llvm/test/CodeGen/ARM/float-abi-module-flag.ll
+10-1llvm/lib/Target/ARM/ARMTargetMachine.cpp
+6-1llvm/lib/Target/ARM/ARMAsmPrinter.cpp
+59-23 files

LLVM/project f58f088flang/lib/Optimizer/CodeGen CodeGen.cpp, flang/test/Fir convert-to-llvm-invalid.fir convert-to-llvm.fir

[flang][CodeGen] Replace fir.select* FIR-to-LLVM patterns with stubs

`fir.select`, `fir.select_case`, `fir.select_rank`, and `fir.select_type`
are lowered to cf.* earlier in the pipeline (`--fir-select-ops-conversion`
and `--fir-polymorphic-op`). Their FIR-to-LLVM conversion patterns are
dead in a correct pipeline. Replace them with a single templated stub
`SelectShouldHaveBeenConvertedStub<OP>` that emits `"'fir.<op>' op should
have already been converted"` and fails legalization, so running
`--fir-to-llvm-ir` standalone on stale IR reports a clear diagnostic
instead of "unable to legalize".

`Fir/convert-to-llvm.fir`'s six select* test blocks are removed (the
lowering no longer runs; CF-level coverage lives in
`Fir/SelectOpsConversion/`). `Fir/convert-to-llvm-invalid.fir` gains a
stub-error test per op. `Fir/Todo/select_case_with_character.fir` is
retargeted to check the equivalent diagnostic now emitted by
`--fir-select-ops-conversion`.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+0-311flang/test/Fir/convert-to-llvm.fir
+19-259flang/lib/Optimizer/CodeGen/CodeGen.cpp
+41-4flang/test/Fir/convert-to-llvm-invalid.fir
+1-1flang/test/Fir/Todo/select_case_with_character.fir
+61-5754 files

LLVM/project 8775521flang/include/flang/Optimizer/Transforms Passes.td, flang/lib/Optimizer/Transforms SelectOpsConversion.cpp

[flang][Transforms] Add SelectOpsConversion pass

Introduces `--fir-select-ops-conversion`, which lowers `fir.select`,
`fir.select_case`, and `fir.select_rank` to the control-flow dialect
(`cf.switch` / `cf.cond_br` / `cf.br`) while preserving the CFG shape.
`fir.select_case` becomes an if-then-else ladder of `arith.cmpi` +
`cf.cond_br`; Fortran `UNSIGNED` selectors use `ule`. Signed / unsigned
FIR integer values are normalized to signless via `fir.convert` first.

`fir.select_type` is not handled here — it is already lowered by
`--fir-polymorphic-op` (`PolymorphicOpConversion`).

The pass runs in the default FIR optimizer pipeline right after
`PolymorphicOpConversion`. Pipeline-check tests are updated to expect
`SelectOpsConversion` in the sequence; `Fir/select.fir` and
`Lower/volatile3.f90` are relaxed to accept the newly-canonicalized form
of the lowered output.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+284-0flang/lib/Optimizer/Transforms/SelectOpsConversion.cpp
+192-0flang/test/Fir/SelectOpsConversion/select_case.fir
+113-0flang/test/Fir/SelectOpsConversion/select.fir
+46-0flang/test/Fir/SelectOpsConversion/select_rank.fir
+18-2flang/include/flang/Optimizer/Transforms/Passes.td
+12-6flang/test/Lower/volatile3.f90
+665-87 files not shown
+683-1413 files

LLVM/project 2f7a0dalldb/test/API/functionalities/process_save_core_minidump_size_of_image TestMinidumpSizeOfImage.py

[lldb][test] Fix TestMinidumpSizeOfImage.py with glibc >= 2.41 (#212972)

Test added by #188363.

In glibc 2.41:
> * dlopen and dlmopen no longer make the stack executable if a shared
> library requires it, either implicitly because of a missing GNU_STACK
> ELF header (and default ABI permission having the executable bit set)
>   or explicitly because of the executable bit in GNU_STACK, and the
>   stack is not already executable.  Instead, loading such objects will
>   fail.

https://lists.gnu.org/archive/html/info-gnu/2025-01/msg00014.html

The test program used for this test provides all the PHDRS itself, but
did not include a PT_GNU_STACK entry.

So the loader would assume it wanted exectuable stack. The main program
was not using an executable stack and so the loader refused to change

    [8 lines not shown]
DeltaFile
+1-1lldb/test/API/functionalities/process_save_core_minidump_size_of_image/TestMinidumpSizeOfImage.py
+1-11 files

LLVM/project 840558cllvm/lib/Transforms/Vectorize LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize/X86 replicating-load-store-costs.ll

[LV] Only use legacy scalarization costs with replicate regions. (#212738)

The scalarization costs in InstsToScalarize are based on the assumption
that the instructions are scalarized and predicated. There are a number
of VPlan transformations that can simplify/remove replicate regions. If
there are no replicate regions in a plan, nothing is predicated and
scalarized, so the costs in InstsToScalarize will be inaccurate.

Skip the fallback in those cases, using the more accurate VPlan-based
cost info.

PR: https://github.com/llvm/llvm-project/pull/212738
DeltaFile
+19-14llvm/test/Transforms/LoopVectorize/X86/replicating-load-store-costs.ll
+3-4llvm/test/Transforms/LoopVectorize/X86/CostModel/store-scalarization-cost.ll
+5-0llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+2-2llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-interleaved-store-i16.ll
+29-204 files

LLVM/project 189c3f4flang/include/flang/Evaluate integer.h complex.h, flang/lib/Evaluate character.h initial-image.cpp

[Flang] Use abstraction for binary scalar data
DeltaFile
+71-0flang/include/flang/Evaluate/character-value.h
+27-19flang/include/flang/Evaluate/initial-image.h
+17-21flang/lib/Evaluate/initial-image.cpp
+29-0flang/lib/Evaluate/character.h
+27-0flang/include/flang/Evaluate/integer.h
+27-0flang/include/flang/Evaluate/complex.h
+198-403 files not shown
+238-519 files

LLVM/project 7b11ce4flang/lib/Optimizer/CodeGen CodeGen.cpp, flang/test/Fir convert-to-llvm-invalid.fir convert-to-llvm.fir

[flang][CodeGen] Replace fir.select* FIR-to-LLVM patterns with stubs

`fir.select`, `fir.select_case`, `fir.select_rank`, and `fir.select_type`
are lowered to cf.* earlier in the pipeline (`--fir-select-ops-conversion`
and `--fir-polymorphic-op`). Their FIR-to-LLVM conversion patterns are
dead in a correct pipeline. Replace them with a single templated stub
`SelectShouldHaveBeenConvertedStub<OP>` that emits `"'fir.<op>' op should
have already been converted"` and fails legalization, so running
`--fir-to-llvm-ir` standalone on stale IR reports a clear diagnostic
instead of "unable to legalize".

`Fir/convert-to-llvm.fir`'s six select* test blocks are removed (the
lowering no longer runs; CF-level coverage lives in
`Fir/SelectOpsConversion/`). `Fir/convert-to-llvm-invalid.fir` gains a
stub-error test per op. `Fir/Todo/select_case_with_character.fir` is
retargeted to check the equivalent diagnostic now emitted by
`--fir-select-ops-conversion`.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+0-311flang/test/Fir/convert-to-llvm.fir
+19-258flang/lib/Optimizer/CodeGen/CodeGen.cpp
+41-4flang/test/Fir/convert-to-llvm-invalid.fir
+1-1flang/test/Fir/Todo/select_case_with_character.fir
+61-5744 files

LLVM/project 679cc01flang/include/flang/Optimizer/Transforms Passes.td, flang/lib/Optimizer/Transforms SelectOpsConversion.cpp

[flang][Transforms] Add SelectOpsConversion pass

Introduces `--fir-select-ops-conversion`, which lowers `fir.select`,
`fir.select_case`, and `fir.select_rank` to the control-flow dialect
(`cf.switch` / `cf.cond_br` / `cf.br`) while preserving the CFG shape.
`fir.select_case` becomes an if-then-else ladder of `arith.cmpi` +
`cf.cond_br`; Fortran `UNSIGNED` selectors use `ule`. Signed / unsigned
FIR integer values are normalized to signless via `fir.convert` first.

`fir.select_type` is not handled here — it is already lowered by
`--fir-polymorphic-op` (`PolymorphicOpConversion`).

The pass runs in the default FIR optimizer pipeline right after
`PolymorphicOpConversion`. Pipeline-check tests are updated to expect
`SelectOpsConversion` in the sequence; `Fir/select.fir` and
`Lower/volatile3.f90` are relaxed to accept the newly-canonicalized form
of the lowered output.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+284-0flang/lib/Optimizer/Transforms/SelectOpsConversion.cpp
+192-0flang/test/Fir/SelectOpsConversion/select_case.fir
+113-0flang/test/Fir/SelectOpsConversion/select.fir
+46-0flang/test/Fir/SelectOpsConversion/select_rank.fir
+18-2flang/include/flang/Optimizer/Transforms/Passes.td
+12-6flang/test/Lower/volatile3.f90
+665-87 files not shown
+683-1413 files

LLVM/project 185a931clang/lib/StaticAnalyzer/Checkers CStringChecker.cpp, clang/test/Analysis string-search-modeling.c

Reapply "[analyzer] Fix false positive in strchr/strrchr with constant args" (#212124)

Relands #210154
DeltaFile
+414-1clang/test/Analysis/string-search-modeling.c
+214-26clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
+628-272 files

LLVM/project fd74a74llvm/lib/Target/CSKY CSKYAsmPrinter.h CSKYAsmPrinter.cpp, llvm/test/CodeGen/CSKY float-abi-module-flag.ll

CSKY: Consume "float-abi" module flag

Start respecting float-abi, and fall back on the TargetOptions
field if not present.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+45-0llvm/test/CodeGen/CSKY/float-abi-module-flag.ll
+5-7llvm/lib/Target/CSKY/CSKYSubtarget.cpp
+8-1llvm/lib/Target/CSKY/CSKYTargetMachine.cpp
+6-1llvm/lib/Target/CSKY/CSKYSubtarget.h
+2-2llvm/lib/Target/CSKY/CSKYAsmPrinter.cpp
+1-1llvm/lib/Target/CSKY/CSKYAsmPrinter.h
+67-126 files

OpenBSD/src UZJBYKmusr.sbin/relayctl relayctl.c

   relayctl: switch to imsg_get_* API

   Use imsg_get_data() with size validation instead of casting imsg->data
   directly and imsg_get_type/len/id/pid() instead of imsg->hdr.* acc

   Structs like rdr/table/host.... carry embedded string buffers like name, label.
   When such a struct crosses a privilege boundary the receiver cannot Structs
   that the string is actually NUL terminated, so force a '\0' in the last byte
   after imsg_get_data(). Not strictly required here because relayd is the sender,
   but a good habit for imsg consumers.

   embedded string buffer hint by claudio@, OK claudio@
VersionDeltaFile
1.66+82-64usr.sbin/relayctl/relayctl.c
+82-641 files

LLVM/project ab7bbbbflang/include/flang/Optimizer/Dialect FIRAttr.h, flang/lib/Lower ConvertVariable.cpp

[flang][AllocationPlacement] prevent promotion of mock result to allocmem (#212825)

Under the new experimental pass that can move automatic arrays to the
heap, "mock" result storage may be promoted to allocmem before
AbstractResult removes them and replace them by a hidden result.

Add a fir.must_be_stack attribute to these mock alloca so they are never
promoted. So that passes dealing with array function results ABI can
expect to find an fir.alloca and remove it.
DeltaFile
+15-2flang/lib/Lower/ConvertVariable.cpp
+15-0flang/test/Integration/allocation-placement-array-result.f90
+6-6flang/test/Lower/HLFIR/custom-intrinsic.f90
+11-0flang/lib/Optimizer/Transforms/AllocationPlacement.cpp
+10-0flang/include/flang/Optimizer/Dialect/FIRAttr.h
+4-4flang/test/Lower/HLFIR/array-ctor-index.f90
+61-124 files not shown
+67-1810 files

LLVM/project 551f3c8llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/TargetParser AMDGPUTargetParser.cpp

AMDGPU: Export the TargetParser feature bitset

Previously this bitset was only used to populate the feature
name string map used by clang. Eventually this will replace
the current bitmask integer. AArch64 already has a similar
interface.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+17-14llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+29-0llvm/unittests/TargetParser/TargetParserTest.cpp
+16-0llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+62-143 files

LLVM/project 30aafd8clang/test/CodeGen link-builtin-bitcode.c, llvm/lib/Target/AMDGPU AMDGPU.td

AMDGPU: Tablegenerate TargetParser feature sets

Traditionally we maintained 2 parallel feature mechanisms,
one in clang (later moved to TargetParser), with largely
mirrored subtarget features defined in the backend. Start
directly taking feature information from the backend and putting
it into TargetParser. This is still in a compromise mid-migration
state. We still have both the legacy "ArchAttr" bitfield integer,
plus a new AMDGPUFeatureBitset field stored in the table, which
isn't yet exported.

For the moment, the new bitset is only used to populate the
feature string name map, which is the big maintainability win.
This also lists an explicit subset of exported features to
avoid churn.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+51-508llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+115-3llvm/utils/TableGen/Basic/AMDGPUTargetDefEmitter.cpp
+43-0llvm/unittests/TargetParser/TargetParserTest.cpp
+39-0llvm/lib/Target/AMDGPU/AMDGPU.td
+3-3clang/test/CodeGen/link-builtin-bitcode.c
+251-5145 files

LLVM/project 51ed0aeflang/lib/Lower/OpenMP ClauseProcessor.cpp, flang/lib/Optimizer/OpenMP LowerWorkdistribute.cpp

[flang][OpenMP] Lower allocate align modifier on parallel

Lower the align modifier on OpenMP allocate clauses for parallel constructs.
Carry per-item alignments through the OpenMP dialect and select
__kmpc_aligned_alloc for aligned private storage while retaining the existing
allocation and cleanup behavior for unaligned items.

Add source, verifier, preservation, LLVM IR, i386 ABI, and overflow coverage.
Keep unsupported construct kinds and device lowering unchanged.

Assisted-by: GitHub Copilot
DeltaFile
+81-49mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+115-10mlir/test/Target/LLVMIR/openmp-allocate-clause.mlir
+52-0mlir/test/Dialect/OpenMP/invalid.mlir
+20-16flang/lib/Optimizer/OpenMP/LowerWorkdistribute.cpp
+19-10flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+25-0flang/test/Semantics/OpenMP/allocate-clause01.f90
+312-8512 files not shown
+383-11018 files

LLVM/project d3ca4e5libcxx/include streambuf, libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.get.area setg.assert.pass.cpp

[libc++][NFC] Rename the streambuf members (#212277)

This refactors `streambuf` to contain a `_GetArea` and a `_PutArea`.
This makes the code significantly easier to read, since the pointers
belonging together are bundled in a struct.
DeltaFile
+41-47libcxx/include/streambuf
+3-3libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.get.area/setg.assert.pass.cpp
+1-1libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/setp.assert.pass.cpp
+45-513 files

LLVM/project 0d78fb5llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize epilog-vectorization-reductions.ll

[VPlan] Make simplifyRecipe more like InstCombine

Most combines in simplifyRecipe RAUW a value, but not all of them erase the old recipe.
Unify them and bring it in line with InstCombine by having it return a VPValue, which simplifyRecipes can then call RAUW with, and automatically erase the old recipe.

Similarly to InstCombine, combines that modify a recipe should return the same recipe.
DeltaFile
+113-149llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+0-11llvm/test/Transforms/LoopVectorize/VPlan/constant-fold.ll
+0-2llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
+113-1623 files

LLVM/project 98cdcbalibcxx/include __locale, libcxx/include/__locale_dir num.h

[libc++] Move numpunct into <__locale_dir/num.h> (#212465)

`numpunct` is part of the `num` family of facets, so it should live in
`num.h`.
DeltaFile
+0-98libcxx/include/__locale
+98-0libcxx/include/__locale_dir/num.h
+8-0libcxx/test/libcxx/transitive_includes/cxx23.csv
+6-0libcxx/test/libcxx/transitive_includes/cxx26.csv
+1-0libcxx/test/std/utilities/format/format.functions/locale-specific_form.pass.cpp
+1-0libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/locale-specific_form.pass.cpp
+114-983 files not shown
+117-989 files

LLVM/project c27b357libcxx/include tuple

[libc++] Remove SFINAE checks in tuple which are always true (#212765)

We have a specialization for `tuple` with no arguments, so checking
`sizeof...(_Tp) >= 1` in the primary template will never be false.
DeltaFile
+5-7libcxx/include/tuple
+5-71 files