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

LLVM/project d4b41b9mlir/include/mlir/Analysis/DataFlow SparseAnalysis.h

[mlir] Consolidate two implementations of meet (NFC) (#167208)

This patch consolidates two implementations of meet using
"if constexpr", migrating away from the SFINAE-based approach.
DeltaFile
+15-18mlir/include/mlir/Analysis/DataFlow/SparseAnalysis.h
+15-181 files

LLVM/project 6de4f06clang/include/clang/AST DeclBase.h, clang/lib/StaticAnalyzer/Checkers BlockInCriticalSectionChecker.cpp

[clang] Remove redundant typename (NFC) (#167207)

Identified with readability-redundant-typename.
DeltaFile
+1-2clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp
+1-1clang/include/clang/AST/DeclBase.h
+2-32 files

LLVM/project d939823llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/lib/Target/ARM/Disassembler ARMDisassembler.cpp

[Target] Fix misleading indentation (NFC) (#167206)

Identified with readability-misleading-indentation.
DeltaFile
+5-5llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
+2-2llvm/lib/Target/Mips/Mips16InstrInfo.cpp
+1-1llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+1-1llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp
+9-94 files

LLVM/project 3d82370mlir/include/mlir/Dialect/Shard/Transforms Simplifications.h, mlir/lib/Analysis FlatLinearValueConstraints.cpp

[mlir] Use llvm::transform (NFC) (#167205)

Identified with llvm-use-ranges.
DeltaFile
+5-8mlir/lib/Analysis/Presburger/Utils.cpp
+4-4mlir/lib/IR/PatternMatch.cpp
+2-4mlir/include/mlir/Dialect/Shard/Transforms/Simplifications.h
+2-2mlir/lib/Analysis/FlatLinearValueConstraints.cpp
+1-2mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp
+1-1mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
+15-216 files

LLVM/project 6ef3218llvm/docs SPIRVUsage.rst, llvm/lib/Target/SPIRV SPIRVModuleAnalysis.cpp SPIRVSymbolicOperands.td

[SPIRV] Add support for `bfloat16` atomics via the `SPV_INTEL_16bit_atomics` extension (#166257)

This enables support for atomic RMW ops (add, sub, min and max to be
precise) with `bfloat16` operands, via the [SPV_INTEL_16bit_atomics
extension](https://github.com/intel/llvm/pull/20009). It's logically a
successor to #166031 (I should've used a stack), but I'm putting it up
for early review.

---------

Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
DeltaFile
+33-13llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
+34-0llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomicrmw_faddfsub_bfloat16.ll
+28-0llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomicrmw_fminfmax_bfloat16.ll
+3-0llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
+2-0llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
+2-0llvm/docs/SPIRVUsage.rst
+102-131 files not shown
+103-147 files

LLVM/project 5abef40llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll, llvm/test/CodeGen/PowerPC vector-popcnt-128-ult-ugt.ll

Rebase

Created using spr 1.3.7
DeltaFile
+64,053-56,973llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+22,442-22,438llvm/test/CodeGen/PowerPC/vector-popcnt-128-ult-ugt.ll
+40,677-0llvm/test/CodeGen/RISCV/rvv/nontemporal-vp-scalable.ll
+16,411-16,010llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+25,622-0llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-cluster.ll
+23,706-0llvm/test/CodeGen/AMDGPU/memory-legalizer-global-cluster.ll
+192,911-95,42128,252 files not shown
+2,616,667-792,17328,258 files

LLVM/project c3b31baclang-tools-extra/clang-tidy/readability ContainerDataPointerCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Fix `readability-container-data-pointer` check (#165636)

Fix issue in readability-container-data-pointer when the container
expression is a dereference (e.g., `&(*p)[0]`). The previous fix-it
suggested `*p.data()`, which changes semantics because `.` binds tighter
than `*`. The fix now correctly suggests `(*p).data()`.

Closes [#164852](https://github.com/llvm/llvm-project/issues/164852)

---------

Co-authored-by: Baranov Victor <bar.victor.2002 at gmail.com>
DeltaFile
+23-0clang-tools-extra/test/clang-tidy/checkers/readability/container-data-pointer.cpp
+5-2clang-tools-extra/clang-tidy/readability/ContainerDataPointerCheck.cpp
+4-0clang-tools-extra/docs/ReleaseNotes.rst
+32-23 files

LLVM/project e5650cellvm/lib/Target/AArch64 AArch64RegisterInfo.cpp, llvm/test/Transforms/LoopStrengthReduce/AArch64 vscale-fixups.ll

Address review comments
DeltaFile
+9-7llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
+2-3llvm/test/Transforms/LoopStrengthReduce/AArch64/vscale-fixups.ll
+11-102 files

LLVM/project d2eda43llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 vec3-faddv-combine.ll

[AArch64] Decompose faddv with known zero elements
DeltaFile
+59-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+57-0llvm/test/CodeGen/AArch64/vec3-faddv-combine.ll
+116-02 files

LLVM/project de1ad82llvm/lib/Target/AArch64 AArch64RegisterInfo.cpp, llvm/test/CodeGen/AArch64 sve-fixed-length-int-minmax.ll sve-streaming-mode-fixed-length-int-minmax.ll

[AArch64][SVE] Avoid movprfx by reusing register for _UNDEF pseudos.

For predicated SVE instructions where we know that the inactive
lanes are undef, it is better to pick a destination register that
is not unique. This avoids introducing a movprfx to copy a unique
register to the destination operand, which would be needed to comply
with the tied operand constraints.

For example:

  %src1 = COPY $z1
  %src2 = COPY $z2
  %dst = SDIV_ZPZZ_S_UNDEF %p, %src1, %src2

Here it is beneficial to pick $z1 or $z2 as the destination register,
because if it would have chosen a unique register (e.g. $z0) then
the pseudo expand pass would need to insert a MOVPRFX to expand
the operation into:


    [10 lines not shown]
DeltaFile
+71-13llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
+32-48llvm/test/CodeGen/AArch64/sve-fixed-length-int-minmax.ll
+32-48llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-minmax.ll
+30-45llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-arith.ll
+24-36llvm/test/CodeGen/AArch64/sve-fixed-length-fp-minmax.ll
+24-36llvm/test/CodeGen/AArch64/sve-fixed-length-int-shifts.ll
+213-22623 files not shown
+413-52429 files

LLVM/project 2095ea5llvm/include/llvm/TargetParser RISCVISAInfo.h, llvm/include/llvm/Telemetry Telemetry.h

Remove unused <set> and <map> inclusion (#167175)

DeltaFile
+1-2llvm/tools/llvm-lto/llvm-lto.cpp
+2-0llvm/tools/llvm-rc/ResourceFileWriter.h
+0-2llvm/lib/DebugInfo/PDB/Native/PDBStringTableBuilder.cpp
+0-1llvm/include/llvm/TargetParser/RISCVISAInfo.h
+0-1llvm/include/llvm/Telemetry/Telemetry.h
+0-1llvm/lib/Support/DeltaAlgorithm.cpp
+3-718 files not shown
+3-2524 files

LLVM/project 04b0599llvm/include/llvm/DebugInfo/LogicalView/Core LVScope.h, llvm/include/llvm/ExecutionEngine/Orc CompileOnDemandLayer.h RTDyldObjectLinkingLayer.h

Remove unused <array> and <list> inclusion (#167116)

DeltaFile
+0-2llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.h
+0-2llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.h
+0-1llvm/include/llvm/DebugInfo/LogicalView/Core/LVScope.h
+0-1llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
+0-1llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
+0-1llvm/include/llvm/ProfileData/InstrProf.h
+0-88 files not shown
+0-1614 files

LLVM/project 0367711llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/cppcoreguidelines BUILD.gn, llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/misc BUILD.gn

[gn build] Port 8d950d27d686
DeltaFile
+3-3llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/misc/BUILD.gn
+2-2llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/readability/BUILD.gn
+1-1llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/cppcoreguidelines/BUILD.gn
+1-1llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/performance/BUILD.gn
+1-1llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/objc/BUILD.gn
+8-85 files

LLVM/project eef5225llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/bugprone BUILD.gn, llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/cert BUILD.gn

[gn build] Port 00eacc29f009
DeltaFile
+1-0llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/bugprone/BUILD.gn
+0-1llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/cert/BUILD.gn
+1-12 files

LLVM/project d858aadlldb/test/Shell/Recognizer registration-unique.test verbose_trap-objc.test

[NFCI][lldb][test][Recognizer] Fix mismatched C/C++ frontend subtitutions (#167220)

The explicit language specifications for Objective C/C++ don't seem necessary either so I've removed
them too.

I found these by using Clang frontend configuration files containing language-specific options for
both C and C++ (e.g. `-std=c2y` and `-std=c++26`).

Prior-art: 21041c9
DeltaFile
+3-3lldb/test/Shell/Recognizer/registration-unique.test
+1-1lldb/test/Shell/Recognizer/verbose_trap-objc.test
+4-42 files

LLVM/project 6616f07llvm/utils/gn/secondary/llvm/lib/Target/BPF BUILD.gn

[gn] port c940bfd7e621 (BPF SDNodeInfo)
DeltaFile
+7-0llvm/utils/gn/secondary/llvm/lib/Target/BPF/BUILD.gn
+7-01 files

LLVM/project cc3a505clang/lib/CodeGen/Targets X86.cpp, clang/test/CodeGen/X86 mmx-inline-asm-error.c

[SelectionDAG] Fix assertion failure on inline asm register type mismatch (#166615)

Resolves https://github.com/llvm/llvm-project/issues/166057

---------

Co-authored-by: Phoebe Wang <phoebe.wang at intel.com>
DeltaFile
+8-0clang/lib/CodeGen/Targets/X86.cpp
+3-1clang/test/CodeGen/X86/mmx-inline-asm-error.c
+11-12 files

LLVM/project b15e220llvm/test/tools/llc save-stats.ll

[tools][llc] Fix save-stats.ll require aarch64 target (#167218)

A quick fix for the CI failure introduced by
https://github.com/llvm/llvm-project/pull/163967
DeltaFile
+1-0llvm/test/tools/llc/save-stats.ll
+1-01 files

LLVM/project 96a5289llvm/docs ReleaseNotes.md, llvm/docs/CommandGuide llc.rst

[tools][llc] Add `--save-stats` option (#163967)

This patch adds a Clang-compatible `--save-stats` option, to provide an
easy to use way to save LLVM statistics files when working with llc on
the backend.

Like on Clang, one can specify `--save-stats`, `--save-stats=cwd`, and
`--save-stats=obj` with the same semantics and JSON format.

The implementation uses 2 methods `MaybeEnableStats` and
`MaybeSaveStats` called before and after `compileModule` respectively
that externally own the statistics related logic, while `compileModule`
is now required to return the resolved output filename via an output
param.

Note: like on Clang, the pre-existing `--stats` option is not affected.
DeltaFile
+70-4llvm/tools/llc/llc.cpp
+15-0llvm/test/tools/llc/save-stats.ll
+6-0llvm/docs/CommandGuide/llc.rst
+1-0llvm/docs/ReleaseNotes.md
+92-44 files

LLVM/project 93d445cllvm/include/llvm/CodeGen TargetInstrInfo.h, llvm/lib/CodeGen MachineSink.cpp

[PostRASink] Add target hook shouldPostRASink (#167182)

DeltaFile
+4-0llvm/lib/CodeGen/MachineSink.cpp
+3-0llvm/include/llvm/CodeGen/TargetInstrInfo.h
+7-02 files

LLVM/project 8cc49fbcompiler-rt/test lit.common.cfg.py

Revert "Reapply "[compiler-rt] Default to Lit's Internal Shell""

This reverts commit 4b6a597230020282fe94ee6f476a3aad45fbe9aa.

This broke premerge and maybe one PPC bot:
1. https://lab.llvm.org/staging/#/builders/192/builds/10157
2. https://lab.llvm.org/buildbot/#/builders/95/builds/19044
DeltaFile
+3-5compiler-rt/test/lit.common.cfg.py
+3-51 files

LLVM/project 1180064mlir/include/mlir/Conversion Passes.td, mlir/include/mlir/Conversion/ArithToAPFloat ArithToAPFloat.h

walk instead of dialect conversion
DeltaFile
+87-96mlir/lib/Conversion/ArithToAPFloat/ArithToAPFloat.cpp
+88-0mlir/test/Conversion/ArithToApfloat/arith-to-apfloat.mlir
+12-31mlir/test/Integration/Dialect/Arith/CPU/test-apfloat-emulation.mlir
+22-14mlir/lib/ExecutionEngine/APFloatWrappers.cpp
+1-8mlir/include/mlir/Conversion/ArithToAPFloat/ArithToAPFloat.h
+6-3mlir/include/mlir/Conversion/Passes.td
+216-1526 files

LLVM/project 1b3eaacllvm/lib/ExecutionEngine/Orc/TargetProcess SimpleExecutorMemoryManager.cpp, llvm/lib/Target/NVPTX NVPTXISelLowering.cpp

[llvm] Remove unused local variables (NFC) (#167185)

Identified with bugprone-unused-local-non-trivial-variable.
DeltaFile
+0-2llvm/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.cpp
+0-2llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
+0-2llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
+0-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+0-74 files

LLVM/project 5361e10clang/lib/Analysis/LifetimeSafety Facts.cpp

[LifetimeSafety] Use StringMap::contains (NFC) (#167186)

Identified with readability-container-contains.
DeltaFile
+1-2clang/lib/Analysis/LifetimeSafety/Facts.cpp
+1-21 files

LLVM/project 3ce5df4llvm/lib/Transforms/Vectorize VPlan.cpp

[Vectorize] Remove a redundant declaration (NFC) (#167188)

EnableVPlanNativePath is declared in LoopVectorizationPlanner.h.

Identified with readability-redundant-declaration.
DeltaFile
+0-4llvm/lib/Transforms/Vectorize/VPlan.cpp
+0-41 files

LLVM/project de9b2afmlir/include/mlir/Conversion Passes.td, mlir/include/mlir/Conversion/ArithToAPFloat ArithToAPFloat.h

walk instead of dialect conversion
DeltaFile
+72-95mlir/lib/Conversion/ArithToAPFloat/ArithToAPFloat.cpp
+12-31mlir/test/Integration/Dialect/Arith/CPU/test-apfloat-emulation.mlir
+38-0mlir/test/Conversion/ArithToApfloat/arith-to-apfloat.mlir
+6-8mlir/lib/ExecutionEngine/APFloatWrappers.cpp
+6-3mlir/include/mlir/Conversion/Passes.td
+1-8mlir/include/mlir/Conversion/ArithToAPFloat/ArithToAPFloat.h
+135-1456 files

LLVM/project 0ead633clang-tools-extra/clang-tidy/cppcoreguidelines ProBoundsAvoidUncheckedContainerAccessCheck.cpp ProBoundsAvoidUncheckedContainerAccess.cpp, clang-tools-extra/clang-tidy/performance UnnecessaryCopyInitializationCheck.cpp UnnecessaryCopyInitialization.cpp

Merge branch 'users/kevinsala/omp-dyn-groupprivate-codegen-pr' into users/kevinsala/omp-dyn-groupprivate-rt-pr
DeltaFile
+393-0clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitializationCheck.cpp
+0-393clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp
+263-0clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsAvoidUncheckedContainerAccessCheck.cpp
+0-262clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsAvoidUncheckedContainerAccess.cpp
+179-0clang-tools-extra/clang-tidy/readability/ConvertMemberFunctionsToStaticCheck.cpp
+0-178clang-tools-extra/clang-tidy/readability/ConvertMemberFunctionsToStatic.cpp
+835-833623 files not shown
+5,386-4,288629 files