LLVM/project 03ca4b5 — llvm/lib/Target/MSP430 MSP430InstrInfo.td

[MSP430] Use INSERT_SUBREG of IMPLICIT_DEF for anyext. NFC (#242305)

SUBREG_TO_REG means that the instruction defining the subregister also
defined the other bits of the register, which is not true in general
for the i8 operand of an anyext. The high byte of an anyext is
undefined,
which is what INSERT_SUBREG into an IMPLICIT_DEF expresses.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>

---

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+1-1llvm/lib/Target/MSP430/MSP430InstrInfo.td
+1-11 files

LLVM/project 4097c7a — llvm/lib/Target/MSP430 MSP430InstrInfo.td, llvm/test/CodeGen/MSP430 zext-i8.ll

[MSP430] Fix zext of i8 values not defined by a byte instruction (#242304)

A byte instruction that writes a register clears the high byte of the
register, so a zext of its result can be selected to SUBREG_TO_REG. The
def8 predicate that checks for this excluded a few nodes that are known
not to be selected to such an instruction, but allowed everything else.
This included select and variable shifts, which are expanded into
control flow with a PHI, so the high byte was not cleared on some paths:

```
  bit #1, r12
  jne .LBB1_2
  mov.b r14, r13
.LBB1_2:
  mov r13, r12 ; high byte of %x is not cleared
```

Change def8 to only allow nodes that are always selected to a single
byte instruction that writes a register.

    [9 lines not shown]
DeltaFile
+22-7llvm/lib/Target/MSP430/MSP430InstrInfo.td
+6-5llvm/test/CodeGen/MSP430/zext-i8.ll
+28-122 files

LLVM/project 4147abd — llvm/test/CodeGen/MSP430 zext-i8.ll

[MSP430] Precommit tests for zext of i8 select and variable shift. NFC (#242303)

These are currently miscompiled: the zext of an i8 value is assumed to
be
free because byte instructions that write a register clear its high
byte, but select and variable shifts are expanded into control flow with
a PHI, so on some paths no byte instruction clears the high byte.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>

---

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+74-0llvm/test/CodeGen/MSP430/zext-i8.ll
+74-01 files

LLVM/project 6a9d123 — llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, mlir/test/Target/LLVMIR omptarget-depend.mlir omptarget-nowait.mlir

[OMPIRBuilder] Omit redundant zero-offset GEP (#242374)
DeltaFile
+6-25llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+2-6mlir/test/Target/LLVMIR/omptarget-nowait.mlir
+2-6mlir/test/Target/LLVMIR/omptarget-nowait-llvm.mlir
+1-2mlir/test/Target/LLVMIR/omptarget-depend.mlir
+11-394 files

LLVM/project d38c5b4 — llvm/lib/Target/AMDGPU SIInstrInfo.cpp, llvm/test/MachineVerifier/AMDGPU verify-scale-offset.mir

[AMDGPU] Lowercase error messages in scale_offset verifier (#241541)
DeltaFile
+2-2llvm/test/MachineVerifier/AMDGPU/verify-scale-offset.mir
+2-2llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+4-42 files

LLVM/project 20df00f — clang/include/clang/Basic DiagnosticGroups.td DiagnosticSemaKinds.td, clang/test/ParserHLSL group_shared.hlsl group_shared_202x.hlsl

[HLSL][202x][0010] Update auto keyword to be an HLSL 202x extension instead of 202y (#242101)

Create a 202x diag group. Update the HLSL auto warning to be in the 202x
diag group instead of 202y. Emit the warning if the HLSL version is
below 202x instead of 202y. Add a new test which checks for the warning,
and update existing tests.
Closes #240492
DeltaFile
+23-0clang/test/SemaHLSL/Language/Auto-warning.hlsl
+0-7clang/test/SemaHLSL/group_shared_202x.hlsl
+0-5clang/test/ParserHLSL/group_shared_202x.hlsl
+2-2clang/include/clang/Basic/DiagnosticSemaKinds.td
+2-1clang/include/clang/Basic/DiagnosticGroups.td
+0-2clang/test/ParserHLSL/group_shared.hlsl
+27-173 files not shown
+28-209 files

LLVM/project fa5211e — llvm/lib/Transforms/Instrumentation DataFlowSanitizer.cpp, llvm/test/Instrumentation/DataFlowSanitizer abilist_aggregate.ll abilist.ll

[DFSan] Omit redundant zero-offset GEP (#242367)
DeltaFile
+2-6llvm/test/Instrumentation/DataFlowSanitizer/origin_abilist.ll
+2-4llvm/test/Instrumentation/DataFlowSanitizer/abilist.ll
+2-2llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
+1-2llvm/test/Instrumentation/DataFlowSanitizer/abilist_aggregate.ll
+7-144 files

LLVM/project f8bd16b — clang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp, clang/test/CIR/Transforms/abi-lowering amdgpu-union.cir

add tests and fix store align for packed
DeltaFile
+173-1clang/test/CIR/Transforms/abi-lowering/amdgpu-union.cir
+5-0clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+178-12 files

LLVM/project a537687 — llvm/include/llvm/CodeGen BasicTTIImpl.h, llvm/test/Analysis/CostModel/AMDGPU frexp.ll

[BasicTTIImpl] Add cost entries for powi and frexp (#242360)
DeltaFile
+96-96llvm/test/Analysis/CostModel/AMDGPU/frexp.ll
+40-40llvm/test/Analysis/CostModel/X86/powi.ll
+6-0llvm/include/llvm/CodeGen/BasicTTIImpl.h
+142-1363 files

LLVM/project 48248dc — flang/test/Fir/OpenMP bounds-generation-for-char-arrays.f90, mlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp

[Flang][OpenMP] Fix non-contiguous and empty target updates (#240503)

Fix compiler lowering and runtime handling of non-contiguous `target
update` operations so multidimensional Fortran sections transfer only
the selected elements.

Preserve physical source strides and scalar-subscript shape, normalize
character bounds and strides, and retain descriptor storage for deferred
`nowait` updates. In libomptarget, merge only consecutive innermost
contiguous dimensions, skip empty updates before presence checks and
transfers, and use 64-bit traversal counts.

Add Flang/MLIR and C/C++/Fortran offload regression coverage for both
transfer directions, multidimensional gaps, empty and `present` updates,
wide characters, and `nowait`.

Includes https://github.com/llvm/llvm-project/pull/235006.

Fixes:

    [3 lines not shown]
DeltaFile
+237-0mlir/test/Target/LLVMIR/omptarget-update-non-contiguous.mlir
+138-0offload/test/offloading/fortran/target-update-noncontiguous.f90
+119-13mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+120-7flang/test/Fir/OpenMP/bounds-generation-for-char-arrays.f90
+104-0offload/test/offloading/strided_update/strided_update_multidim_gap.c
+97-0mlir/test/Target/LLVMIR/omptarget-update-nowait-non-contiguous.mlir
+815-2017 files not shown
+1,457-5523 files

LLVM/project 7791462 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 merge-input-operands.ll freeze-repeated-lanes.ll

[SLP]Pack repeated freezes before the vector freeze

The lanes of a vector freeze are frozen independently, so a freeze
repeated in several lanes may get different values. Do not keep the
original lanes with duplicates for freeze nodes, pack the unique values
and reshuffle them.

Pull-request: https://github.com/llvm/llvm-project/pull/242377
DeltaFile
+8-8llvm/test/Transforms/SLPVectorizer/X86/freeze-repeated-lanes.ll
+6-6llvm/test/Transforms/SLPVectorizer/X86/merge-input-operands.ll
+5-2llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+19-163 files

LLVM/project 7daae79 — libc/cmake/caches baremetal_common.cmake

[libc] Enable -Werror in baremetal_common.cmake cache file (#241983)

After recent fixes, all the warnings are gone in baremetal builds.

Enable -Werror again so that we can catch warnings as they come.
DeltaFile
+1-2libc/cmake/caches/baremetal_common.cmake
+1-21 files

LLVM/project 4b39a47 — libc/test/src/math/smoke expf16_test.cpp exp2m1f16_test.cpp

[libc] Fix -Wunused-variable warnings (#241982)

These variables may end up unused depending on the rounding mode in
place.
DeltaFile
+1-1libc/test/src/math/smoke/expf16_test.cpp
+1-1libc/test/src/math/smoke/exp2m1f16_test.cpp
+1-1libc/test/src/math/smoke/exp2f16_test.cpp
+1-1libc/test/src/math/smoke/exp10m1f16_test.cpp
+1-1libc/test/src/math/smoke/exp10f16_test.cpp
+1-1libc/test/src/math/smoke/coshf16_test.cpp
+6-62 files not shown
+8-88 files

LLVM/project 5e235f1 — llvm/lib/Target/AMDGPU SIInstrInfo.cpp, llvm/test/MachineVerifier/AMDGPU verify-scale-offset.mir

[AMDGPU] Lowercase error messages in scale_offset verifier
DeltaFile
+2-2llvm/test/MachineVerifier/AMDGPU/verify-scale-offset.mir
+2-2llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+4-42 files

LLVM/project ef8c6a1 — llvm/lib/Analysis BasicAliasAnalysis.cpp, llvm/test/Analysis/BasicAA linear-expr-scale-overflow.ll

[BasicAA] Drop invalid nsw flags from linear expressions (#241379)

BasicAA can retain `IsNSW` when folding a linear expression even though
the resulting `V * Scale` can overflow. This happens when combining
scales overflows, when `shl nsw` shifts into the sign bit, or when a
shift distributes over a nonzero offset. The resulting alias checks can
incorrectly return `NoAlias` for equal pointers.

Check the combined scale for signed overflow and route shifts through
`LinearExpression::mul()`. Preserve `nsw` for a shift only when its
multiplier is representable as a positive signed value.

Fixes #241376.

Assisted-by: Claude Code
Assisted-by: OpenAI Codex
DeltaFile
+80-0llvm/test/Analysis/BasicAA/linear-expr-scale-overflow.ll
+20-7llvm/lib/Analysis/BasicAliasAnalysis.cpp
+100-72 files

LLVM/project 4ae40ff — llvm/lib/Target/AArch64 AArch64MacroFusion.cpp

[AArch64] Rename WAW helper to denote exact match(NFC) (#242232)

Rename WAW helper to clarify it checks for exact register matches and
distinguish it from a potential future `mayDefOverlapReg()`
DeltaFile
+8-8llvm/lib/Target/AArch64/AArch64MacroFusion.cpp
+8-81 files

LLVM/project 2f177ed — libc/hdr/types char8_t.h, libc/include/llvm-libc-macros containerof-macro.h

[libc] Fix GCC warnings in headers and internal support (#241535)

Building public headers and low-level support libraries with GCC
triggers -Wpedantic on statement expressions and -Wcast-qual on pointer
casts in __containerof, -Wc++20-compat on pre-C++20 char8_t typedefs,
narrowing and uninitialised-variable diagnostics in integer_to_string.h,
and -Wuninitialized in load_unaligned when GCC lowers byte stores into a
GNU vector type via BIT_INSERT_EXPR.

Wrap __containerof in __extension__ while preserving const volatile
qualifiers and casting through __UINTPTR_TYPE__, and drop the obsolete
statement-expression warning suppression from sys_queue_test. Suppress
-Wc++20-compat on GCC 10+ around fallback char8_t typedefs in both
public and proxy headers. Widen acc_remainder to at least size_t and
initialise carry_bit in extract_decimal_digit, and value-initialise the
destination object in load_unaligned alongside LIBC_ALWAYS_INLINE and
trivially-copyable static_asserts on load_unaligned and store_unaligned.



    [2 lines not shown]
DeltaFile
+13-4libc/src/string/memory_utils/utils.h
+12-3libc/hdr/types/char8_t.h
+10-4libc/include/llvm-libc-macros/containerof-macro.h
+9-0libc/include/llvm-libc-types/char8_t.h
+6-2libc/src/__support/integer_to_string.h
+0-3libc/test/include/CMakeLists.txt
+50-166 files

LLVM/project 48d15d9 — clang/include/clang/DependencyScanning DependencyScanningService.h InProcessModuleCache.h, clang/lib/DependencyScanning InProcessModuleCache.cpp

[clang][deps] Flush the in-process module cache on a background thread

The in-process module cache keeps every PCM built during the lifetime of the
dependency scanning service in memory, and flushes them to disk at the end.
Long-running builds that scan many variants of modules (e.g. with different
search paths or macro definitions) accumulate tens of gigabytes worth of
scanning PCMs this way. Moreover, the final flush is single-threaded and
happens after all scanning work is done.

This PR makes the service start a background thread that flushes each PCM to
disk as soon as it's written, and then replaces its in-memory buffer with the
memory-mapped file. Readers of the in-memory buffer keep it alive on their own
(shared ownership), and importers of the freshly built PCM never wait for the
IO, since the file gets written without holding the entry lock. Reads and
timestamps are still served from memory. The final flush is kept, but only
writes PCMs the background thread failed to write. With
`-no-flush-module-cache`, nothing changes.

I tried several approaches, all measured on a scan of the macOS SDK where

    [52 lines not shown]
DeltaFile
+96-7clang/lib/DependencyScanning/InProcessModuleCache.cpp
+53-0clang/unittests/DependencyScanning/InProcessModuleCacheTest.cpp
+50-0clang/test/ClangScanDeps/module-cache-flush-in-background.c
+38-1clang/include/clang/DependencyScanning/InProcessModuleCache.h
+7-2clang/include/clang/DependencyScanning/DependencyScanningService.h
+2-1clang/test/ClangScanDeps/logging-simple.c
+246-112 files not shown
+249-138 files

LLVM/project 6bab7db — clang/lib/Frontend CompilerInstance.cpp

[clang] Extract built PCMs from their container without copying

When a module is built implicitly, the importing instance extracts the AST
file from the module cache's view of the written PCM and stores a copy of it
in its `InMemoryModuleCache`. That's an extra heap copy of every built PCM,
kept alive for the lifetime of the translation unit.

This PR resolves the FIXME by storing a buffer that keeps the written PCM
alive and exposes just the AST file: the `__clangast` section for PCMs
wrapped in an object file (`-gmodules`), or the whole PCM otherwise. The
in-process module cache now shares the memory of its entry with the
importing instance, and the cross-process module cache gives it the
memory-mapped file.

For a regular implicit modules build importing Foundation and friends, this
reduces peak memory footprint from ~150 MB to ~100 MB. For a TU importing
Foundation with `-gmodules` (31 PCMs), the copy increased the peak memory
footprint by 12-17%.
DeltaFile
+27-7clang/lib/Frontend/CompilerInstance.cpp
+27-71 files

LLVM/project a2ce9f6 — clang/include/clang/Serialization ModuleCache.h, clang/lib/DependencyScanning InProcessModuleCache.cpp

[clang] Use the module cache's view of built PCMs

When building a module implicitly, the compiler hands the PCM contents to
`ModuleCache::write()` and then extracts the AST file from the PCH container
of its own buffer, storing a copy of it in the `InMemoryModuleCache` of the
importing instance.

This PR makes `ModuleCache::write()` return a buffer with the written
contents, which the importing instance now extracts the AST file from. The
in-process module cache returns a buffer sharing ownership of its entry, the
cross-process module cache returns the written file, read back from the same
file descriptor it was written through (memory-mapped for all but small
files). This is a prerequisite for storing the module cache's view in the
`InMemoryModuleCache` without copying it.

To support this, `writeImpl()` can now read the written file back from the
same file descriptor, guaranteeing we map exactly the contents we wrote and
making it immune to concurrent replacement of the file.


    [4 lines not shown]
DeltaFile
+41-1clang/unittests/DependencyScanning/InProcessModuleCacheTest.cpp
+19-6clang/lib/Serialization/ModuleCache.cpp
+16-5clang/include/clang/Serialization/ModuleCache.h
+9-8clang/lib/DependencyScanning/InProcessModuleCache.cpp
+6-4clang/lib/Frontend/CompilerInstance.cpp
+3-1clang/unittests/Serialization/ModuleCacheTest.cpp
+94-256 files

LLVM/project ea67679 — clang/include/clang/DependencyScanning InProcessModuleCache.h, clang/lib/DependencyScanning InProcessModuleCache.cpp

[clang][deps] Share ownership of buffers in the in-process module cache

Previously, `InProcessModuleCache::read()` returned non-owning references
to buffers stored in the cache entry. Since other threads may be reading
an entry while it gets written, the entry had to keep the buffer it read
from disk alive alongside the written buffer for the lifetime of the
service. This happens whenever a PCM read from disk turns out to be out of
date and gets rebuilt.

This PR stores a single buffer with shared ownership in the entry and
makes `read()` return a buffer that keeps the contents alive. Writing to
the entry now simply replaces the buffer, and the previous one gets released
once the last reader is done with it. This is a prerequisite for evicting
buffers from memory.

Since PCMs read from disk are memory-mapped, the stale buffers didn't add to
the memory footprint, but kept the old files mapped. In an incremental scan
that rebuilds 1010 invalidated PCMs (199 MB), no Clang instance referenced
any of them by the time they got rewritten, so all of them got unmapped right

    [2 lines not shown]
DeltaFile
+31-15clang/lib/DependencyScanning/InProcessModuleCache.cpp
+4-4clang/include/clang/DependencyScanning/InProcessModuleCache.h
+35-192 files

LLVM/project 74c826b — llvm/test/Transforms/SLPVectorizer/X86 freeze-repeated-lanes.ll

[SLP][NFC]Add tests with duplicated freeezes, NFC

Pull-request: https://github.com/llvm/llvm-project/pull/242371
DeltaFile
+106-0llvm/test/Transforms/SLPVectorizer/X86/freeze-repeated-lanes.ll
+106-01 files

LLVM/project eb291dc — clang/test/CodeGenCXX cfi-vcall-type-checked-load.cpp, libc/test/src/math hypotf_hard_to_round.h

Merge remote-tracking branch 'origin/main' into users/mrsidims/fix-slp-gather-vectorized-lane-cost
DeltaFile
+4,227-18llvm/test/CodeGen/AMDGPU/combine-carry-into-uadde-usube.ll
+1,216-1,216libc/test/src/math/hypotf_hard_to_round.h
+736-811llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll
+1,409-136llvm/test/CodeGen/AMDGPU/GlobalISel/postlegalizer-combiner-carry-into-uadde-usube.mir
+634-682llvm/test/CodeGen/AMDGPU/GlobalISel/srem.i64.ll
+1,113-0clang/test/CodeGenCXX/cfi-vcall-type-checked-load.cpp
+9,335-2,8631,396 files not shown
+54,577-21,0391,402 files

LLVM/project 397d83c — llvm/lib/Transforms/IPO WholeProgramDevirt.cpp, llvm/test/Transforms/WholeProgramDevirt speculative-devirt-profile.ll

[WholeProgramDevirt] Use indirect-call profile counts for fallback branches (#237377)

Fallback and speculative devirtualization always treated the version
check as likely, even when the call already had a value profile showing
how often the direct target was hit. When the profile names that target,
split the total count into the count for the target and the count for
everything else, and use those as the branch weights. Keep the likely
weights when the call has no value profile, when the total count is
zero, or when the profile does not name this target.
DeltaFile
+65-0llvm/test/Transforms/WholeProgramDevirt/speculative-devirt-profile.ll
+29-2llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
+94-22 files

LLVM/project 5858f6c — libc/include/llvm-libc-types float128.h, libc/src/__support/printf_core printf_config.h CMakeLists.txt

[libc] Disable using __float128 on x86_64 Clang prior to 18.1. (#241999)

This fixes the root cause of the post-merge failures for #235008
implementing `swprintf`.

Prior to Clang 18.1, there is an x86_64 bug in `va_arg` for `__float128`
due to the type not being handled in `X86_64ABIInfo::classify` (fixed in
https://github.com/llvm/llvm-project/pull/75156).
https://godbolt.org/z/cWEej49jb compares Clang 17 and 18.1.

This should have been caught earlier by the same LLVM BuildBot running
sprintf_test, but `src/__support/printf_core/printf_config.h` which
configures `LIBC_INTERNAL_PRINTF_CONVERT_FLOAT128` was missing an
include of `include/llvm-libc-types/float128.h`. This meant the `%Q`
conversion cases in sprintf_test were getting compiled out, and it was
by luck that the header include order for swprintf_test triggered the
issue.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+6-0libc/include/llvm-libc-types/float128.h
+2-2libc/test/src/stdio/sprintf_test.cpp
+2-0libc/src/__support/printf_core/printf_config.h
+2-0libc/src/__support/printf_core/CMakeLists.txt
+12-24 files

LLVM/project 14bc57a — libcxx/lib/abi arm64-apple-darwin.libcxxabi.v1.stable.noexceptions.nonew.abilist, llvm/lib/Target/Hexagon HexagonDepInstrInfo.td

Merge remote-tracking branch 'origin/main' into users/mrsidims/fix-slp-gather-vectorized-lane-cost
DeltaFile
+5,423-1,585llvm/test/CodeGen/ARM/GlobalISel/arm-legalize-fp.mir
+2,968-0llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/is_fpclass.ll
+1,461-1,437llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+2,631-0libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.noexceptions.nonew.abilist
+1,311-1,292llvm/test/Transforms/Util/DeclareRuntimeLibcalls/windows.ll
+2,436-20llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td
+16,230-4,3347,586 files not shown
+203,930-91,0657,592 files

LLVM/project f92f05e — llvm/examples/Ciao Ciao.cpp, llvm/unittests/CodeGen/CGPluginTest CMakeLists.txt PluginTest.cpp

[Plugins] Remove CGTestPlugin and add it back as Ciao in examples (#242038)

CGTestPlugin used to test the insertion of passes into the legacy
codegen pipeline via RegisterTargetPassConfigCallback. A LIT test was
running it through llc for the native target and a unit-test checked
that the insertion worked across targets. The unit-test name was
CGPluginTest. This didn't match the filter in LIT, which requires the
names to end in "Tests". I think it never actually ran in CI.

CGTestPlugin predates the time when we enabled examples by default and
was one of the plugins that lived under unittests. In contrast to TestPlugin
and DoublerPlugin, however, it didn't check internal properties of the plugin
interface.

This PR moves the plugin to examples and makes the lit test the single
place that checks it. Motivation for this is to establish a plugin next
to Bye, that allows to test the behavior of codegen plugins in
isolation. There are 2 use-cases for it currently:


    [12 lines not shown]
DeltaFile
+0-80llvm/unittests/CodeGen/CGPluginTest/PluginTest.cpp
+49-0llvm/examples/Ciao/Ciao.cpp
+0-39llvm/unittests/CodeGen/CGPluginTest/Plugin/Plugin.cpp
+0-34llvm/unittests/CodeGen/CGPluginTest/Plugin/CodeGenTestPass.cpp
+0-33llvm/unittests/CodeGen/CGPluginTest/Plugin/CodeGenTestPass.h
+0-20llvm/unittests/CodeGen/CGPluginTest/CMakeLists.txt
+49-2066 files not shown
+73-22712 files

LLVM/project 67afd2e — llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 dpbusd.ll

[X86] combineVPDPBUSDPattern - incorrect vector element count (#240821)

Ensure we determine the vector element count from the reduction ROOT,
not the first vector in the chain - to correctly handle cases where the
ROOT is split during reduction

Fixes #240667
DeltaFile
+15-3llvm/test/CodeGen/X86/dpbusd.ll
+5-5llvm/lib/Target/X86/X86ISelLowering.cpp
+20-82 files

LLVM/project 93db2dd — llvm/lib/Target/AArch64 AArch64MacroFusion.cpp, llvm/test/CodeGen/AArch64 misched-fusion-apple-sme-compute-pre-ra.mir misched-fusion-apple-sme-compute-post-ra.mir

[AArch64] Reject PNR regs in SME clustering too (#234139)
DeltaFile
+16-0llvm/test/CodeGen/AArch64/misched-fusion-apple-sme-compute-pre-ra.mir
+16-0llvm/test/CodeGen/AArch64/misched-fusion-apple-sme-compute-post-ra.mir
+2-1llvm/lib/Target/AArch64/AArch64MacroFusion.cpp
+34-13 files

LLVM/project c738891 — libcxx/include/__algorithm for_each_n.h for_each.h, libcxx/include/__memory replacable_object.h

[libc++] Pass function in for_each by value
DeltaFile
+76-0libcxx/include/__memory/replacable_object.h
+34-3libcxx/test/benchmarks/algorithms/nonmodifying/for_each.bench.cpp
+18-14libcxx/include/__algorithm/ranges_fold.h
+0-26libcxx/test/libcxx/algorithms/robust_against_copying_comparators.pass.cpp
+16-8libcxx/include/__algorithm/for_each.h
+12-9libcxx/include/__algorithm/for_each_n.h
+156-607 files not shown
+183-6913 files