LLVM/project f32da79 — llvm/lib/CodeGen CodeGenPrepare.cpp, llvm/lib/IR Verifier.cpp

[IR][GC] Remove leftover typed pointer handling for gc.relocate (#235783)

There is various handling for pointer bitcasts of the result, which can
be dropped now that we have opaque pointers and the verifier ensures
that the return type of gc.relocate returns the same type as the derived
pointer. The verifier is adjusted to check that explicitly -- the
previous check incorrectly allowed the types to differ in element count.

LLM generated patch.
DeltaFile
+3-39llvm/lib/CodeGen/CodeGenPrepare.cpp
+34-0llvm/test/Verifier/gc_relocate_type.ll
+3-27llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
+0-28llvm/test/Transforms/RewriteStatepointsForGC/gc-relocate-creation.ll
+0-23llvm/test/Verifier/gc_relocate_addrspace.ll
+2-15llvm/lib/IR/Verifier.cpp
+42-1323 files not shown
+43-1619 files

LLVM/project 34260a6 — clang/lib/Sema SemaTemplate.cpp, clang/test/AST/ByteCode records.cpp

[Clang] Recover invalid lambdas without numbering (#233375)

Those DecltypeExprs used to preserve RecoveryExprs which makes things
complicated when we need to recover errors from a lambda expression.

This patch stops that by recovering as if they were `decltype(int())`,
as well as fixes some other error handlings.

Fixes https://github.com/llvm/llvm-project/issues/150733
Fixes https://github.com/llvm/llvm-project/issues/175713
Fixes https://github.com/llvm/llvm-project/issues/170185
DeltaFile
+58-0clang/test/SemaCXX/invalid-lambda.cpp
+2-4clang/test/AST/ByteCode/records.cpp
+2-3clang/test/SemaCXX/GH220525.cpp
+2-3clang/lib/Sema/SemaTemplate.cpp
+3-2clang/test/SemaCXX/recovery-expr-type.cpp
+0-4clang/test/SemaCXX/invalid-this-in-lambda.cpp
+67-165 files not shown
+77-1911 files

LLVM/project 38a8e47 — lldb/test/API/commands/expression/expr-from-non-zero-frame TestExprFromNonZeroFrame.py, lldb/test/API/lang/cpp/static_members TestCPPStaticMembers.py

[lldb][test] Remove Windows on Arm xfail from some tests (#236044)

Since #229719 these tests pass.

Relates to #232235.
DeltaFile
+0-2lldb/test/API/lang/cpp/static_members/TestCPPStaticMembers.py
+0-1lldb/test/API/lang/cpp/union-static-data-members/TestCppUnionStaticMembers.py
+0-1lldb/test/API/commands/expression/expr-from-non-zero-frame/TestExprFromNonZeroFrame.py
+0-43 files

LLVM/project 016eb68 — clang/lib/CodeGen/Targets X86.cpp, clang/test/CIR/Transforms/abi-lowering x86_64-bitint.cir

[Clang][ABI][X86] Don't extend _BitInt returns to 64-bits (#234872)

For X86, _BitInt(N) with N <= 32 is passed iN, while for 32 < N <= 64
it's passed as i64. I don't think there is any good reason for this
difference in behavior, and we should always use iN.

Nominally, this does not change the ABI. The previous Direct pass as i64
implied that the high bits are unspecified. In practice, the callee
zero-extended the value (independent of _BitInt signedness), but the
caller did not rely on that zero-extension. With CIR it was zero or sign
extended, depending on signedness. Both are ultimately correct (because
the high bits are unspecified).

This still leaves behind a peculiarity for 64 < N < 128, which gets
returned as `{ i64, i64 }`, until we reach N=128, when it switches to
`i128`. I believe all of those should also use iN, but I'll leave that
for a separate change. I'm also not changing argument passing here.

Followup to https://github.com/llvm/llvm-project/pull/232729.
DeltaFile
+18-66clang/test/CIR/Transforms/abi-lowering/x86_64-bitint.cir
+1-4llvm/unittests/ABI/X86TargetInfoTest.cpp
+2-3llvm/lib/ABI/Targets/X86.cpp
+2-2clang/test/CodeGenCXX/ext-int.cpp
+1-2clang/lib/CodeGen/Targets/X86.cpp
+1-1clang/test/CodeGen/ext-int-cc.c
+25-781 files not shown
+26-797 files

LLVM/project 65f5cd0 — mlir/include/mlir/IR OperationSupport.h, mlir/lib/Dialect/MemRef/IR MemRefOps.cpp

[mlir][NFC] Fix some different sign comparison warnings (#234999)

I saw these doing a build on Arm 32-bit, but I don't think they're
specific to it.

* OperationSupport.h: std::distance returns a signed type but
kSmallAttributeList is unsigned. I assume first is always before last,
so it's safe to cast std::distance to size_t.
* In MemRefOps.cpp: srcStaticCount is created using llvm::count_if, but
the type is changed. Then later compared to another llvm::count_if.
Fixed that by using auto to keep the same type.
* ModuleTranslation.cpp: numArguments is unsigned, and by using
llvm::range_size we get a size_t we can compare to.
DeltaFile
+2-2mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+2-2mlir/include/mlir/IR/OperationSupport.h
+1-1mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
+5-53 files

LLVM/project 9e1b258 — llvm/test/CodeGen/AMDGPU optimize-exec-mask-pre-ra-def-after-use.mir opt-exec-masking-pre-ra-update-liveness-wave32.mir, llvm/test/CodeGen/AMDGPU/GlobalISel knownbits-ptrtoint.mir known-bits-sbfe.mir

[AMDGPU] Update check lines with extra text at the start or end. NFC. (#236029)

This comes from re-autogenerating the checks, but only committing a
specific kind of change where the check line gets extra text at the
start or end. These are cases where the existing check line only worked
because it did not have {{^}} or {{$}} anchors.
DeltaFile
+54-54llvm/test/CodeGen/AMDGPU/GlobalISel/known-bits-sbfe.mir
+33-33llvm/test/CodeGen/AMDGPU/GlobalISel/knownbits-ptrtoint.mir
+24-24llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
+19-19llvm/test/CodeGen/AMDGPU/aa-as-infer.ll
+5-5llvm/test/CodeGen/AMDGPU/opt-exec-masking-pre-ra-update-liveness-wave32.mir
+3-3llvm/test/CodeGen/AMDGPU/optimize-exec-mask-pre-ra-def-after-use.mir
+138-13814 files not shown
+157-15720 files

LLVM/project 9223ea3 — clang/lib/AST/ByteCode Block.h Descriptor.h

[clang][bytecode][NFC] Remove unused parameter from ctors/dtors (#235594)

We don't need the `Block*` parameter in the descriptor ctor/dtor
functions.
DeltaFile
+29-34clang/lib/AST/ByteCode/Descriptor.cpp
+4-6clang/lib/AST/ByteCode/Descriptor.h
+2-3clang/lib/AST/ByteCode/Block.h
+35-433 files

LLVM/project e0c9e7e — mlir/lib/Dialect/Tosa/IR TosaOps.cpp, mlir/lib/Dialect/Tosa/Transforms TosaValidation.cpp

[mlir][tosa] Move ResizeOp shape checks from verifier to tosa-validate (#234101)

Part of #233457.

`ResizeOp::verify()` reads `scale`/`offset`/`border` from their
`tosa.const_shape` producers and checks their values. That is not local
to the
operation, so these `ERROR_IF` conditions move to `tosa-validate`.

Changes:

- `ResizeOp::verify()`: drop the constant-value checks (non-positive
scale,
output size divisibility / calculated size); keep only the local check
that
  block-scaled input requires `NEAREST_NEIGHBOR` mode.
- `checkErrorIfResize()`: add the missing `scale > 0` check.
- `levelCheckResize()` and `ResizeOp::inferReturnTypeComponents()`: bail
out on

    [2 lines not shown]
DeltaFile
+6-82mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
+14-10mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
+14-0mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir
+13-0mlir/test/Dialect/Tosa/level_check.mlir
+12-0mlir/test/Dialect/Tosa/error_if_check.mlir
+59-925 files

LLVM/project 10a235c — llvm/lib/Target/ARM ARMInstrNEON.td ARMInstrMVE.td, llvm/test/CodeGen/ARM fp-intrinsics-vector-v8.ll

[ARM] Don't map ISD::STRICT_FRINT to vector VRINTX (#234644)

The VRINTX instruction on a scalar float respects the rounding mode in
FPSCR, but on a vector of floats, it rounds to nearest always. That
makes it the wrong choice for ISD::STRICT_FRINT, which must use the
dynamic rounding mode. It's only acceptable for ISD::FRINT.

This applies to both MVE and NEON. (The latter only for Armv8 and above:
Armv7 NEON doesn't have that instruction in the first place).
DeltaFile
+49-3llvm/test/CodeGen/ARM/fp-intrinsics-vector-v8.ll
+12-12llvm/lib/Target/ARM/ARMISelLowering.cpp
+16-1llvm/test/CodeGen/Thumb2/mve-strict-round.ll
+1-1llvm/lib/Target/ARM/ARMInstrNEON.td
+1-1llvm/lib/Target/ARM/ARMInstrMVE.td
+79-185 files

LLVM/project 7e843af — offload/libompaccsupport device.cpp, offload/test/offloading generic_spmd_grid.c

[OpenMP][offload] Trade threads for blocks in Generic-SPMD kernels (#234191)

For Generic-SPMD mode, the trip count refers to the outer distribute
loop, the per-iteration cost is unknown. So, prefer more blocks and less
threads for this exec mode. This prevents large blocks with only few
active threads.

This is an upstream port of the corresponding downstream.

Claude assisted with this patch.
DeltaFile
+64-0offload/test/offloading/generic_spmd_grid.c
+39-1offload/libompaccsupport/device.cpp
+12-0openmp/docs/design/Runtimes.md
+115-13 files

LLVM/project 7a34d17 — llvm/lib/Target/AArch64 AArch64Combine.td, llvm/test/CodeGen/AArch64 arm64-extract-insert-varidx.ll neon-shuffle-vector-tbl.ll

[AArch64][GlobalISel] Add mul_to_shl post-legalize. (#236033)
DeltaFile
+11-12llvm/test/CodeGen/AArch64/GlobalISel/knownbits-copy-vector-crash.ll
+5-6llvm/test/CodeGen/AArch64/neon-shuffle-vector-tbl.ll
+5-6llvm/test/CodeGen/AArch64/GlobalISel/compute-known-bits-bitcast-assertion.ll
+3-4llvm/test/CodeGen/AArch64/arm64-extract-insert-varidx.ll
+1-1llvm/lib/Target/AArch64/AArch64Combine.td
+25-295 files

LLVM/project 3018ea6 — .github CODEOWNERS

[CODEOWNERS] Drop all notifications (#236030)

The author would like to drop all CODEOWNERS notifications added in
c4e40dc23 ([CODEOWNERS] Request notifications, #227742) as they have
realized a sharp downside: it is impossible to distinguish cases where
their review was explicitly requested.

See also: #228086.
DeltaFile
+0-4.github/CODEOWNERS
+0-41 files

LLVM/project 142fe65 — llvm/cmake/modules TableGen.cmake

address review comments
DeltaFile
+8-5llvm/cmake/modules/TableGen.cmake
+8-51 files

LLVM/project 0f0c7c3 — libcxx/docs/Status Cxx23Issues.csv

[libc++][ranges] Mark LWG3532 as resolved (#235016)

Already implemented and tested in the scope of the full implementation
for `lazy_split_view`
(https://github.com/llvm/llvm-project/commit/e53c461bf3f0feebb4fd6b43e05a0047f8edb945).

Closes https://github.com/llvm/llvm-project/issues/104342
DeltaFile
+1-1libcxx/docs/Status/Cxx23Issues.csv
+1-11 files

LLVM/project f6b41f1 — llvm/include/llvm/Analysis AliasAnalysis.h, llvm/lib/Analysis BasicAliasAnalysis.cpp

[InstCombine] Remove redundant separate_storage assumes (#233736)

When it can already be proven that two pointers don't alias without the
`separate_storage` assume there is no point in keeping
`separate_storage` assumptions around.
DeltaFile
+28-0llvm/test/Transforms/InstCombine/assume-separate_storage.ll
+7-0llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+3-2llvm/lib/Analysis/BasicAliasAnalysis.cpp
+3-0llvm/include/llvm/Analysis/AliasAnalysis.h
+41-24 files

LLVM/project 7d594cc — llvm/lib/Target/AMDGPU VOP2Instructions.td

[AMDGPU] Restore gfx90a predicate on V_MUL_LEGACY_F32_e64_gfx90a. NFCI. (#232035)

#116288 removed both the AssemblerPredicate and SubtargetPredicate of
isGFX90APlus that applied to V_MUL_LEGACY_F32_e64_gfx90a, leaving it
with no predicates at all. Since it has a different encoding from the
GFX6-GFX10 versions of v_mul_legacy_f32_e64, this meant that the asm
matcher could have selected the wrong encoding on those targets. It
only selected the right one because V_MUL_LEGACY_F32_e64_gfx90a is
defined last.

Restore an AssemblerPredicate of isGFX90APlus on just this instruction,
and fix the stale closing comment on the let block that used to set it
for all of the gfx90a multiclasses.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>

Co-authored-by: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
DeltaFile
+2-3llvm/lib/Target/AMDGPU/VOP2Instructions.td
+2-31 files

LLVM/project 2d18d3a — offload/libompaccsupport device.cpp, offload/test/offloading generic_spmd_grid.c

use getDeviceBlockLimit instead of OMP_NUM_TEAMS

Trade threads for blocks only while the doubled number of blocks stays within
the device's block limit, which OMP_NUM_TEAMS may lower, instead of not trading
at all if OMP_NUM_TEAMS is set. This keeps every trade a pure one and leaves
getDeviceBlockLimit as it was.

Claude assisted with this patch.
DeltaFile
+14-12offload/libompaccsupport/device.cpp
+10-2offload/test/offloading/generic_spmd_grid.c
+4-3openmp/docs/design/Runtimes.md
+28-173 files

LLVM/project 930a3d4 — flang/lib/Lower MultiImageFortran.cpp, flang/lib/Optimizer/Transforms MIFOpConversion.cpp

[flang][MIF] Adding lowering for EVENT POST/WAIT statements (#210283)

Add lowering of EVENT POST and EVENT WAIT statements to the MIF dialect
(mif.event_post / mif.event_wait), and lowering of coarray references in
hlfir.designate.

- The event variable is passed to PRIF together with the byte offset of
  the event inside its coarray, computed in MIFOpConversion
- The default initialization of event_type coarrays after
prif_allocate_coarray.
- Add lowering tests for EVENT POST / WAIT.

Nonallocatable coarrays are allocated by PRIF, so their storage is on
the heap. This
patch lowers them like allocatable variables:

- `ConvertTyp`e: the type of a coarray is now a !fir.box<!fir.heap<...>,
corank:N> so every descriptor for coarrays carries
CFI_attribute_allocatable.

    [12 lines not shown]
DeltaFile
+334-69flang/lib/Optimizer/Transforms/MIFOpConversion.cpp
+138-0flang/test/Fir/MIF/events.mlir
+132-0flang/test/Fir/MIF/events2.mlir
+99-0flang/test/Lower/MIF/coarray-character-assign.f90
+96-0flang/lib/Lower/MultiImageFortran.cpp
+77-0flang/test/Lower/MIF/coarray_namelist.f90
+876-6928 files not shown
+1,268-16634 files

LLVM/project 7f3cde2 — clang/include/clang/StaticAnalyzer/Core/PathSensitive CheckerContext.h, clang/lib/StaticAnalyzer/Checkers StreamChecker.cpp CStringChecker.cpp

[NFC][analyzer] Replace generateErrorNode with addSink (#235749)

This change replaces use of `CheckerContext::generateErrorNode` with
`getSink`, then deletes `generateErrorNode`. Textually replacing
`generateErrorNode` with `addSink` will correctly update _most_
downstream checkers; but calls of the form `C.generateErrorNode(State,
Tag)` (if there are any – there wasn't any in upstream) would need to be
updated to `C.addSink(State, C.getPredecessor(), Tag)`.

This change was motivated by the fact that `addSink` and
`generateErrorNode` did the same thing, so their separate existence
caused lots of confusion (e.g. it implied that an "error node" is
somehow different from a regular node, which was completely false).

`generateErrorNode` was the more widespread among them (roughly 80 vs 40
call sites in checkers), but its name isn't suitable for the dozens of
cases where the sink is not used for an "error" (bug report), so I
decided to keep `addSink` as the only sink-making method.


    [3 lines not shown]
DeltaFile
+0-18clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
+9-9clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
+8-8clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
+5-5clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp
+4-4clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
+4-4clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
+30-4845 files not shown
+89-11151 files

LLVM/project 10bc977 — clang/lib/CodeGen CodeGenModule.h CGVTables.cpp, clang/test/CodeGen call-graph-section-covariant-return.cpp

[clang][CodeGen] Use the primary base chain for virtual method IDs

Identify a virtual method in the call graph section after the method it
overrides along the primary base chain of its class, as given by the record
layout. That is the vtable entry the method is placed in, which is not always
the first method it overrides.

Assisted-by: Jetski
DeltaFile
+157-24clang/test/CodeGen/call-graph-section-covariant-return.cpp
+50-18clang/lib/CodeGen/CodeGenModule.cpp
+6-6clang/lib/CodeGen/CGVTables.cpp
+5-4clang/lib/CodeGen/CodeGenModule.h
+218-524 files

LLVM/project 51031c4 — llvm/lib/Support/Windows Path.inc

[Support] Check whether a file is local by its handle on Windows (#233727)

To tell whether an open file is on a local disk, `is_local` resolved
its handle to a path with `GetFinalPathNameByHandleW`, found the volume
with `GetVolumePathNameW` and checked it with `GetDriveTypeW`.
This chain is pretty expensive. `GetVolumePathNameW` alone
takes 0.2-0.4 ms. `mapped_file_region` does this check on every unmap,
slowing down the on-disk CAS.

Ask the volume through the handle first. `NtQueryVolumeInformationFile`
returns its device type and characteristics in one call. A disk device
that is neither removable nor remote is a fixed local disk. Any other
answer, or a failed query, falls back to the path-based check as before.

A cache hit of a single-file compile is 2.1% faster through the
dependency scanning daemon and 1.4% faster in-process. Measured with
clang compile caching on the on-disk CAS in the swiftlang/llvm-project
fork.
DeltaFile
+52-17llvm/lib/Support/Windows/Path.inc
+52-171 files

LLVM/project 35e4d67 — llvm/lib/Target/RISCV RISCVInstrInfoP.td, llvm/test/CodeGen/RISCV rvp-scalar.ll

[RISCV][P-ext] Add isel pattern for maccu.h01/maccu.h11 (#235998)

`maccu.h01` multiplies the zero-extended lower half word of rs1 by the
 zero-extended upper half word of rs2 and adds the product to rd.
 `maccu.h11` does the same with the zero-extended upper half words of
 both.

 Previously, (srl X, 16) was selected as a separate srli feeding
 `maccu.h00`. Match it directly so the shift is folded. As with
 `maccu.h00`, the patterns require the multiply to have a single use.
DeltaFile
+149-0llvm/test/CodeGen/RISCV/rvp-scalar.ll
+6-0llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+155-02 files

LLVM/project 21a3030 — libcxx/docs/Status Cxx26Issues.csv, libcxx/include/__iterator counted_iterator.h

[libc++] Implement LWG4245: Operators that interact with counted_iterator and default_sentinel_t should be noexcept (#235445)

Mark `counted_iterator`'s `operator-` overloads and `operator==` taking
`default_sentinel_t` as `noexcept`, as required by the resolution of
LWG4245. They only read the stored count. Applied as a defect report to
every mode where `counted_iterator` exists (C++20 and later).

The existing `minus.default_sentinel.pass.cpp` and `compare.pass.cpp`
now check `noexcept` for both argument orders and the rewritten `!=`
forms. They fail without the header change and pass in C++20 and later.

Fixes #148226
DeltaFile
+5-2libcxx/test/std/iterators/predef.iterators/counted.iterator/minus.default_sentinel.pass.cpp
+6-1libcxx/test/std/iterators/predef.iterators/counted.iterator/compare.pass.cpp
+3-3libcxx/include/__iterator/counted_iterator.h
+1-1libcxx/docs/Status/Cxx26Issues.csv
+15-74 files

LLVM/project 1015843 — compiler-rt/test/sanitizer_common/TestCases/Linux allow_user_segv.cpp, compiler-rt/test/sanitizer_common/TestCases/Posix variadic-open.cpp

[sanitizer_common][test] Require Android API 26 for variadic-open and allow_user_segv (#236010)

On Android API 24 emulators:
- `Posix/variadic-open.cpp` fails on `O_TMPFILE` because the older
kernel returns `EISDIR` when `O_TMPFILE` is not supported.
- `Linux/allow_user_segv.cpp` fails flakily across API 24 targets (not
just `i386`) due to the legacy `debuggerd` daemon racing on `waitpid`.

Require `android-26` when running on Android for both tests.

https://lab.llvm.org/buildbot/#/builders/sanitizer-x86_64-linux-android

Assisted-by: Gemini
DeltaFile
+1-1compiler-rt/test/sanitizer_common/TestCases/Linux/allow_user_segv.cpp
+2-0compiler-rt/test/sanitizer_common/TestCases/Posix/variadic-open.cpp
+3-12 files

LLVM/project daec608 — llvm/lib/Linker IRMover.cpp, llvm/test/ThinLTO/X86 link-type.ll

[llvm] Remove incorrect IRMover assert (#221758)

The IRMover had an assertion that failed on modules with correct code.
The assert fired in an out-of-tree frontend.
Remove the assertion to fix that.

The assertion has been there for a long time (10 years if I read git
blame correctly) as the failing case cannot be hit when loading
completely separated modules (i.e. this is not reproducible with
`llvm-link`). It is however reproducible when generating modules from
code. One peculiarity is that a named struct type needs to be used in
both, the source and target module that are linked. As types are stored
in the LLVMContext, not in the Module, I believe this is still correct
IR and the IRLinker/Mover should be able to handle that correctly.

Concretely, the assert fired when filling `MappedTypes`. The dst Module
contains `%SharedTy`,
the src Module contains `%SharedTy` (exact same type) and `%Ty2`
(structurally equivalent to `%SharedTy`).

    [9 lines not shown]
DeltaFile
+38-0llvm/unittests/Linker/LinkModulesTest.cpp
+32-0llvm/test/ThinLTO/X86/link-type.ll
+20-0llvm/test/ThinLTO/X86/Inputs/link-type-src.ll
+0-10llvm/lib/Linker/IRMover.cpp
+90-104 files

LLVM/project 4eba311 — clang/test/AST ast-dump-stmt-json.c ast-dump-expr-json.c

[clang][test] Add `--normalize=` parameter to ast_dump_json_test.py  (#235789)

To replace the value of the matching json field with a regex.

Also  update the output to list more passed command line parameters.

I've updated two test files as examples and to test the output doesn't
change otherwise.


Assisted by claude.
DeltaFile
+49-15clang/test/AST/gen_ast_dump_json_test.py
+1-1clang/test/AST/ast-dump-stmt-json.c
+1-1clang/test/AST/ast-dump-expr-json.c
+51-173 files

LLVM/project 31d295e — llvm/test/TableGen BitsInitListErrors.td

[TableGen] Add tests for bit list parsing errors (#235736)
DeltaFile
+28-0llvm/test/TableGen/BitsInitListErrors.td
+28-01 files

LLVM/project fddb499 — clang/include/clang/AST Expr.h, clang/lib/CodeGen CGStmt.cpp

[clang][AST] Stop creating `ConstantExpr` nodes without a result (#229761)

They don't add anything if we don't have a result.
DeltaFile
+10-120clang/test/AST/ast-dump-stmt-json.c
+10-16clang/test/AST/ast-dump-stmt.c
+8-12clang/lib/CodeGen/CGStmt.cpp
+9-7clang/lib/Sema/SemaExpr.cpp
+1-4clang/lib/Sema/SemaStmtAsm.cpp
+2-2clang/include/clang/AST/Expr.h
+40-1611 files not shown
+41-1627 files

LLVM/project 46ec0a5 — llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV/rvv vwadd-sdnode.ll fixed-vectors-vwaddu.ll

[RISCV] Reassociate exts in ext/add reduction tree (#230928)

With an ext-add-ext-add pattern, the second ext can be pushed to after
the final add if the first ext adds enough bits to guarantee that the
second add won't overflow even without the second ext.

Further optimize ext-add reduction in x264 sad_NxN, building on #230657.

AI Usage: Assisted by Codex
DeltaFile
+125-56llvm/test/CodeGen/RISCV/rvv/fixed-vectors-sad.ll
+49-0llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+22-4llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwaddu.ll
+2-3llvm/test/CodeGen/RISCV/rvv/vwadd-sdnode.ll
+198-634 files

LLVM/project 9b6867f — llvm/lib/Transforms/Vectorize LoopVectorize.cpp

[LV] Remove unused parameters of preparePlanForEpilogueVectorLoop (NFC). (#235991)

L and LVP are no longer used.
DeltaFile
+6-7llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+6-71 files