LLVM/project c526d45libcxx/test/benchmarks/algorithms/nonmodifying mismatch.bench.cpp equal.bench.cpp

[libc++] Remove benchmark::DoNotOptimize from custom predicates in benchmarks (#208412)

The point of the custom predicates is to defeat any detection of special
predicates within the library. There isn't much point in adding
`benchmark::DoNotOptimize` on top of that. It can actually hurt, since
it may hide performance changes due to how much/which information we
provide to the compiler.
DeltaFile
+2-10libcxx/test/benchmarks/algorithms/nonmodifying/mismatch.bench.cpp
+2-10libcxx/test/benchmarks/algorithms/nonmodifying/equal.bench.cpp
+2-10libcxx/test/benchmarks/algorithms/nonmodifying/is_permutation.bench.cpp
+2-8libcxx/test/benchmarks/algorithms/nonmodifying/find_last.bench.cpp
+1-5libcxx/test/benchmarks/algorithms/nonmodifying/adjacent_find.bench.cpp
+1-5libcxx/test/benchmarks/algorithms/nonmodifying/ends_with.bench.cpp
+10-4816 files not shown
+26-12322 files

LLVM/project 06499c9llvm/test/Transforms/SLPVectorizer/X86 reduction-root-multiuse-same-opcode.ll

[SLP][NFC] Add regressed vectorization of reduced values, NFC

Reported in https://github.com/llvm/llvm-project/pull/185320#issuecomment-4925949343

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/208504
DeltaFile
+65-0llvm/test/Transforms/SLPVectorizer/X86/reduction-root-multiuse-same-opcode.ll
+65-01 files

LLVM/project 0919721flang/lib/Optimizer/Builder IntrinsicCall.cpp, flang/lib/Optimizer/Transforms MIFOpConversion.cpp

[flang][MIF] Fix COSHAPE and THIS_IMAGE(coarray) type mismatch for non-i64 kinds (#208429)

Both COSHAPE and THIS_IMAGE(coarray [,team]) return integer arrays whose
element type is determined by the Fortran KIND argument (default: i32).
The lowering code was ignoring resultType in both cases and hardcoding
i64, which caused downstream type mismatches:

- COSHAPE: SimplifyHLFIRIntrinsics assertion in PRODUCT(COSHAPE(y)) when
the product input type (i64) did not match the declared result type
(i32).
- THIS_IMAGE(coarray): MLIR verifier error on arith.cmpi with mismatched
operand types (i64 vs i32) in comparisons like THIS_IMAGE(a) /=
[5,0,-7].

Fix: derive eleTy from resultType in both genCoshape and genThisImage
and propagate it into the mif.* op's result type. In MIFOpConversion,
extract a shared convertI64SeqToEleTy helper that post-converts the i64
scratch buffer written by the PRIF runtime into the
declared-element-type buffer when the two types differ. Both

    [2 lines not shown]
DeltaFile
+54-0flang/test/Fir/MIF/coshape.mlir
+54-0flang/test/Fir/MIF/this_image.mlir
+46-0flang/lib/Optimizer/Transforms/MIFOpConversion.cpp
+15-6flang/lib/Optimizer/Builder/IntrinsicCall.cpp
+9-2flang/test/Lower/MIF/coshape.f90
+1-1flang/test/Lower/MIF/this_image.f90
+179-96 files

LLVM/project 4e3a68flibcxx/docs/Status Cxx26Issues.csv

[libc++] Mark LWG4276 as complete (#208273)

We already harden std::array<T, 0>::front() and back(), and we have
tests for it.

Closes #171330
DeltaFile
+1-1libcxx/docs/Status/Cxx26Issues.csv
+1-11 files

LLVM/project 2a9f19flibcxx/docs/Status Cxx26Issues.csv, libcxx/test/std/atomics/atomics.types.generic standard_layout.compile.pass.cpp

[libc++] Add tests for LWG3949 and mark it as done (#208272)

Closes #105301
DeltaFile
+1-1libcxx/docs/Status/Cxx26Issues.csv
+1-0libcxx/test/std/atomics/atomics.types.generic/standard_layout.compile.pass.cpp
+1-0libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/dtor.pass.cpp
+3-13 files

LLVM/project 5a2064dllvm/include/llvm/IR ModuleSummaryIndex.h, llvm/lib/CodeGen/LiveDebugValues InstrRefBasedImpl.h InstrRefBasedImpl.cpp

Revert "[LLVM][NFC] Remove some global constructors" (#208494)

Breaks some buildbots with gcc. Looks like constexpr member definitions
need an extern for old gcc otherwise they get local linkage...

Reverts llvm/llvm-project#208407
DeltaFile
+13-11llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
+9-9llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp
+9-7llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
+11-4llvm/include/llvm/IR/ModuleSummaryIndex.h
+7-7llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
+10-3llvm/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp
+59-4127 files not shown
+123-8233 files

LLVM/project 3a8d8aclld/test/wasm cooperative-threading.s, lld/wasm Writer.cpp

[WebAssembly] Don't use passive segments for bss in coop threads (#208284)

This commit is an update to `wasm-ld`'s behavior with bss data segments
with `--cooperative-threading`. Previously bss segments were forced to
become passive data segments meaning that a `start` function was emitted
with a `memory.fill` that set the required region of memory to 0. This
isn't required for coop threads though because the module is only
instantiated once and the default pattern for memory is 0, so only
special treatment of TLS segments are required.
DeltaFile
+35-0lld/test/wasm/cooperative-threading.s
+4-7lld/wasm/Writer.cpp
+39-72 files

LLVM/project c7cecd8libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers assign_range.pass.cpp

[libc++] Fix assign_range test for forward_list (#208283)

That test was checking prepend_range instead of assign_range due to a
copy-paste error.

Fixes #74536
DeltaFile
+7-7libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/assign_range.pass.cpp
+7-71 files

LLVM/project e2a8a74libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons assign_iter_iter.pass.cpp assign_range.pass.cpp, libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers insert_after_iter_iter.pass.cpp insert_after_range.pass.cpp

[libc++][NFC] Rename forward_list constructor tests (#208301)

The forward_list tests historically used "range" to mean an iterator
pair, but we use `iter_iter` pretty consistently elsewhere in the test
suite. Using `range` also makes it confusing with the actual tests for
`_range` operations, like `append_range` or `assign_range`.
DeltaFile
+90-0libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_iter_iter.pass.cpp
+0-90libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp
+88-0libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_iter_iter.pass.cpp
+0-88libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp
+0-64libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp
+64-0libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/ctor_iter_iter_alloc.pass.cpp
+242-2422 files not shown
+300-3008 files

LLVM/project 88d548across-project-tests/intrinsic-header-tests riscv_packed_simd.c

[RISCV][P-ext][NFC] Add tests for packed reverse intrinsics (#208484)
DeltaFile
+48-0cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
+48-01 files

LLVM/project 2ff8ed7llvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/PhaseOrdering/X86 pr67803.ll

[VectorCombine] Handle widening/narrowing bitcasts in foldShuffleToIdentity (#187870)

Track lane indices through vector bitcasts that change element count in
foldShuffleToIdentity. Widening bitcasts (e.g. <2 x i32> -> <4 x i16>)
compress R consecutive destination lanes into one source lane, while
narrowing bitcasts (e.g. <4 x i16> -> <2 x i32>) expand each destination
lane into R source lanes.

Also fix identity check, splat mask, and destination type construction
to use Item.size() instead of Ty->getNumElements(), since the Item
vector changes size when passing through element-count-changing
bitcasts.

Fixes #96884
DeltaFile
+336-0llvm/test/Transforms/VectorCombine/X86/shuffletoidentity-bitcast.ll
+130-14llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+88-29llvm/test/Transforms/PhaseOrdering/X86/pr67803.ll
+73-3llvm/test/Transforms/VectorCombine/AArch64/shuffletoidentity.ll
+8-16llvm/test/Transforms/VectorCombine/X86/shuffle-inseltpoison.ll
+8-16llvm/test/Transforms/VectorCombine/X86/shuffle.ll
+643-781 files not shown
+649-847 files

LLVM/project 07d5e0d.ci/green-dragon lldb-windows.groovy

[lldb][Windows][CI] split steps (#206946)

Split the lldb green-dragon lldb testing steps into 2:
1. Build and run the tests without `lldb-server.exe`
2. Run the tests with `lldb-server.exe`

This gives better separation in the UI and if the first step fails, the
second step will still attempt to run.
DeltaFile
+24-3.ci/green-dragon/lldb-windows.groovy
+24-31 files

LLVM/project adcd0b7clang/test/CodeGen/AArch64 neon-2velem.c neon-intrinsics.c, clang/test/CodeGen/AArch64/neon fused-multiply.c

[CIR][AArch64] Lower NEON vfms builtins (#207022)

Lower additional AArch64 NEON fused multiply-subtract builtins in CIR.

This covers the ACLE wrappers from section 2.1.1.2.5:
  - vfms_f32, vfms_f64, vfmsq_f32, vfmsq_f64
  - vfms_lane_f32, vfms_lane_f64, vfmsq_lane_f32, vfmsq_lane_f64
  - vfms_laneq_f32, vfms_laneq_f64, vfmsq_laneq_f32, vfmsq_laneq_f64
  - vfmss_lane_f32, vfmss_laneq_f32
  - vfmsd_lane_f64, vfmsd_laneq_f64

The lowering reuses the existing FMA paths by negating the multiply
operand before emitting llvm.fma. Vector lane forms splat the selected
lane, while scalar lane/laneq forms extract the selected element before
the FMA.

Move the existing ACLE coverage into
clang/test/CodeGen/AArch64/neon/fused-multiply.c and add direct LLVM,
CIR-to-LLVM, and CIR checks. The replaced old-style checks are removed

    [2 lines not shown]
DeltaFile
+472-5clang/test/CodeGen/AArch64/neon/fused-multiply.c
+0-254clang/test/CodeGen/AArch64/neon-2velem.c
+0-83clang/test/CodeGen/AArch64/neon-intrinsics.c
+0-60clang/test/CodeGen/AArch64/neon-scalar-x-indexed-elem.c
+472-4024 files

LLVM/project ef84e19compiler-rt/lib/memprof memprof_allocator.cpp memprof_mapping.h, compiler-rt/lib/memprof/tests shadow.cpp CMakeLists.txt

[compiler-rt][memprof] fix off-by-one in shadow access-count accumula… (#208376)

…tion.

GetShadowCount and GetShadowCountHistogram used an inclusive loop up to
MEM_TO_SHADOW(p + size), summing an extra adjacent cell when p + size is
granule-aligned. Use p + size - 1 to stay within the allocation.
DeltaFile
+51-0compiler-rt/lib/memprof/tests/shadow.cpp
+0-21compiler-rt/lib/memprof/memprof_allocator.cpp
+21-0compiler-rt/lib/memprof/memprof_mapping.h
+1-0compiler-rt/lib/memprof/tests/CMakeLists.txt
+73-214 files

LLVM/project ac18fc2llvm/test/CodeGen/AMDGPU packed_shl64_combine.ll

whopsy++
DeltaFile
+2-2llvm/test/CodeGen/AMDGPU/packed_shl64_combine.ll
+2-21 files

LLVM/project e3baddfllvm/lib/Target/AMDGPU AMDGPUISelLowering.cpp

whopsy
DeltaFile
+0-1llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+0-11 files

LLVM/project 494697fclang/include/clang/Basic CodeGenOptions.h, clang/include/clang/Options Options.td

[CodeGen] Disable exact dynamic_cast for duplicable vtables (#205929)

Add `TargetInfo::getVTableUniqueness()`, which returns a
`VTableUniquenessKind` that describes whether a target's ABI guarantees
a class's vtable has a single address program-wide. Apple Mach-O targets
return `UniqueIfStrongLinkage`, since a vague-linkage (weak) vtable may
be autohidden and duplicated per image, while a vtable with strong
linkage (e.g., a class with a key function) still has a unique address.
Every other target keeps the default, `AlwaysUnique`.

Rename the `CodeGenOpts` flag backing `-f[no-]assume-unique-vtables`
from `AssumeUniqueVTables` to `DisableExactDynamicCast`, defaulting to
false so the optimization stays on unless `-fno-assume-unique-vtables`
is given. Use it together with `getVTableUniqueness()` in
`ItaniumCXXABI::hasUniqueVTablePointer()` so a weak vtable on a target
that may duplicate vtables no longer qualifies for the exact
`dynamic_cast` optimization; a vtable with a key function, or any vtable
on a target with `AlwaysUnique` semantics, is unaffected.


    [2 lines not shown]
DeltaFile
+39-10clang/test/CodeGenCXX/dynamic-cast-exact-disabled.cpp
+13-0clang/include/clang/Basic/CodeGenOptions.h
+9-4clang/lib/CodeGen/ItaniumCXXABI.cpp
+7-0clang/lib/Basic/Targets/OSTargets.h
+3-3clang/include/clang/Options/Options.td
+4-0clang/lib/Basic/TargetInfo.cpp
+75-174 files not shown
+82-2010 files

LLVM/project cc95b1ellvm/lib/Target/AMDGPU SIInstructions.td SIISelLowering.cpp

[Review] Move the unroll of trunc v2i64 to v2i32 out of performShlCombine
DeltaFile
+14-0llvm/lib/Target/AMDGPU/SIInstructions.td
+3-2llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+0-5llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+17-73 files

LLVM/project d4dd90amlir/include/mlir/Dialect/Tosa/IR TosaTypesBase.td TosaComplianceData.h.inc, mlir/lib/Dialect/Tosa/IR TosaOps.cpp

[mlir][tosa] Add constant block scaled support (#205506)

This commit adds support for block scaled tensors.

In particular, the block scaled type has been extended with the
`DenseElementTypeInterface` to allow block scaled data values to be
specified in dense element attributes.

The block scaled type has also been extended to allow optional scale
values to be specified by the type. For now, scale values are not
expected to be propagated beyond their use in the attribute input of a
constant operation. In the future, we may want to propagate these values
to allow certain optimizations.

The `tosa.const` operation has also been updated in the validation pass.
DeltaFile
+128-12mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
+72-0mlir/test/Dialect/Tosa/ops.mlir
+68-0mlir/test/Dialect/Tosa/verifier.mlir
+18-5mlir/include/mlir/Dialect/Tosa/IR/TosaTypesBase.td
+19-1mlir/include/mlir/Dialect/Tosa/IR/TosaComplianceData.h.inc
+18-0mlir/test/Dialect/Tosa/tosa-validation-version-1p0-invalid.mlir
+323-184 files not shown
+348-2410 files

LLVM/project 161dc1dcmake/Modules GetTripleCMakeSystemName.cmake

cmake: Try to derive CMAKE_SYSTEM_NAME from unnormalized triples

get_triple_cmake_system_name() assumed a fully-normalized triple of the form
arch-vendor-os[-env] and read the OS and environment from fixed positions.

Unnormalized triples often omit the vendor and/or environment
(e.g. "aarch64-linux-android21", "aarch64-linux-gnu", "wasm32-wasi"),
so those fixed positions are wrong, and the function returned
bogus results, e.g.. "aarch64-linux-android21" -> Generic.

This was expecting to get a normalized triple by running clang -print-target-triple,
but that may not always work.

Scan all triple components for the known OS and environment tokens instead of
reading fixed positions. Ideally we would have a full triple normalization
function in cmake that mirrors the normalization in Triple.

Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
DeltaFile
+97-62cmake/Modules/GetTripleCMakeSystemName.cmake
+97-621 files

LLVM/project dd82416offload/liboffload/API Memory.td, offload/liboffload/src OffloadImpl.cpp

[offload] Add olMemPrefetch to liboffload (#206752)

Adds olMemPrefetch and the OL_MEM_MIGRATION_FLAG_* enum, wired through a
new dataPrefetchImpl on the plugin interface with Level Zero and CUDA
implementations. Backends without prefetch support inherit the default
no-op.

Prefetch is a hint that migrates a USM allocation between the host and a
device so subsequent accesses on the target side are faster.

Assisted-by: Claude
DeltaFile
+149-0offload/unittests/OffloadAPI/memory/olMemPrefetch.cpp
+47-0offload/plugins-nextgen/cuda/src/rtl.cpp
+41-0offload/liboffload/API/Memory.td
+21-0offload/plugins-nextgen/level_zero/src/L0Device.cpp
+11-0offload/liboffload/src/OffloadImpl.cpp
+11-0offload/plugins-nextgen/common/include/PluginInterface.h
+280-07 files not shown
+320-013 files

LLVM/project 361a3e6llvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/VectorCombine load-insert-store.ll

[VectorCombine] Fix bailing out of the foldSingleElementStore with a freeze-pending index (#207702)

`foldSingleElementStore` calls `canScalarizeAccess` to decide whether a
single-element store can be scalarized. When the insert index is not a
constant, is provably in-bounds and may be poison, `canScalarizeAccess`
returns `SafeWithFreeze` and stashes a `ToFreeze` value that must later
be consumed by `freeze()` or cleared by `discard()`.

The bail-out for memory being modified between the load and store was
folded into same condition as the scalarizability check:

```cpp
auto ScalarizableIdx = canScalarizeAccess(...);
if (ScalarizableIdx.isUnsafe() || isMemModifiedBetween(...))
  return false;
```

When the index took the `SafeWithFreeze` path and memory was modified
between the load and the store, `isMemModifiedBetween` returns true and

    [8 lines not shown]
DeltaFile
+20-0llvm/test/Transforms/VectorCombine/load-insert-store.ll
+4-3llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+24-32 files

LLVM/project b45d681libcxx/utils/ci buildkite-pipeline.yml

[libc++] Update the label for FreeBSD in CI to version 15.1 (#205417)

The FreeBSD libc++ CI has been bumped to the new FreeBSD release. The
remaining task to do is to bump the description in CI yaml file.
DeltaFile
+1-1libcxx/utils/ci/buildkite-pipeline.yml
+1-11 files

LLVM/project 1df703allvm/lib/Target/BPF BPFMIPeephole.cpp

BPF: Remove unnecessary isReg check for copy source (#208486)
DeltaFile
+0-3llvm/lib/Target/BPF/BPFMIPeephole.cpp
+0-31 files

LLVM/project ac25775llvm/include/llvm/IR ModuleSummaryIndex.h, llvm/lib/CodeGen/LiveDebugValues InstrRefBasedImpl.h InstrRefBasedImpl.cpp

Revert "[LLVM][NFC] Remove some global constructors (#208407)"

This reverts commit d68ad9ab736ec65a8addc67655a6b290a7f98307.
DeltaFile
+13-11llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
+9-9llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp
+9-7llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
+11-4llvm/include/llvm/IR/ModuleSummaryIndex.h
+7-7llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
+10-3llvm/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp
+59-4127 files not shown
+123-8233 files

LLVM/project d82a0d2libcxx/test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members get_long.pass.cpp

[libc++] Add missing <string> include (#208281)

Fixes #182390
DeltaFile
+2-1libcxx/test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long.pass.cpp
+2-11 files

LLVM/project ebe2afbclang/include/clang/AST OpenMPClause.h, clang/lib/AST OpenMPClause.cpp

[Clang][OpenMP] Add parsing/sema for dims modifier in num_threads
DeltaFile
+150-41clang/include/clang/AST/OpenMPClause.h
+78-34clang/lib/Parse/ParseOpenMP.cpp
+61-36clang/lib/Sema/SemaOpenMP.cpp
+62-0clang/test/OpenMP/dims_modifier_ast_print.cpp
+52-7clang/lib/AST/OpenMPClause.cpp
+53-1clang/test/OpenMP/dims_modifier_messages.cpp
+456-11927 files not shown
+588-20733 files

LLVM/project 582d99cllvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll

[AMDGPU][test] Split slow lit tests for better parallel lit throughput (NFC)

Split the slowest AMDGPU CodeGen tests into independent lit units so
llvm-lit can distribute work across available host cores.
DeltaFile
+0-231,405llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+0-95,794llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+83,634-0llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.si.ll
+59,107-0llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.gfx11.ll
+0-52,058llvm/test/CodeGen/AMDGPU/bf16.ll
+49,302-0llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.vi.ll
+192,043-379,25732 files not shown
+430,209-395,29538 files

LLVM/project 0a69f16openmp/runtime/src kmp_traits.cpp kmp_traits.h, openmp/runtime/src/i18n en_US.txt

add lexer; improve structure
DeltaFile
+350-0openmp/runtime/unittests/Traits/TestOMPTraitLexer.cpp
+239-110openmp/runtime/src/kmp_traits.cpp
+96-5openmp/runtime/unittests/Traits/TestOMPTraitParser.cpp
+67-0openmp/runtime/src/kmp_traits.h
+2-1openmp/runtime/src/i18n/en_US.txt
+1-0openmp/runtime/unittests/Traits/CMakeLists.txt
+755-1166 files

LLVM/project 34bb48eclang/include/clang/Basic AttrDocs.td

[clang][docs] Fix coro_await_elidable bullet list rendering (NFC) (#208333)

Add the blank line required before the reStructuredText bullet list and
indent the continuation line for the second item. Without this, the
generated AttributeReference page does not render the
coro_await_elidable safe-elide-context bullets correctly.
DeltaFile
+2-1clang/include/clang/Basic/AttrDocs.td
+2-11 files