LLVM/project 431dea9llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass-fpext.ll

InstCombine: Infer nnan and ninf on fpext (#177768)

Teach SimplifyDemandedFPClass to do this, although this is
not yet applied directly to the cast.
DeltaFile
+12-12llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fpext.ll
+4-3llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+16-152 files

LLVM/project d77ced0llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass-canonicalize.ll

InstCombine: Infer nnan/ninf on canonicalize (#177771)

DeltaFile
+22-12llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-canonicalize.ll
+8-0llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+30-122 files

LLVM/project 60b1e95llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass-log.ll simplify-demanded-fpclass.ll

InstCombine: Infer nnan and ninf flags on log intrinsics (#177767)

Use the new common utility function to try fold to constant
or introduce flags.
DeltaFile
+8-8llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-log.ll
+2-2llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+2-2llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
+12-123 files

LLVM/project e9aae6allvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass-exp.ll simplify-demanded-fpclass.ll

InstCombine: Infer nnan and ninf flags on exp intrinsics (#177766)

Use the new common utility function to try fold to constant
or introduce flags.
DeltaFile
+11-11llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-exp.ll
+3-3llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
+2-2llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+16-163 files

LLVM/project 51a262fllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/llvm BUILD.gn

[gn build] Port 49d464ccaf44
DeltaFile
+1-0llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/llvm/BUILD.gn
+1-01 files

LLVM/project 94b90c6llvm/utils/gn/secondary/libcxx/include BUILD.gn

[gn build] Port 9311996261e1
DeltaFile
+1-0llvm/utils/gn/secondary/libcxx/include/BUILD.gn
+1-01 files

LLVM/project 8fce1d7llvm/lib/Target/X86 X86ISelDAGToDAG.cpp, llvm/test/CodeGen/X86 extract-lowbits.ll

[X86] Prefer andl to andb to save one byte encoding when using with bzhi or bextr (#86921)

DeltaFile
+18-3llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
+2-2llvm/test/CodeGen/X86/extract-lowbits.ll
+20-52 files

LLVM/project 696572cllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 vec_list_bias-inseltpoison.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+96-14llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+12-13llvm/test/Transforms/SLPVectorizer/X86/vec_list_bias-inseltpoison.ll
+108-272 files

LLVM/project 50f1bd8libcxx/docs/ReleaseNotes 23.rst, libcxx/include/__algorithm ranges_fold.h

optimize fold_left_with_iter
DeltaFile
+11-5libcxx/include/__algorithm/ranges_fold.h
+4-0libcxx/docs/ReleaseNotes/23.rst
+15-52 files

LLVM/project 21fdd49clang/bindings/python/clang cindex.py, clang/bindings/python/tests/cindex test_code_completion.py

[libclang/python] Move SPELLING_CACHE into CodeCompletion (#177586)

This adresses point 2 from
https://github.com/llvm/llvm-project/issues/156680.

Also add a dummy object that serves as an alias to `SPELLING_CACHE`,
used to replicate the old behavior and throw a `DeprecationWarning`.
DeltaFile
+58-32clang/bindings/python/clang/cindex.py
+22-0clang/bindings/python/tests/cindex/test_code_completion.py
+5-0clang/docs/ReleaseNotes.rst
+85-323 files

LLVM/project 9311996libcxx/include algorithm, libcxx/include/__algorithm ranges_shift_left.h shift_left.h

[libc++][ranges] implement `ranges::shift_left` (#83231)

Implement the `ranges::shift_left` algorithm from
[P2440R1](https://wg21.link/P2440R1).

Closes: #134061

---------

Co-authored-by: Hui Xie <hui.xie1990 at gmail.com>
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
DeltaFile
+371-0libcxx/test/std/algorithms/alg.modifying.operations/alg.shift/ranges.shift_left.pass.cpp
+73-0libcxx/include/__algorithm/ranges_shift_left.h
+30-13libcxx/include/__algorithm/shift_left.h
+28-0libcxx/test/libcxx/algorithms/alg.modifying.operations/alg.shift/assert.shift_left.pass.cpp
+8-0libcxx/include/algorithm
+3-1libcxx/test/std/algorithms/ranges_robust_against_proxy_iterators.pass.cpp
+513-147 files not shown
+527-1613 files

LLVM/project 778a249mlir/include/mlir/Dialect/Affine Utils.h, mlir/include/mlir/Dialect/Affine/TransformOps AffineTransformOps.td

[mlir][Affine] affine-super-vectorize transform op (#177755)

Added an operation in the transform dialect to apply the
affine-super-vectorize pass locally.
The operation vectorizes the loops that are children of the provided
operation, itself included.
Also added a test file verifying the operation behaves.
DeltaFile
+129-0mlir/test/Dialect/Affine/SuperVectorize/transform_op.mlir
+33-26mlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp
+40-0mlir/lib/Dialect/Affine/TransformOps/AffineTransformOps.cpp
+34-0mlir/include/mlir/Dialect/Affine/TransformOps/AffineTransformOps.td
+5-0mlir/include/mlir/Dialect/Affine/Utils.h
+241-265 files

LLVM/project a06a0e2clang-tools-extra/clang-tidy/bugprone MacroParenthesesCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Improve diagnostics of bugprone-macro-parentheses (#177841)

Closes #177594
DeltaFile
+25-5clang-tools-extra/clang-tidy/bugprone/MacroParenthesesCheck.cpp
+2-3clang-tools-extra/test/clang-tidy/checkers/bugprone/macro-parentheses-cmdline.cpp
+4-0clang-tools-extra/docs/ReleaseNotes.rst
+31-83 files

LLVM/project ac88f7bmlir/include/mlir-c BuiltinAttributes.h, mlir/include/mlir/Bindings/Python IRAttributes.h

[mlir][python] Support Arbitrary Precision Integers in MLIR C API and Python Bindings (#177733)

This PR extends the MLIR C API and Python bindings to support
**arbitrary-precision integers (`APInt`)**, overcoming the previous
limitation where `IntegerAttr` values were restricted to 64 bits.

Cryptographic applications often require integer types much larger than
standard machine words (e.g., the 256-bit modulus for the BN254 curve).
Previously, attempting to bind these values resulted in truncation or
errors. This PR exposes the underlying word-based `APInt` structure via
the C API and updates the Python bindings to seamlessly handle Python's
arbitrary-precision integers.
DeltaFile
+82-8mlir/lib/Bindings/Python/IRAttributes.cpp
+57-0mlir/test/python/ir/attributes.py
+26-0mlir/include/mlir-c/BuiltinAttributes.h
+23-0mlir/lib/CAPI/IR/BuiltinAttributes.cpp
+1-1mlir/include/mlir/Bindings/Python/IRAttributes.h
+189-95 files

LLVM/project 701b08eclang/test/CIR/CodeGen/CUDA filter-decl.cu

fix nit test case
DeltaFile
+1-1clang/test/CIR/CodeGen/CUDA/filter-decl.cu
+1-11 files

LLVM/project 32dcaa6llvm/lib/Target/AMDGPU GCNSubtarget.h AMDGPUSubtarget.h

[NFCI][AMDGPU] Use `GET_SUBTARGETINFO_MACRO` in `GCNSubtarget.h`
DeltaFile
+9-295llvm/lib/Target/AMDGPU/GCNSubtarget.h
+18-44llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
+14-11llvm/lib/Target/AMDGPU/R600Subtarget.h
+7-5llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+3-3llvm/lib/Target/AMDGPU/R600Processors.td
+1-1llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp
+52-3592 files not shown
+53-3628 files

LLVM/project 2192fb2clang/lib/CIR/CodeGen CIRGenModule.cpp

le format monseiur
DeltaFile
+3-4clang/lib/CIR/CodeGen/CIRGenModule.cpp
+3-41 files

LLVM/project 3d2b769clang/lib/CIR/CodeGen CIRGenModule.cpp TargetInfo.cpp, clang/test/CIR/CodeGen/CUDA filter-decl.cu nvptx-basic.cu

[CIR][CUDA] Add NVPTX target info and CUDA/HIP global emission filtering
DeltaFile
+66-0clang/lib/CIR/CodeGen/CIRGenModule.cpp
+37-0clang/test/CIR/CodeGen/CUDA/filter-decl.cu
+30-0clang/test/CIR/CodeGen/CUDA/nvptx-basic.cu
+19-0clang/lib/CIR/CodeGen/TargetInfo.cpp
+4-0clang/lib/CIR/CodeGen/CIRGenModule.h
+2-0clang/lib/CIR/CodeGen/TargetInfo.h
+158-06 files

LLVM/project 402ee51llvm/lib/Target/AMDGPU SILowerControlFlow.cpp, llvm/test/CodeGen/AMDGPU si-lower-control-flow-preserve-dom-tree.mir

[AMDGPU] Fix DomTree preservation in SILowerControlFlow when nodes are removed (#176691)

I would think the "applyUpdates" API should also take care of deleting
the nodes from the analyses objects but this does not seem to be the
case. https://godbolt.org/z/38a7rfzjd shows an example where
SILowerControlFlow removes a basic block which is not removed in the
Post dominator tree.
DeltaFile
+65-0llvm/test/CodeGen/AMDGPU/si-lower-control-flow-preserve-dom-tree.mir
+5-0llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
+70-02 files

LLVM/project cf9adf5clang/lib/Format FormatTokenLexer.cpp, clang/unittests/Format TokenAnnotatorTest.cpp FormatTestJava.cpp

[clang-format] Handle \\""" at end of Java text block (#177736)

DeltaFile
+8-3clang/lib/Format/FormatTokenLexer.cpp
+9-0clang/unittests/Format/TokenAnnotatorTest.cpp
+7-0clang/unittests/Format/FormatTestJava.cpp
+24-33 files

LLVM/project 3c4ce40llvm/lib/Target/RISCV RISCVInstrInfoV.td, llvm/lib/Target/RISCV/Disassembler RISCVDisassembler.cpp

[RISCV] Use decodeVMaskReg for VMaskCarryInOp. NFC (#177742)

After #177678 we don't need DecodeVMV0RegisterClass to reject vm=1
cases. All instructions that use VMaskCarryInOp have set vm=0 in their
tablegen classes.
DeltaFile
+0-10llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
+4-0llvm/lib/Target/RISCV/RISCVInstrInfoV.td
+4-102 files

LLVM/project 0515a5dllvm/lib/Target/AArch64 MachineSMEABIPass.cpp

[AArch64][SME] Use LibcallLoweringInfo in the MachineSMEABIPass (#177762)

This adds a new helper to add calls to SME routines (addSMELibCall) and
check they are using the expected CC.

---------

Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
DeltaFile
+50-30llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
+50-301 files

LLVM/project f255beclibc/shared/math tanf.h, libc/src/__support/math tanf.h CMakeLists.txt

[libc][math] Refactor tanf implementation to header-only in src/__support/math folder. (#177730)

Part of #147386

in preparation for:
https://discourse.llvm.org/t/rfc-make-clang-builtin-math-functions-constexpr-with-llvm-libc-to-support-c-23-constexpr-math-functions/86450
DeltaFile
+164-0libc/src/__support/math/tanf.h
+2-138libc/src/math/generic/tanf.cpp
+17-8utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+23-0libc/shared/math/tanf.h
+16-0libc/src/__support/math/CMakeLists.txt
+1-10libc/src/math/generic/CMakeLists.txt
+223-1563 files not shown
+226-1569 files

LLVM/project 49d464cclang-tools-extra/clang-tidy/llvm UseVectorUtilsCheck.cpp UseVectorUtilsCheck.h, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Add llvm-use-vector-utils (#177722)

This new check suggests the following replacements:
* `llvm::to_vector(llvm::map_range(X, Fn))` -> `llvm::map_to_vector(X,
Fn)`
* `llvm::to_vector(llvm::make_filter_range(X, Fn))` ->
`llvm::filter_to_vector(X, Fn)`
and add the `SmallVectorExtras.h` include when necessary.

The check is called `vector-utils` because we may want to handle more
cases in the future, like turning explicit calls to SmallVector
constructor to `llvm::to_vector` (which lives in `SmallVector.h`, not
`SmallVectorExtras.h`).

Assisted-by: claude
DeltaFile
+149-0clang-tools-extra/test/clang-tidy/checkers/llvm/use-vector-utils.cpp
+97-0clang-tools-extra/clang-tidy/llvm/UseVectorUtilsCheck.cpp
+42-0clang-tools-extra/clang-tidy/llvm/UseVectorUtilsCheck.h
+31-0clang-tools-extra/docs/clang-tidy/checks/llvm/use-vector-utils.rst
+7-0clang-tools-extra/docs/ReleaseNotes.rst
+2-0clang-tools-extra/clang-tidy/llvm/LLVMTidyModule.cpp
+328-02 files not shown
+330-08 files

LLVM/project 24be429llvm/lib/Target/SystemZ SystemZISelLowering.cpp

SystemZ: Use correctly offset MachinePointerInfo in CC lowering (#177793)

Previously this was just using the original base address as
the pointer info.
DeltaFile
+5-3llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+5-31 files

LLVM/project 8387237lldb/include/lldb/API SBDebugger.h

[lldb] improve Doxygen rendering of an existing comment (#177785)

This commit improves the way how the example code attached to
`SBDebugger::GetSetting` method is rendered by Doxygen.

Co-authored-by: Matej Košík <matej.kosik at codasip.com>
DeltaFile
+2-0lldb/include/lldb/API/SBDebugger.h
+2-01 files

LLVM/project f7d7897clang Maintainers.rst

[clang] Add NagyDonat to the Clang Static Analyzer maintainers (#174595)

I was nominated for this role at
https://discourse.llvm.org/t/nominate-new-static-analyzer-maintainers/89362
DeltaFile
+4-0clang/Maintainers.rst
+4-01 files

LLVM/project 1650782llvm/lib/Transforms/Vectorize LoopVectorize.cpp VPlanConstruction.cpp

[VPlan] Share and re-use logic to find FindIVResult (NFC).

Move logic to look for FindIVResult pattern out of LoopVectorize to
allow for re-use in current code and follow-up patches.
DeltaFile
+3-35llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+17-8llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+22-0llvm/lib/Transforms/Vectorize/VPlanUtils.h
+11-0llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
+53-434 files

LLVM/project fe71ea4mlir/lib/Dialect/XeGPU/Transforms XeGPUBlocking.cpp, mlir/test/Dialect/XeGPU xegpu-blocking.mlir

[MLIR][XeGPU] Preserve Leading dimension when blocking rank-sensitive operations (#177489)

This PR preserves leading dimensions for
xegpu.load_matrix/store_matrix/atomic_rmw/convert_layout, and vector
operations which have impact on shapes:
broadcast/multi-reduction/shape_cast/transpose.
Rank-sensitive operations are operations whose semantics depend on the
tensor rank (and consequently its shape), and therefore must not alter
the input tile rank or shape, such as by dropping leading dimensions.
DeltaFile
+18-13mlir/lib/Dialect/XeGPU/Transforms/XeGPUBlocking.cpp
+3-3mlir/test/Dialect/XeGPU/xegpu-blocking.mlir
+21-162 files

LLVM/project 460e19bllvm/lib/Target/SystemZ SystemZISelLowering.cpp

SystemZ: Use correctly offset MachinePointerInfo in CC lowering

Previously this was just using the original base address as
the pointer info.
DeltaFile
+5-3llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+5-31 files