LLVM/project f734cebllvm/lib/Target/LoongArch LoongArchTargetTransformInfo.cpp LoongArchTargetTransformInfo.h, llvm/test/CodeGen/LoongArch expandmemcmp.ll expandmemcmp-optsize.ll

[LoongArch] Initial implementation for `enableMemCmpExpansion` hook (#166526)

After overriding `TargetTransformInfo::enableMemCmpExpansion` in this
commit, `MergeICmps` and `ExpandMemCmp` passes will be enabled on
LoongArch.
DeltaFile
+2,594-715llvm/test/CodeGen/LoongArch/expandmemcmp.ll
+1,619-527llvm/test/CodeGen/LoongArch/expandmemcmp-optsize.ll
+18-9llvm/test/CodeGen/LoongArch/memcmp.ll
+22-1llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp
+2-1llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.h
+4,255-1,2535 files

LLVM/project d94e2d1mlir/lib/Conversion/ArithToAPFloat ArithToAPFloat.cpp

address the rest of the comments
DeltaFile
+62-67mlir/lib/Conversion/ArithToAPFloat/ArithToAPFloat.cpp
+62-671 files

LLVM/project b3d6264.github new-prs-labeler.yml, .github/workflows new-prs.yml

Revert "[Github] Update PR labeller to v6.0.1 (#167246)"

This reverts commit 10da6ab5362158c1f63e0c8eaa893c55b49dc3f4.

This also caused workflow failures.
1. https://github.com/llvm/llvm-project/actions/runs/19218607216
DeltaFile
+812-1,130.github/new-prs-labeler.yml
+1-1.github/workflows/new-prs.yml
+813-1,1312 files

LLVM/project 6c02bcb.github/workflows build-ci-container-windows.yml

[Github] Make Windows container use zstd (#167022)

This enables much faster image unpack times. We benchmarked 20-30%
improvements when testing this initially. Use skopeo to copy the image
as it just works over the docker-archive/OCI container formats and does
not need to unpack the image to upload it.
DeltaFile
+10-6.github/workflows/build-ci-container-windows.yml
+10-61 files

LLVM/project 10da6ab.github new-prs-labeler.yml, .github/workflows new-prs.yml

[Github] Update PR labeller to v6.0.1 (#167246)

This was reverted earlier due to me not realizing that the config format
also changed. This patch updates the config to match the new format and
bumps the version.
DeltaFile
+1,130-812.github/new-prs-labeler.yml
+1-1.github/workflows/new-prs.yml
+1,131-8132 files

LLVM/project fa0f2d2mlir/lib/Dialect/Tosa/IR TosaOps.cpp, mlir/test/Dialect/Tosa invalid.mlir

[mlir][tosa] Fix crash in `tosa.concat` verifier (#165966)

The `tosa.concat` verifier crashed when the output rank did not match
the input rank. This PR adds a proper check and error emission to
prevent the crash. Fixes #159742.
DeltaFile
+8-0mlir/test/Dialect/Tosa/invalid.mlir
+6-1mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
+14-12 files

LLVM/project fd004e2llvm/lib/Target/LoongArch LoongArchTargetTransformInfo.cpp

remove TODO
DeltaFile
+0-2llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp
+0-21 files

LLVM/project 3cc959dllvm/lib/Target/LoongArch LoongArchTargetTransformInfo.cpp

enable tail expansion which will reduce branches like aarch64/riscv
DeltaFile
+7-3llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp
+7-31 files

LLVM/project 25bbbf0llvm/test/CodeGen/LoongArch expandmemcmp.ll expandmemcmp-optsize.ll

rebase && update tests
DeltaFile
+2,594-715llvm/test/CodeGen/LoongArch/expandmemcmp.ll
+1,619-527llvm/test/CodeGen/LoongArch/expandmemcmp-optsize.ll
+18-9llvm/test/CodeGen/LoongArch/memcmp.ll
+4,231-1,2513 files

LLVM/project d62b0adllvm/lib/Target/LoongArch LoongArchTargetTransformInfo.cpp LoongArchTargetTransformInfo.h

[LoongArch] Initial implementation for `enableMemCmpExpansion` hook

After overriding `TargetTransformInfo::enableMemCmpExpansion`
in this commit, `MergeICmps` and `ExpandMemCmp` passes will be
enabled on LoongArch.
DeltaFile
+20-1llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp
+2-1llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.h
+22-22 files

LLVM/project 5ba0c7cllvm/test/CodeGen/LoongArch expandmemcmp.ll expandmemcmp-optsize.ll

[LoongArch][NFC] Pre-commit tests for memcmp expansion (#166718)

Test cases are similar as riscv.
DeltaFile
+1,227-0llvm/test/CodeGen/LoongArch/expandmemcmp.ll
+1,147-0llvm/test/CodeGen/LoongArch/expandmemcmp-optsize.ll
+2,374-02 files

LLVM/project 836919bclang/lib/Format WhitespaceManager.cpp, clang/unittests/Format FormatTest.cpp

[clang-format] Fix a crash in AlignArrayOfStructures (#167099)

Fixes #157405
DeltaFile
+13-0clang/unittests/Format/FormatTest.cpp
+4-1clang/lib/Format/WhitespaceManager.cpp
+17-12 files

LLVM/project b644bfbmlir/include/mlir/Dialect/Func/Utils Utils.h, mlir/lib/Conversion/ArithToAPFloat ArithToAPFloat.cpp

address comments
DeltaFile
+14-16mlir/lib/Conversion/ArithToAPFloat/ArithToAPFloat.cpp
+4-4mlir/include/mlir/Dialect/Func/Utils/Utils.h
+4-3mlir/lib/Dialect/Func/Utils/Utils.cpp
+22-233 files

LLVM/project f0e6be1llvm/include/llvm/Support LEB128.h, llvm/lib/Support LEB128.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.5-bogner
DeltaFile
+92-1llvm/lib/Support/LEB128.cpp
+86-0llvm/unittests/Support/LEB128Test.cpp
+28-0llvm/include/llvm/Support/LEB128.h
+206-13 files

LLVM/project 930a664mlir/test/Integration/Dialect/Arith/CPU test-apfloat-emulation.mlir

improve test case
DeltaFile
+24-9mlir/test/Integration/Dialect/Arith/CPU/test-apfloat-emulation.mlir
+24-91 files

LLVM/project d406c15llvm/lib/Transforms/Vectorize VPlanConstruction.cpp LoopVectorize.cpp

[VPlan] Use VPInstructionWithType for casts in VPlan0. (NFC)

Use VPInstructionWithType for casts in VPlan0, to enable additional
analysis/transforms on VPlan0, and more accurate modeling in VPlan0.
DeltaFile
+10-4llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+2-1llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+12-52 files

LLVM/project 700b77bllvm/lib/Transforms/InstCombine InstructionCombining.cpp, llvm/test/Transforms/InstCombine sink-dereferenceable-assume.ll

[InstCombine] Don't sink if it would require dropping deref assumptions. (#166945)

Currently sinking assumes in instcombine drops assumes if they would
prevent sinking. Removing dereferenceable assumptions earlier on can
inhibit vectorization of early-exit loops in practice.

Special-case deferenceable assumptions so that they block sinking. This
can be combined with a separate change to drop dereferencebale
assumptions after vectorization: https://clang.godbolt.org/z/jGqcx3sbs

PR: https://github.com/llvm/llvm-project/pull/166945

DeltaFile
+99-7llvm/test/Transforms/InstCombine/sink-dereferenceable-assume.ll
+46-56llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
+9-2llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+154-653 files

LLVM/project 8e0d7d8clang/lib/Analysis/LifetimeSafety Origins.cpp, clang/test/Sema warn-lifetime-safety.cpp

lifetime-safety-paren
DeltaFile
+31-0clang/test/Sema/warn-lifetime-safety.cpp
+17-0clang/unittests/Analysis/LifetimeSafetyTest.cpp
+2-0clang/lib/Analysis/LifetimeSafety/Origins.cpp
+50-03 files

LLVM/project 63fe60fllvm/utils/gn/secondary/bolt/lib/Rewrite BUILD.gn

[gn build] Port f2c50f930540
DeltaFile
+1-0llvm/utils/gn/secondary/bolt/lib/Rewrite/BUILD.gn
+1-01 files

LLVM/project f2c50f9bolt/include/bolt/Rewrite MetadataRewriters.h, bolt/lib/Rewrite RSeqRewriter.cpp RewriteInstance.cpp

[BOLT] Support restartable sequences in tcmalloc (#167195)

Add `RSeqRewriter` to detect code references from `__rseq_cs` section
and ignore function referenced from that section. Code references are
detected via relocations (static or dynamic).

Note that the abort handler is preceded by a 4-byte signature byte
sequence and we cannot relocate the handler without that the signature,
otherwise the application may crash. Thus we are ignoring the function,
i.e. making sure it's not separated from its signature.
DeltaFile
+72-0bolt/lib/Rewrite/RSeqRewriter.cpp
+38-0bolt/test/X86/rseq.s
+4-2bolt/include/bolt/Rewrite/MetadataRewriters.h
+2-0bolt/lib/Rewrite/RewriteInstance.cpp
+1-0bolt/lib/Rewrite/CMakeLists.txt
+117-25 files

LLVM/project 4023bebmlir/docs LangRef.md

Fix typo in LangRef.md regarding regions (#167242)

DeltaFile
+1-1mlir/docs/LangRef.md
+1-11 files

LLVM/project 818b350clang/lib/Analysis/LifetimeSafety Origins.cpp, clang/test/Sema warn-lifetime-safety.cpp

lifetime-safety-paren
DeltaFile
+24-0clang/test/Sema/warn-lifetime-safety.cpp
+17-0clang/unittests/Analysis/LifetimeSafetyTest.cpp
+2-0clang/lib/Analysis/LifetimeSafety/Origins.cpp
+43-03 files

LLVM/project 0daf453clang/lib/Analysis/LifetimeSafety Origins.cpp

lifetime-safety-paren
DeltaFile
+2-0clang/lib/Analysis/LifetimeSafety/Origins.cpp
+2-01 files

LLVM/project b90459cclang/include/clang/Analysis/Analyses/LifetimeSafety FactsGenerator.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp

lifetime-safety-cxx-conditional
DeltaFile
+53-0clang/test/Sema/warn-lifetime-safety.cpp
+17-0clang/test/Sema/warn-lifetime-safety-dataflow.cpp
+8-0clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+1-2clang/unittests/Analysis/LifetimeSafetyTest.cpp
+1-0clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
+80-25 files

LLVM/project c10b25alldb/test/API/functionalities/breakpoint/breakpoint_locations/after_rebuild TestLocationsAfterRebuild.py

[lldb] Disable TestLocationsAfterRebuild for remote targets (#167239)

#160199 broke buildbots `lldb-remote-linux-ubuntu` and
`lldb-remote-linux-win`.
This patch must make these buildbots green for now.
DeltaFile
+2-1lldb/test/API/functionalities/breakpoint/breakpoint_locations/after_rebuild/TestLocationsAfterRebuild.py
+2-11 files

LLVM/project acf52a7clang/include/clang/Analysis/Analyses/LifetimeSafety FactsGenerator.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp

lifetime-safety-cxx-conditional
DeltaFile
+53-0clang/test/Sema/warn-lifetime-safety.cpp
+17-0clang/test/Sema/warn-lifetime-safety-dataflow.cpp
+7-0clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+1-2clang/unittests/Analysis/LifetimeSafetyTest.cpp
+1-0clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
+79-25 files

LLVM/project 1c5ea66llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 faddv.ll

[AArch64] Decompose faddv with known zero elements

FADDV is matched into FADDPv4f32 + FADDPv2i32p but this can be relaxed
when one element (usually the 4th) or more are known to be zero.

Before:
movi d1, #0000000000000000
mov v0.s[3], v1.s[0]
faddp v0.4s, v0.4s, v0.4s
faddp s0, v0.2s

After:
mov s1, v0.s[2]
faddp s0, v0.2s
fadd s0, s0, s1
DeltaFile
+75-0llvm/test/CodeGen/AArch64/faddv.ll
+38-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+113-02 files

LLVM/project ba384f7clang/include/clang/Analysis/Analyses/LifetimeSafety FactsGenerator.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp

lifetime-safety-cxx-conditional
DeltaFile
+53-0clang/test/Sema/warn-lifetime-safety.cpp
+17-0clang/test/Sema/warn-lifetime-safety-dataflow.cpp
+7-0clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+1-0clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
+78-04 files

LLVM/project c8f168cllvm/include/llvm/SandboxIR Instruction.h, llvm/lib/SandboxIR Instruction.cpp

[SandboxIR] Remove tight-coupling with LLVM's SwitchInst::CaseHandle (#167093)

SandboxIR's SwitchInst CaseHandle was relying on LLVM IR's
SwitchInst::CaseHandleImpl template, which may call private functions of
SandboxIR's SwitchInst. This creates a dependency cycle which is against
the design principles of Sandbox IR.

The issue was exposed by:
https://github.com/llvm/llvm-project/pull/166842 Thanks to @aengelke for
raising the issue.
DeltaFile
+92-21llvm/include/llvm/SandboxIR/Instruction.h
+27-0llvm/lib/SandboxIR/Instruction.cpp
+119-212 files

LLVM/project 36e9a0bllvm/lib/Target/AArch64/GISel AArch64InstructionSelector.cpp, llvm/test/CodeGen/AArch64 neon-mov.ll

[AArch64][GlobalISel] Correct instructions for 64bit fneg constant vectors. (#166537)

This code was assuming that the vectors were 128bit. Add handling for
64bit vectors. Some of the tests do not apply yet due to not matching
non-splat vectors.

Fixes #166400
DeltaFile
+106-22llvm/test/CodeGen/AArch64/neon-mov.ll
+14-4llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
+120-262 files