LLVM/project 215725f — compiler-rt/lib/scudo/standalone memtag.h combined.h, compiler-rt/lib/scudo/standalone/tests memtag_test.cpp wrappers_cpp_test.cpp

[scudo] Mark functions/classes as test only. (#231737)

A few functions/classes should be test only to indicate they should not
be used in normal code.

Specifically, isOwned to isOwnedTestOnly and the class
ScopedDisableMemoryTagChecks to ScopedTestOnlyDisableMemoryTagChecks.

Modify the iterateOverChunks function to avoid using the test class and
clean up the function a bit.
DeltaFile
+7-12compiler-rt/lib/scudo/standalone/combined.h
+5-5compiler-rt/lib/scudo/standalone/memtag.h
+5-4compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
+2-2compiler-rt/lib/scudo/standalone/tests/wrappers_cpp_test.cpp
+1-1compiler-rt/lib/scudo/standalone/tests/memtag_test.cpp
+20-245 files

LLVM/project 14b52db — llvm/include/llvm/CodeGen SlotIndexes.h, llvm/lib/CodeGen RegAllocGreedy.cpp LiveIntervals.cpp

[CodeGen] Drop dead SlotIndexes before allocation

SlotIndexes keeps the index list entry of an erased instruction and only
clears its instruction pointer. Live range sizes are measured in slot
indexes and greedy ranks ranges by size, so the leftovers inflate some
ranges more than others and reorder allocation, spilling heavily on
register-starved functions.

Add SlotIndexes::compactIndexes() to erase them. Erased entries are
unlinked, so LiveIntervals first reports the indexes it holds via
appendReferencedIndexes().

Off by default behind -greedy-compact-slot-indexes, since it changes
allocation across much of the test suite.
DeltaFile
+221-0llvm/unittests/CodeGen/SlotIndexesTest.cpp
+46-0llvm/lib/CodeGen/SlotIndexes.cpp
+32-0llvm/test/CodeGen/AMDGPU/greedy-compact-slot-indexes.ll
+23-6llvm/include/llvm/CodeGen/SlotIndexes.h
+29-0llvm/lib/CodeGen/LiveIntervals.cpp
+12-1llvm/lib/CodeGen/RegAllocGreedy.cpp
+363-71 files not shown
+367-77 files

LLVM/project 850fd86 — .github/workflows libcxx-lnt-pipeline-libstdcxx.yml libcxx-benchmark-cron.yml, libcxx/utils/ci/lnt machines.json dispatch-benchmarks

[libc++] Switch the libc++ benchmark pipelines to LNT v5 (#232888)

Since lnt.llvm.org is now running LNT v5, switch the benchmark pipelines
over to it. Note that we hardcode the submission URL now because
submitting requires an API key, so allowing the submission workflows to
submit to another instance would allow leaking that token.
DeltaFile
+7-14libcxx/utils/ci/lnt/dispatch-benchmarks
+10-11.github/workflows/libcxx-lnt-submit.yml
+2-7.github/workflows/libcxx-run-benchmarks.yml
+3-6libcxx/utils/ci/lnt/machines.json
+0-6.github/workflows/libcxx-lnt-pipeline-libstdcxx.yml
+3-3.github/workflows/libcxx-benchmark-cron.yml
+25-472 files not shown
+25-598 files

LLVM/project e76b874 — utils/bazel/llvm-project-overlay/libc BUILD.bazel

[bazel][libc] Add missing type_traits dep to nearest_integer (#232868)

88fd7f873e30 added an include of src/__support/CPP/type_traits.h to
nearest_integer.h without the matching Bazel dep, so the layering check
fails for every target that reaches it.
DeltaFile
+1-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+1-01 files

LLVM/project fb92532 — llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV rvp-simd-32.ll rvp-simd-64.ll

[RISCV] Call tryWidenMaskForShuffle at the end of P extension shuffle lowering.

If the shuffle mask has contiguous elements we can try shuffling
them using a large element type.
DeltaFile
+24-48llvm/test/CodeGen/RISCV/rvp-simd-64.ll
+0-8llvm/test/CodeGen/RISCV/rvp-simd-32.ll
+4-1llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+28-573 files

LLVM/project 646d61b — llvm/lib/Transforms/IPO OpenMPOpt.cpp, llvm/test/Transforms/OpenMP spmdization_guarding.ll

[OpenMP] follow-up on strict fence SPMDization (#232873)

Summary:
Address some late comments. Autogenerates tests, fix up function usage.

Main behavior of the change is that the SPMDization no longer breaks the
happens-before relationship a fence provided. I.e. cannot move loads or
stores past a barrier stronger than the one inserted by the pass itself.
DeltaFile
+218-16llvm/test/Transforms/OpenMP/spmdization_guarding.ll
+10-12llvm/lib/Transforms/IPO/OpenMPOpt.cpp
+228-282 files

LLVM/project e3ccdc4 — mlir/lib/Transforms/Utils GreedyPatternRewriteDriver.cpp

[mlir] Check greedy rewrite fingerprints at entry points
DeltaFile
+28-0mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
+28-01 files

LLVM/project 1047a1b — mlir/include/mlir/Transforms FoldUtils.h, mlir/lib/Transforms/Utils FoldUtils.cpp GreedyPatternRewriteDriver.cpp

[mlir] Track known constant insertion effects
DeltaFile
+15-4mlir/include/mlir/Transforms/FoldUtils.h
+9-5mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
+9-4mlir/lib/Transforms/Utils/FoldUtils.cpp
+33-133 files

LLVM/project 1be0103 — mlir/lib/Transforms/Utils RegionUtils.cpp

[mlir] Report block argument removal from runRegionDCE (#232211)

runRegionDCE reports whether it changed the IR, but deleteDeadness did not include
dead non-entry block arguments in its change flag.

This caused GreedyPatternRewriteDriver to not report a change even when DCE happened.

Assisted-by: gpt 6 sol
DeltaFile
+5-2mlir/lib/Transforms/Utils/RegionUtils.cpp
+5-21 files

LLVM/project 53b8cb0 — llvm/lib/Target/NVPTX NVPTXIntrinsics.td, llvm/test/CodeGen/NVPTX convert-sm90.ll

[NVPTX] Lower BF16-to-FP16 conversion intrinsics (#232313)

Lower `llvm.nvvm.bf2h.rn` and `llvm.nvvm.bf2h.rn.ftz` to
`cvt.rn.f16.bf16` on SM90 and later, fixing instruction-selection
crashes.

Assisted-by: GPT-6 Astra
DeltaFile
+34-0llvm/test/CodeGen/NVPTX/convert-sm90.ll
+5-0llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
+39-02 files

LLVM/project 6c930d2 — flang/lib/Semantics canonicalize-omp.cpp

[flang][OpenMP] Move CanonicalizationOfOmp member definitions out of … (#232872)

…class

Keep only declarations (and the trivial constructor) in the class, and
define each member function out of line after the class. Each function's
leading comment moves with its implementation. No functional change.

Co-authored-by: Claude Opus 4 (1M context) <noreply at anthropic.com>
DeltaFile
+310-280flang/lib/Semantics/canonicalize-omp.cpp
+310-2801 files

LLVM/project 8008422 — lldb/include/lldb/Target TargetGroupList.h TargetGroup.h, lldb/source/Commands CommandObjectTarget.cpp

[lldb] Add target groups for related targets (#229180)

## Summary

- introduce first-class `TargetGroup` objects
- represent each group member as `{TargetWP, TargetGroup::Role}`, with
one extensible role per target
- use synchronized `TargetGroupList` collections for the debugger
registry and per-target memberships
- add `target groups list` for inspecting groups and member roles

This contains the generic target-group model discussed in review.
Accelerator integration and public SB APIs can follow separately after
the initial foundation is landed.

## Testing
added target group tests.
DeltaFile
+293-0lldb/unittests/Target/TargetGroupTest.cpp
+134-0lldb/source/Commands/CommandObjectTarget.cpp
+119-0lldb/source/Target/TargetGroup.cpp
+86-0lldb/include/lldb/Target/TargetGroup.h
+73-0lldb/source/Target/TargetGroupList.cpp
+70-0lldb/include/lldb/Target/TargetGroupList.h
+775-08 files not shown
+822-314 files

LLVM/project 39a789f — clang/include/clang/CIR/Dialect/IR CIRAttrs.td, clang/lib/CIR/Dialect/IR CIRAttrs.cpp

[CIR] Support flexible array initialization in unions (#230284)

Fixes #228951
DeltaFile
+23-2clang/test/CIR/CodeGen/flexible-array-init.c
+11-1clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
+5-5clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+10-0clang/test/CIR/IR/invalid-const-record.cir
+5-0clang/test/CIR/IR/const-record-flexible-array.cir
+1-3clang/lib/CIR/Lowering/LoweringHelpers.cpp
+55-116 files

LLVM/project 9ef5250 — llvm/lib/Transforms/Vectorize VectorizeOptions.td SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 reduction-width-budget.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+70-0llvm/test/Transforms/SLPVectorizer/X86/reduction-width-budget.ll
+11-2llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+2-0llvm/lib/Transforms/Vectorize/VectorizeOptions.td
+83-23 files

LLVM/project b96162c — llvm/include/llvm/Support Unicode.h, llvm/lib/Support Unicode.cpp UnicodeCharSetsGenerated.cpp

[Support] Add isCharacter, isControl functions (#231223)

This adds functions for determining whether a code point is an assigned
character, and for determining whether a code point is a control
character, based on the Unicode standard.
DeltaFile
+258-0llvm/lib/Support/UnicodeCharSetsGenerated.cpp
+18-0llvm/lib/Support/Unicode.cpp
+9-0llvm/include/llvm/Support/Unicode.h
+8-0llvm/utils/UnicodeData/UnicodeCharSetsGenerator.cpp
+293-04 files

LLVM/project 87f8f25 — clang/lib/Driver/ToolChains Flang.cpp, flang/test/Driver version-loops-trip-count.f90

[flang][driver] Honor trailing -O0 and test -mmlir overrides for trip-count versioning
DeltaFile
+30-0flang/test/Integration/loop-tripcount-versioning.f90
+8-5clang/lib/Driver/ToolChains/Flang.cpp
+9-0flang/test/Driver/version-loops-trip-count.f90
+47-53 files

LLVM/project 7878a42 — flang/include/flang/Optimizer/Passes CommandLineOpts.h, flang/lib/Optimizer/Passes Pipelines.cpp CommandLineOpts.cpp

[flang] Plumb -loop-tripcount-versioning-max-unrolled-ops through the pipeline
DeltaFile
+5-0flang/lib/Optimizer/Passes/CommandLineOpts.cpp
+2-1flang/lib/Optimizer/Passes/Pipelines.cpp
+1-0flang/include/flang/Optimizer/Passes/CommandLineOpts.h
+8-13 files

LLVM/project 98ce9a1 — clang/lib/Driver/ToolChains Flang.cpp, flang/docs ReleaseNotes.md

[flang] Add -f[no-]version-loops-for-trip-count and enable it at -O3
DeltaFile
+36-0flang/test/Integration/loop-tripcount-versioning.f90
+34-0flang/test/Driver/version-loops-trip-count.f90
+14-11clang/lib/Driver/ToolChains/Flang.cpp
+5-0flang/lib/Optimizer/Passes/CommandLineOpts.cpp
+5-0flang/docs/ReleaseNotes.md
+4-0flang/lib/Optimizer/Passes/Pipelines.cpp
+98-116 files not shown
+111-1112 files

LLVM/project 01d53f3 — llvm/test/Transforms/SLPVectorizer/X86 reduction-width-budget.ll

[SLP][NFC]Add a test for another option to control compile time, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/232876
DeltaFile
+119-0llvm/test/Transforms/SLPVectorizer/X86/reduction-width-budget.ll
+119-01 files

LLVM/project 52c4b0b — flang/lib/Optimizer/Transforms LoopTripCountVersioning.cpp, flang/test/Transforms loop-tripcount-versioning.fir

[flang] Skip omp declare_target nohost functions in LoopTripCountVersioning
DeltaFile
+29-0flang/test/Transforms/loop-tripcount-versioning.fir
+17-6flang/lib/Optimizer/Transforms/LoopTripCountVersioning.cpp
+46-62 files

LLVM/project 2f18cdd — llvm/test/Transforms/SLPVectorizer/X86 reduction-width-budget.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+119-0llvm/test/Transforms/SLPVectorizer/X86/reduction-width-budget.ll
+119-01 files

LLVM/project e9a66e8 — llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer VecUtils.h, llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes LoadStoreVec.h

[SandboxVec][LoadStoreVec] Support constant vectors of mixed types
DeltaFile
+414-4llvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec/load_store_vec_mixed_types.ll
+113-13llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
+70-26llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
+18-0llvm/lib/SandboxIR/Constant.cpp
+12-0llvm/unittests/SandboxIR/SandboxIRTest.cpp
+9-2llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
+636-454 files not shown
+650-4810 files

LLVM/project 0576db6 — llvm/include/llvm/IR IntrinsicsSPIRV.td IntrinsicsDirectX.td

[NFC][DirectX][SPIRV] Clang-format intrinsic definition files (#231647)

Formatted the intrinsic definition files for DirectX and SPIR-V with
clang-format. The `.td` files are by default excluded from clang-format
runs, but I figured it is worth having these intrinsics definitions in
consistent layout. I'll be editing a number of the intrinsics as part of
#217423 and this will make it easier to review.
DeltaFile
+528-311llvm/include/llvm/IR/IntrinsicsDirectX.td
+481-160llvm/include/llvm/IR/IntrinsicsSPIRV.td
+1,009-4712 files

LLVM/project 9198b30 — libcxx/utils/ci/lnt README.md run-libstdcxx-benchmarks

[libc++] Update the LNT tooling to LNT v5 (#232866)

lnt.llvm.org now runs LNT v5, which has a different submission format
and REST API than the LNT v4 instance. This updates the scripts that
talk to LNT accordingly.
DeltaFile
+81-1libcxx/utils/ci/lnt/common.py
+55-25libcxx/utils/ci/lnt/submit-benchmarks
+43-35libcxx/utils/ci/lnt/run-benchmarks
+27-29libcxx/utils/ci/lnt/plan-benchmarks
+20-29libcxx/utils/ci/lnt/run-libstdcxx-benchmarks
+8-21libcxx/utils/ci/lnt/README.md
+234-1401 files not shown
+234-1417 files

LLVM/project f74aa8f — llvm/test/Transforms/LoopVectorize/RISCV partial-reduce-dot-product-interleave.ll

[LV] Add tests for partial reduction whose operands come from an interleaved group. nfc (#232417)

Pre-commit test for #213904
DeltaFile
+223-0llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce-dot-product-interleave.ll
+223-01 files

LLVM/project 64eb69b — llvm/lib/Target/NVPTX NVPTXTargetTransformInfo.cpp, llvm/test/CodeGen/NVPTX prefetch-inferas-test.ll prefetch.ll

[NVPTX] Infer address spaces for mbarrier intrinsics (#229272)

Teach InferAddressSpaces to rewrite generic mbarrier operands to
shared-memory variants. Emit a trap for provably invalid address spaces
while leaving unknown and cluster-shared addresses unchanged.
DeltaFile
+336-0llvm/test/Transforms/InferAddressSpaces/NVPTX/mbarrier.ll
+163-160llvm/test/CodeGen/NVPTX/prefetch.ll
+164-107llvm/test/CodeGen/NVPTX/prefetch-inferas-test.ll
+249-0llvm/test/Transforms/InferAddressSpaces/NVPTX/mbarrier-invalid.ll
+110-11llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
+74-0llvm/test/Transforms/InferAddressSpaces/NVPTX/prefetch-tensormap.ll
+1,096-2783 files not shown
+1,101-2819 files

LLVM/project 4502397 — llvm/lib/CodeGen/GlobalISel IRTranslator.cpp, llvm/test/CodeGen/AArch64/GlobalISel irtranslator-dbg-value-const-vreg.ll

[GlobalISel] Preserve more constant DBG_VALUEs by using vregs (#232110)

buildConstDbgValue() can only express a constant as an immediate or as a
reference to the symbol of a defined global. An example that it cannot
encode is:

  extern long g;
  long *p = &g;

as well as thread-locals, vector constants and most constant
expressions.

Since IRTranslator materializes every (used) constant once in the entry
block anyway, we can point the DBG_VALUE to it. This is done after the
whole function is translated, so debug info cannot influence
code generation.

Note that SelectionDAG still drops a debug value in a block that does
not use the constant, because it rematerializes constants per block.

    [2 lines not shown]
DeltaFile
+82-0llvm/test/DebugInfo/AArch64/dbg-value-extern-global-other-block.ll
+70-0llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-dbg-value-const-vreg.ll
+30-1llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+5-4llvm/test/DebugInfo/AArch64/dbg-value-globaladdr-gisel.ll
+187-54 files

LLVM/project 3c87730 — llvm/lib/Target/AMDGPU GCNRegPressure.cpp GCNRegPressure.h, llvm/test/CodeGen/AMDGPU regpressure-bundles.mir

[AMDGPU] Fix downward register-pressure queries after bundles (#232398)
DeltaFile
+30-0llvm/test/CodeGen/AMDGPU/regpressure-bundles.mir
+3-3llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
+4-2llvm/lib/Target/AMDGPU/GCNRegPressure.h
+37-53 files

LLVM/project 4e9e7fe — llvm/test/Transforms/InstCombine lshr-trunc-sext-to-ashr-sext.ll, llvm/test/Transforms/InstCombine/AArch64 lshr-trunc-sext-to-ashr-sext.ll

[InstCombine] Remove target specific sext(trunc(...)) combine tests. NFC (#230049)

Follow up to
https://github.com/llvm/llvm-project/pull/227321#issuecomment-6055905388

t0 already exists in the generic test file, t1 was moved over as
"ashr_signbits". A new RUN line has been added for a datalayout with a
native i32 type to exercise the change in #227321
DeltaFile
+30-7llvm/test/Transforms/InstCombine/lshr-trunc-sext-to-ashr-sext.ll
+0-31llvm/test/Transforms/InstCombine/X86/lshr-trunc-sext-to-ashr-sext.ll
+0-31llvm/test/Transforms/InstCombine/RISCV/lshr-trunc-sext-to-ashr-sext.ll
+0-31llvm/test/Transforms/InstCombine/AArch64/lshr-trunc-sext-to-ashr-sext.ll
+30-1004 files

LLVM/project ef711e4 — flang/lib/Semantics canonicalize-omp.cpp

[flang][OpenMP] Move CanonicalizationOfOmp member definitions out of class

Keep only declarations (and the trivial constructor) in the class, and
define each member function out of line after the class. Each function's
leading comment moves with its implementation. No functional change.

Co-Authored-By: Claude Opus 4 (1M context) <noreply at anthropic.com>
DeltaFile
+310-280flang/lib/Semantics/canonicalize-omp.cpp
+310-2801 files