LLVM/project 9a1b583 — llvm/include/llvm/Analysis InlineCost.h, llvm/include/llvm/Passes PassBuilder.h

[MemProf] Make the early inliner ignore the sample profile (#235975)

For MemProf we use the early inliner to aid matching, in particular to
better handle allocation contexts with missing leaf debug frames.

For iPGO the early inliner runs before profile annotation so there is no
existing profile data. But with SamplePGO, there will be profile info in
the IR when the early inliner is run, which will affect the inlining
decisions. If a new SamplePGO profile contains additional hot functions
beyond those in the binary that was memprof-profiled, this can result in
the early inliner performing additional inlines. Because of the way the
memprof profile is structured (profile information for calls and
allocations are included for each function up through the first
non-inline frame), additional inlining means we will not find the
profile information for a call or allocation when matching.

Add a new InlineParams to ignore the profile, which we set when
performing early inlining for MemProf after SamplePGO loading.

Assisted-by: Gemini
DeltaFile
+131-0llvm/test/Transforms/PGOProfile/memprof-samplepgo-preinline.ll
+14-2llvm/lib/Passes/PassBuilderPipelines.cpp
+9-4llvm/lib/Analysis/InlineCost.cpp
+5-0llvm/include/llvm/Analysis/InlineCost.h
+2-1llvm/include/llvm/Passes/PassBuilder.h
+2-0llvm/lib/Passes/PassesOptions.td
+163-76 files

LLVM/project 79413f5 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt getgroups.h, libc/src/unistd getgroups.h

[libc][unistd] Add getgroups syscall wrapper. (#237020)

Unlike `initgroups` and `setgroups`, `getgroups` is standardized in
POSIX.1-2024, and should
be provided by `<unistd.h>` header. Implement it as a simple syscall
wrapper around `getgroups32` syscall,
similar to `setgroups`. Since it's a getter function, it doesn't need
setxid propagation across threads,
and thus can be added to regular (non-experimental) entrypoints list on
various Linux platforms.

Assisted by: Gemini, human-verified.
DeltaFile
+46-0libc/test/src/unistd/getgroups_test.cpp
+42-0libc/src/__support/OSUtil/linux/syscall_wrappers/getgroups.h
+33-0libc/src/unistd/linux/getgroups.cpp
+26-0libc/src/unistd/getgroups.h
+14-0libc/test/src/unistd/CMakeLists.txt
+13-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+174-07 files not shown
+204-013 files

LLVM/project 9a843c6 — llvm/include/llvm/Transforms/Utils LoopUtils.h, llvm/lib/Transforms/Scalar LoopSink.cpp LICM.cpp

[LICM] Refactor common parameters for LICM and LoopSink APIs (NFC) (#236798)

We pass around a whole bunch of analyses and adding a new one becomes a
massive chore.
DeltaFile
+193-225llvm/lib/Transforms/Scalar/LICM.cpp
+47-46llvm/include/llvm/Transforms/Utils/LoopUtils.h
+11-10llvm/lib/Transforms/Scalar/LoopSink.cpp
+251-2813 files

LLVM/project 50c4da5 — mlir/include/mlir/Dialect/Linalg/TransformOps LinalgTransformOps.td, mlir/lib/Dialect/Linalg/TransformOps LinalgTransformOps.cpp

[mlir][transform] Add linalg.fold_reshape_ops_by_expansion transform op (#233732)

Exposes `linalg::populateFoldReshapeOpsByExpansionPatterns` as a
transform dialect op `linalg.fold_reshape_ops_by_expansion`.

The op collects patterns that fold reshape operations into their
producers or consumers by expanding dimensions, including patterns for
`linalg` and `tensor.pad` operations.

The op has a single bool argument `fold_single_use_only`, defaulting to
`false`. If set, only ops whose producer has only one use are
considered.

Assisted-by: Claude
DeltaFile
+110-0mlir/test/Dialect/Linalg/transform-op-fold-reshape-ops-by-expansion.mlir
+25-0mlir/test/Dialect/Linalg/td/fold-reshape-ops-by-expansion.mlir
+21-0mlir/test/python/dialects/transform.py
+16-0mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
+12-0mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+3-0mlir/test/Dialect/Linalg/reshape_fusion.mlir
+187-06 files

LLVM/project 7e3e8e6 — utils/bazel/llvm-project-overlay/clang BUILD.bazel

[Bazel] Fixes 16cb85f (#237229)

This fixes 16cb85f2711e89d6d893f61948ebdf579a1ca3e7 (#232894).

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=16cb85f2711e89d6d893f61948ebdf579a1ca3e7

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+21-5utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+21-51 files

LLVM/project 93ec675 — llvm/lib/Transforms/Scalar GVN.cpp, llvm/test/Transforms/GVN invariant.group.ll metadata.ll

[GVN] Forward a load through a byte load to keep `poison` and provenance
DeltaFile
+144-169llvm/test/Transforms/GVN/load-poison.ll
+125-1llvm/lib/Transforms/Scalar/GVN.cpp
+26-27llvm/test/Transforms/GVN/PRE/rle.ll
+7-7llvm/test/Transforms/GVN/rle-coerced-noalias.ll
+6-4llvm/test/Transforms/GVN/metadata.ll
+5-3llvm/test/Transforms/GVN/invariant.group.ll
+313-2111 files not shown
+316-2137 files

LLVM/project 8a0e780 — llvm/test/Transforms/GVN load-poison.ll

[GVN] Pre-commit tests for `poison` and provenance when forwarding a load
DeltaFile
+688-0llvm/test/Transforms/GVN/load-poison.ll
+688-01 files

LLVM/project 77bef3c — llvm/lib/Transforms/Utils VNCoercion.cpp, llvm/test/Transforms/GVN pr14166.ll ptr-vector-coercion.ll

[GVN] Keep `poison` per lane when forwarding vectors
DeltaFile
+48-63llvm/test/Transforms/GVN/pr63059.ll
+31-50llvm/test/Transforms/GVN/vector-poison.ll
+11-1llvm/lib/Transforms/Utils/VNCoercion.cpp
+2-4llvm/test/Transforms/GVN/ptr-vector-coercion.ll
+0-1llvm/test/Transforms/GVN/pr14166.ll
+92-1195 files

LLVM/project bd1162c — llvm/test/Transforms/GVN vector-poison.ll

[GVN] Pre-commit tests for per-lane `poison` in forwarded vectors
DeltaFile
+244-0llvm/test/Transforms/GVN/vector-poison.ll
+244-01 files

LLVM/project 175902f — llvm/lib/Transforms/InstCombine InstructionCombining.cpp InstCombineCasts.cpp, llvm/test/Transforms/InstCombine bitextract-of-vector.ll

[InstCombine] Fold `bitextract` of a vector to `extractelement` or `shufflevector`
DeltaFile
+246-128llvm/test/Transforms/InstCombine/bitextract-of-vector.ll
+49-0llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+48-0llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+343-1283 files

LLVM/project 4fa8fa2 — llvm/test/Transforms/InstCombine bitextract-of-vector.ll

[InstCombine] Pre-commit tests for `bitextract` of a vector
DeltaFile
+447-0llvm/test/Transforms/InstCombine/bitextract-of-vector.ll
+447-01 files

LLVM/project f49c4dc — flang/lib/Evaluate real.cpp, flang/test/Semantics kinds04_q16.f90 kinds04_q10.f90

[flang] Fix REAL(10) Read() endianness for big-endian hosts (#234842)

On big-endian hosts (e.g. AIX), for REAL(10), the 80-bit value sits in
the low-order bytes of the `uint128_t`. `X87IntegerContainer` stores its
16-bit parts from byte 0, so only the top 32 bits of the value were
read, into the low bits of the word. The result was always a subnormal
(or zero) with the sign lost, instead of the correct value.

Build Word from lo/hi `uint64_t` halves via the `Integer<>` integer
constructor, which uses `SetLEPart()` and is endian-portable. Also
remove the AIX_WARNING test expectations, which only reflected the bug.

https://github.com/llvm/llvm-project/pull/216958 exposes this bug and
cause the following failures on AIX:
```
Failed Tests (3):
  flang-Unit :: Evaluate/./FlangEvaluateTests/RealValueKind/RealValueKind/AsFortran/REAL_10
  flang-Unit :: Evaluate/./FlangEvaluateTests/RealValueKind/RealValueKind/FromIntegerPowersOfTwo/REAL_10
  flang-Unit :: Evaluate/./FlangEvaluateTests/RealValueKind/RealValueKind/Read/REAL_10

    [9 lines not shown]
DeltaFile
+13-2flang/lib/Evaluate/real.cpp
+1-4flang/test/Semantics/kinds04_q16.f90
+1-4flang/test/Semantics/kinds04_q10.f90
+15-103 files

LLVM/project 63ae052 — llvm/lib/Target/SystemZ SystemZXPLINKAsmPrinter.cpp, llvm/test/CodeGen/SystemZ zos-lower-constant.ll

[SystemZ][z/OS] Refactor lowerConstant() (#236945)

The `lowerConstant` implementation is hard to read, and this refactor
should improve it.

- Getting the symbol now only depends an `GA` (Alias), `FV` (Function),
and `GV` (Variable), making it clear that `Sym` is never `nullptr` in
these cases.
 - Early exit for all other cases.
- Condition to identify if the constant is a function is moved inside
the `if` condition, as this is the only user left.
- No `MCSA_ELF_TypeFunction` set. This is either set at the
function/alias in the local case, or when external references are
declared.
- ADA is set for MCSA_ELF_TypeObject, because it is required for data
objects.

The test case is updated to reflect all 3 possibilities.

Assisted by: IBM Bob
DeltaFile
+33-25llvm/test/CodeGen/SystemZ/zos-lower-constant.ll
+10-11llvm/lib/Target/SystemZ/SystemZXPLINKAsmPrinter.cpp
+43-362 files

LLVM/project 376f885 — llvm/lib/Transforms/Scalar StructurizeCFG.cpp

braces
DeltaFile
+2-1llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
+2-11 files

LLVM/project e0b694d — llvm/include/llvm/Analysis TargetTransformInfo.h TargetTransformInfoImpl.h, llvm/lib/CodeGen CodeGenPrepare.cpp

[AArch64] Sink interleave operation near store (#234893)

Sinking profitable interleave operation near store, so dag combine can
form stN instruction.
It is only profitable when both operation is inside a same loop.
DeltaFile
+146-0llvm/test/CodeGen/AArch64/vector-interleave-sink.ll
+114-0llvm/test/Transforms/CodeGenPrepare/AArch64/vector-interleave-sink.ll
+21-2llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+5-3llvm/lib/CodeGen/CodeGenPrepare.cpp
+4-2llvm/include/llvm/Analysis/TargetTransformInfo.h
+6-0llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
+296-73 files not shown
+302-149 files

LLVM/project f77fa4f — lldb/test/API/functionalities/scripted_frame_provider/step_with_type TestFrameProviderStepping.py

Revert "[lldb][test] Disable TestFrameProviderStepping.py on Windows temporarily" (#237221)

Reverts llvm/llvm-project#234889

#234888 has been fixed by #235909.
DeltaFile
+0-3lldb/test/API/functionalities/scripted_frame_provider/step_with_type/TestFrameProviderStepping.py
+0-31 files

LLVM/project 16cb85f — clang/include/clang/CIR/Dialect/IR CMakeLists.txt, clang/lib/CIR/Dialect/IR CIRTypes.cpp CMakeLists.txt

[CIR] Shard generated operation definitions (NFC) (#232894)

`CIRDialect.cpp` includes the TableGen-generated definitions of all CIR
operations (`CIROps.cpp.inc`, ~5.1 MB). It is the slowest translation
unit in a ClangIR-enabled build and sits on the critical path to linking
`clang`. Nothing in the source is slow by itself: the time is spread
over ~23k generated functions, ~80% of it in the optimizer and code
generation.

This patch splits the generated definitions into eight shards. It
follows the approach used for the
LLVM, NVVM, ROCDL, and SPIR-V dialects (#221813, #221812, #221729,
#221811):

- `CIROps.{h,cpp}.inc` are generated with `-op-shard-count=8`.
- `mlir-src-sharder` produces `CIROpDefinitions.{0..7}.cpp` from a new
`CIROpDefinitions.cpp` template, and these are compiled as part of
`MLIRCIR`.
- `CIRDialect::initialize()` uses the generated

    [25 lines not shown]
DeltaFile
+54-74clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+107-0clang/lib/CIR/Dialect/IR/CIROpDefinitions.h
+24-0clang/lib/CIR/Dialect/IR/CIROpDefinitions.cpp
+18-0clang/lib/CIR/Dialect/IR/CMakeLists.txt
+6-4clang/lib/CIR/Dialect/IR/CIRTypes.cpp
+2-2clang/include/clang/CIR/Dialect/IR/CMakeLists.txt
+211-801 files not shown
+215-807 files

LLVM/project 1a96bc4 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[SLP][NFC]Fixx a warning for an extension, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/237217
DeltaFile
+1-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+1-11 files

LLVM/project b08681b — libcxx/docs/ReleaseNotes 24.rst, libcxx/include typeinfo

[libc++] Remove unused type_info constructor (#235739)

We have a constructor taking a `const char*` since the initial import.
It's unused in the library and neither the C++ standard nor the Itanium
ABI require it. Since all `type_info` instances are magicked into
existence by the compiler it doesn't make a ton of sense to have a
constructor either.
DeltaFile
+0-9libcxx/include/typeinfo
+2-0libcxx/docs/ReleaseNotes/24.rst
+2-92 files

LLVM/project 96c6935 — libsycl/include/sycl/__impl handler.hpp queue.hpp, libsycl/test/usm memcpy.cpp

[libsycl] Implement queue::copy and handler::copy (#234983)

Assisted-by: Claude Code

---------

Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
DeltaFile
+37-0libsycl/include/sycl/__impl/queue.hpp
+30-0libsycl/test/usm/memcpy.cpp
+29-0libsycl/unittests/queue/memcpy.cpp
+17-0libsycl/unittests/handler/memcpy.cpp
+15-0libsycl/include/sycl/__impl/handler.hpp
+1-0libsycl/unittests/handler/semantics.cpp
+129-06 files

LLVM/project 3bad592 — mlir/include/mlir/Dialect/Tosa/Transforms Passes.td, mlir/lib/Dialect/Tosa/Transforms TosaConvertIntegerTypesBitwidth.cpp

[mlir][tosa] Add integer bitwidth conversion pass (#232853)

Add tosa-convert-integer-types-bitwidth to convert i4 to i8 and/or i48
to i64. This is useful to facilitate lowering to backends that do not
support i4 and/or i48.

Add a host byte-order lit feature to gate tests with little-endian
resource data.

Assisted-by: Codex
DeltaFile
+332-0mlir/test/Dialect/Tosa/tosa-convert-integer-types-bitwidth.mlir
+229-0mlir/lib/Dialect/Tosa/Transforms/TosaConvertIntegerTypesBitwidth.cpp
+55-0mlir/test/Dialect/Tosa/tosa-convert-integer-types-bitwidth-invalid.mlir
+30-0mlir/include/mlir/Dialect/Tosa/Transforms/Passes.td
+28-0mlir/test/Dialect/Tosa/tosa-convert-integer-types-bitwidth-mappings.mlir
+22-0mlir/test/Dialect/Tosa/tosa-convert-integer-types-bitwidth-options.mlir
+696-03 files not shown
+701-49 files

LLVM/project 876883a — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 store-chain-split-wide-stored-values.ll

[SLP] Freeze undef operand of shl X, 1 expanded to add X, X

add X, X reads X twice, so it does not refine shl X, 1 when X is
undef. Freeze the operand and blend the frozen lanes into the other
operand, unless X is proven not undef or undef X triggers UB.

Assisted-by: Cursor

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/237207
DeltaFile
+139-0llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+16-15llvm/test/Transforms/SLPVectorizer/X86/entries-different-vf.ll
+18-11llvm/test/Transforms/SLPVectorizer/X86/shl-to-add-transformation5.ll
+6-2llvm/test/Transforms/SLPVectorizer/AArch64/store-chain-split-wide-stored-values.ll
+4-2llvm/test/Transforms/SLPVectorizer/X86/schedule-bundle-missing-for-expanded-binop-parent.ll
+3-2llvm/test/Transforms/SLPVectorizer/X86/splat-gather-operands.ll
+186-327 files not shown
+205-4013 files

LLVM/project 050a017 — clang/lib/CIR/Lowering/DirectToLLVM LowerToLLVMOffloadPrintf.cpp, clang/test/CIR/CodeGenHIP device-printf.hip

[CIR][AMDGPU] Lower cir.offload.printf to AMDGPU printf (#231563)

Add lowering for cir.offload.printf to the AMDGPU printf logic employed
by OGCG. Most of the functions added in
clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMOffloadPrintf.cpp are CIR
equivalents to the functions in
llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp.

Assisted-by: Claude Opus 5.5

---------

Signed-off-by: Steffen Holst Larsen <sholstla at amd.com>
DeltaFile
+694-2clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMOffloadPrintf.cpp
+299-0clang/test/CIR/CodeGenHIP/device-printf.hip
+134-0clang/test/CIR/Lowering/offload-printf-amdgpu.cir
+96-0llvm/lib/Support/AMDGPUPrintf.cpp
+11-81llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp
+53-0llvm/include/llvm/Support/AMDGPUPrintf.h
+1,287-833 files not shown
+1,307-919 files

LLVM/project 03cf122 — libcxx/include/__chrono exception.h, libcxx/include/__condition_variable condition_variable.h

[libc++] Add a few _LIBCPP_HIDE_FROM_ABI which have been accidentally removed in #201722 (#236733)

These annotations should have stayed, since the functions are in a spot
where explicit annotation are required.
DeltaFile
+16-12libcxx/include/__condition_variable/condition_variable.h
+10-10libcxx/include/__chrono/exception.h
+26-222 files

LLVM/project c4953a0 — libcxx/include __config, libcxx/include/__condition_variable condition_variable.h

[libc++][NFC] Move checks whether mutex/condition_variable are trivial to their headers (#236806)

The moved macros are only used as implementation details of `mutex` and
`condition_variable` aren't used widely within the library, so they can
be moved to be more local.
DeltaFile
+0-32libcxx/include/__config
+18-0libcxx/include/__mutex/mutex.h
+14-0libcxx/include/__condition_variable/condition_variable.h
+32-323 files

LLVM/project a610dab — llvm/test/CodeGen/AMDGPU callbr.ll si-annotate-nested-control-flows.ll

fix callbr tests after rebase
DeltaFile
+60-64llvm/test/CodeGen/AMDGPU/infinite-loop.ll
+25-47llvm/test/CodeGen/AMDGPU/si-annotate-nested-control-flows.ll
+3-7llvm/test/CodeGen/AMDGPU/callbr.ll
+88-1183 files

LLVM/project 5f3b535 — llvm Maintainers.md

[RISCV] Add myself to maintainers (#234055)
DeltaFile
+3-1llvm/Maintainers.md
+3-11 files

LLVM/project effd3a9 — llvm/test/CodeGen/AArch64 pr235665.ll, llvm/test/CodeGen/X86 pr235665.ll

[DAG] Add baseline test for #235665 (#237196)
DeltaFile
+58-0llvm/test/CodeGen/AArch64/pr235665.ll
+37-0llvm/test/CodeGen/X86/pr235665.ll
+95-02 files

LLVM/project 6dab3b6 — llvm/test/tools/llubi intr_mask_beforefirst.ll, llvm/tools/llubi/lib Interpreter.cpp

[llubi] Add support for llvm.mask.beforefirst (#237117)
DeltaFile
+41-0llvm/test/tools/llubi/intr_mask_beforefirst.ll
+19-0llvm/tools/llubi/lib/Interpreter.cpp
+60-02 files

LLVM/project 4c0d7fb — compiler-rt/lib/csan csan.cpp, compiler-rt/test/csan access-sizes.cpp

Use unaligned loads when snapshotting watched values
DeltaFile
+22-0compiler-rt/test/csan/access-sizes.cpp
+3-3compiler-rt/lib/csan/csan.cpp
+25-32 files