LLVM/project 7af7cb0llvm/include/llvm/CodeGen SelectionDAGNodes.h, llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp

[LLVM][ConstantFP] Replace uses of isExactlyValue(+/-0.0) with isPosZero/isNegZero. (#198496)
DeltaFile
+4-6llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+4-4llvm/lib/Target/PowerPC/PPCInstrInfo.td
+4-4llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
+4-4llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
+3-3llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+6-0llvm/include/llvm/CodeGen/SelectionDAGNodes.h
+25-2113 files not shown
+48-4119 files

LLVM/project 46ac7a6llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 extractelements-vector-ops-shuffle.ll scatter-vectorize-reorder-non-empty.ll

Revert "[SLP] Support ordered fadd reduction via reduction intrinsics" (#198756)

This caused assertion failures, see discussion on the original PR.

Reverts llvm/llvm-project#189451
DeltaFile
+5-348llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+13-8llvm/test/Transforms/SLPVectorizer/X86/extractelements-vector-ops-shuffle.ll
+9-8llvm/test/Transforms/SLPVectorizer/X86/scatter-vectorize-reorder-non-empty.ll
+14-2llvm/test/Transforms/SLPVectorizer/X86/phi.ll
+41-3664 files

LLVM/project a88c0b1flang/test/Driver intrinsic-module-path.f90

break long RUN: lines
DeltaFile
+48-12flang/test/Driver/intrinsic-module-path.f90
+48-121 files

LLVM/project 5b16893clang/lib/Sema SemaDecl.cpp, clang/test/SemaCXX attr-modular-format.cpp

[libc] Fix modular printf attributes (#194003)

This fixes the validation error related to modular printf missing format attribute in C++ code by moving the validation after the implicit format attribute is added for builtins and known library functions.

This also adds a simple C++ test since the C code did compile successfully because the implicit attributes were added in time for the validation happening for C code.

Assisted-by: codex, reviewed and cross checked, also tested with ATfE,
by me. Modular printf reduced code size from ~37K to ~13K for int-only
printf sample.
DeltaFile
+6-0clang/test/SemaCXX/attr-modular-format.cpp
+4-1clang/lib/Sema/SemaDecl.cpp
+1-1libc/include/llvm-libc-macros/CMakeLists.txt
+11-23 files

LLVM/project ba5d182clang/include/clang/Serialization ASTRecordReader.h, clang/lib/AST ASTContext.cpp Type.cpp

trivial changes
DeltaFile
+20-14clang/lib/Sema/SemaOpenMP.cpp
+18-14clang/lib/AST/ASTContext.cpp
+16-15clang/lib/Sema/SemaTemplate.cpp
+14-11clang/lib/AST/Type.cpp
+14-8clang/lib/AST/ASTDiagnostic.cpp
+11-6clang/include/clang/Serialization/ASTRecordReader.h
+93-6833 files not shown
+202-15239 files

LLVM/project 60f95e2clang/include/clang/AST ASTContext.h, clang/lib/AST ASTContext.cpp ItaniumMangle.cpp

[clang] implement CWG2064: ignore value dependence for decltype

The 'decltype' for a value-dependent (but non-type-dependent) should be known,
so this patch makes them non-opaque instead.

This patch also implements what's neceessary to allow overloading
on pure differences in instantiation dependence, making `std::void_t`
usable for SFINAE purposes.

This also readds a few test cases from da98651, which was a previous attempt
at resolving CWG2064.

Fixes #8740
Fixes #61818
Fixes #190388
DeltaFile
+888-161clang/lib/AST/ASTContext.cpp
+328-12clang/test/SemaTemplate/instantiation-dependence.cpp
+176-96clang/lib/AST/ItaniumMangle.cpp
+100-98clang/lib/Sema/SemaCXXScopeSpec.cpp
+62-57clang/lib/AST/Type.cpp
+88-11clang/include/clang/AST/ASTContext.h
+1,642-43570 files not shown
+2,396-78776 files

LLVM/project 379194cllvm/lib/CodeGen MachineBlockHashInfo.cpp, llvm/test/CodeGen/X86 machine-block-hash.mir

[CodeGen] Always print 64 bit hash value in MachineBlockHashInfoPrinterPass (#198598)

Hash length must be fixed-size. 0x prefix is counted against the width in
format_hex. Increasing from 16 to 18.
DeltaFile
+7-0llvm/test/CodeGen/X86/machine-block-hash.mir
+1-1llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+8-12 files

LLVM/project 79599ballvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 extractelements-vector-ops-shuffle.ll scatter-vectorize-reorder-non-empty.ll

Revert "[SLP] Support ordered fadd reduction via reduction intrinsics"

This reverts commit 230980947083c2309f135c82f10c735b0e06461f.
DeltaFile
+5-348llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+13-8llvm/test/Transforms/SLPVectorizer/X86/extractelements-vector-ops-shuffle.ll
+9-8llvm/test/Transforms/SLPVectorizer/X86/scatter-vectorize-reorder-non-empty.ll
+14-2llvm/test/Transforms/SLPVectorizer/X86/phi.ll
+41-3664 files

LLVM/project b57ab3dllvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/lib/Target/AArch64 AArch64ISelLowering.cpp

[DAGCombiner] Don't fold cheap extracts of multiple use splats (#134120)

For out-of loop sum reductions, the loop vectorizer will emit an initial
reduction vector like this in the preheader, where there might be an
initial value to begin summing from:

```llvm
%v = insertelement <vscale x 4 x i32> zeroinitializer, i32 %initial, i64 0
```

On RISC-V we currently lower this quite poorly with two splats of 0, one
at m1 and one at m2:

    vsetvli a1, zero, e32, m1, ta, ma  
    vmv.v.i v10, 0                     
    vsetvli zero, zero, e32, m1, tu, ma
    vmv.s.x v10, a0                    
    vsetvli a0, zero, e32, m2, ta, ma  
    vmv.v.i v8, 0                      

    [32 lines not shown]
DeltaFile
+6-12llvm/test/CodeGen/RISCV/rvv/insertelt-int-rv64.ll
+7-4llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+4-1llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+17-173 files

LLVM/project e418c93libcxx/test/libcxx-03/containers/associative/map abi.compile.pass.cpp, libcxx/test/libcxx-03/containers/associative/set abi.compile.pass.cpp

[libc++][C++03] Cherry-pick tests from #154559 (#198736)
DeltaFile
+186-0libcxx/test/libcxx-03/containers/associative/map/abi.compile.pass.cpp
+168-0libcxx/test/libcxx-03/containers/associative/set/abi.compile.pass.cpp
+115-0libcxx/test/libcxx-03/containers/sequences/forwardlist/abi.compile.pass.cpp
+106-0libcxx/test/libcxx-03/strings/basic.string/abi.compile.pass.cpp
+97-7libcxx/test/libcxx-03/containers/associative/unord.map/abi.compile.pass.cpp
+48-3libcxx/test/libcxx-03/containers/associative/unord.set/abi.compile.pass.cpp
+720-104 files not shown
+884-1010 files

LLVM/project 6d102f7libcxx/include/__cxx03 locale, libcxx/include/__cxx03/__random piecewise_constant_distribution.h piecewise_linear_distribution.h

[libc++][C++03] Cherry-pick #161049 (#198735)
DeltaFile
+7-11libcxx/include/__cxx03/locale
+3-2libcxx/include/__cxx03/__random/piecewise_constant_distribution.h
+3-2libcxx/include/__cxx03/__random/piecewise_linear_distribution.h
+0-2libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_pointer.pass.cpp
+0-2libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long.pass.cpp
+0-2libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_unsigned_long_long.pass.cpp
+13-2122 files not shown
+13-5428 files

LLVM/project 3a70807llvm/lib/Transforms/Scalar LoopInterchange.cpp, llvm/test/Transforms/LoopInterchange ninf.ll reduction2mem.ll

[LoopInterchange] Drop ninf from instructions involved in interchange (#197923)

Applying loop-interchange can alter the order of operations in reduction
calculations. If these operations involve floating‑point arithmetic, the
results may change as well. If an instruction in the chain has the
`ninf` flag, it means that reordering can produce a poison value, which
may lead to undefined behavior even though the original program is not.
This patch addresses this issue by dropping `ninf` flags from the
instructions involved in the transformation, as discussed in #148851.

Fixes #148851.
DeltaFile
+33-11llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+1-1llvm/test/Transforms/LoopInterchange/ninf.ll
+1-1llvm/test/Transforms/LoopInterchange/reduction2mem.ll
+35-133 files

LLVM/project 6a4708dlibcxx/include/__cxx03 string_view string, libcxx/include/__cxx03/__iterator aliasing_iterator.h

[libc++][C++03] Cherry-pick #130573 (#198734)
DeltaFile
+6-2libcxx/include/__cxx03/string_view
+5-2libcxx/include/__cxx03/string
+4-2libcxx/include/__cxx03/__type_traits/is_char_like_type.h
+4-2libcxx/include/__cxx03/__iterator/aliasing_iterator.h
+0-2libcxx/test/std/strings/basic.string/char.bad.verify.cpp
+19-105 files

LLVM/project 57c6538libcxx/include/__cxx03 __config mutex, libcxx/include/__cxx03/__mutex lock_guard.h mutex.h

[libc++][C++03] Cherry-pick #117497 and #154078 (#198731)
DeltaFile
+55-19libcxx/include/__cxx03/__config
+4-6libcxx/include/__cxx03/__mutex/lock_guard.h
+4-4libcxx/include/__cxx03/__mutex/mutex.h
+3-2libcxx/include/__cxx03/mutex
+0-2libcxx/test/extensions/clang/thread/thread.mutex/thread_safety_lock_guard.pass.cpp
+0-2libcxx/test/extensions/clang/thread/thread.mutex/thread_safety_lock_unlock.pass.cpp
+66-353 files not shown
+66-419 files

LLVM/project 6914853mlir/lib/Conversion/MathToSPIRV MathToSPIRV.cpp, mlir/test/Conversion/MathToSPIRV math-to-fpclassify-spirv.mlir

[mlir][SPIR-V] Convert math.isnormal to spirv.IsNormal (#198607)
DeltaFile
+5-0mlir/test/Conversion/MathToSPIRV/math-to-fpclassify-spirv.mlir
+2-1mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
+7-12 files

LLVM/project fb826a1mlir/include/mlir/Dialect/SPIRV/IR SPIRVArithmeticOps.td, mlir/lib/Dialect/SPIRV/IR SPIRVCanonicalization.cpp

[mlir][SPIR-V] Add ISubBorrow canonicalization patterns (#198637)

Mirror the IAddCarry folder, rewrite isubborrow(x, 0) to <x, 0> via
CompositeConstruct, and fold the all-constant case into a single
spirv.Constant struct
DeltaFile
+27-27mlir/lib/Dialect/SPIRV/IR/SPIRVCanonicalization.cpp
+44-0mlir/test/Dialect/SPIRV/Transforms/canonicalize.mlir
+2-0mlir/include/mlir/Dialect/SPIRV/IR/SPIRVArithmeticOps.td
+73-273 files

LLVM/project 4813043lldb/test/API/functionalities/breakpoint/delayed_breakpoints TestDelayedBreakpoint.py

[lldb] Update TestDelayedBreakpoint test to use the right setting (#198751)

This test should regardless of which setting is the default for delayed
breakpoints.
DeltaFile
+2-0lldb/test/API/functionalities/breakpoint/delayed_breakpoints/TestDelayedBreakpoint.py
+2-01 files

LLVM/project 7097038libc/include unistd.yaml, llvm/lib/Transforms/Scalar LoopInterchange.cpp

Merge branch 'main' into users/kasuga-fj/loop-interchange-drop-ninf
DeltaFile
+48-48libc/include/unistd.yaml
+53-0llvm/test/Transforms/LoopInterchange/non-lcssa-phi-in-inner-exit.ll
+20-9llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+121-573 files

LLVM/project 0d0f43allvm/lib/Transforms/Scalar LoopInterchange.cpp

address review comments
DeltaFile
+5-4llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+5-41 files

LLVM/project 4a54617llvm/lib/Transforms/Scalar LoopInterchange.cpp, llvm/test/Transforms/LoopInterchange non-lcssa-phi-in-inner-exit.ll

[LoopInterchange] Detect unsupported PHIs in inner loop exit block correctly (#194323)

In the legality check phase, `areInnerLoopExitPHIsSupported` inspects
the PHI nodes in the exit block of the inner loop and bail out if
certain unsupported PHI node is found. This functions had several
issues:

- Conflating with the inner loop and the outer loop
- Unnecessarily conservative when LCSSA-chains exist, which will be
handled by `simplifyLCSSA` function

This patch fixes the above issues to detect unsupported PHIs correctly.

Fix #193746
DeltaFile
+53-0llvm/test/Transforms/LoopInterchange/non-lcssa-phi-in-inner-exit.ll
+20-9llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+73-92 files

LLVM/project 5b05100llvm/lib/Transforms/Scalar LoopInterchange.cpp, llvm/test/Transforms/LoopInterchange reduction2mem.ll ninf.ll

[LoopInterchange] Drop ninf from instructions involved in interchange
DeltaFile
+32-11llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+1-1llvm/test/Transforms/LoopInterchange/reduction2mem.ll
+1-1llvm/test/Transforms/LoopInterchange/ninf.ll
+34-133 files

LLVM/project ae734fdllvm/runtimes CMakeLists.txt

Revert "[cmake][runtimes] Pass variable type for passthrough CMake options (#…"

This reverts commit 2e06e008a7b44fab5c0d7fbc4331c696b5e19b06.
DeltaFile
+0-8llvm/runtimes/CMakeLists.txt
+0-81 files

LLVM/project 2e006e9libc/include unistd.yaml

[libc] Change POSIX to posix in unistd.yaml (#198745)

1. In `header.py`, the canonical identifiers for standards are
explicitly defined in lowercase and mapped to their uppercase/pretty
names for display:

```python
    # All the canonical identifiers are in lowercase for easy maintenance.
    # This maps them to the pretty descriptions to generate in header comments.
    LIBRARY_DESCRIPTIONS = {
        "stdc": "Standard C",
        "posix": "POSIX",
        "bsd": "BSD",
        "gnu": "GNU",
        "linux": "Linux",
        "uefi": "UEFI",
        "svid": "SVID",
    }
```  

    [7 lines not shown]
DeltaFile
+48-48libc/include/unistd.yaml
+48-481 files

LLVM/project 246466fflang/test/Driver intrinsic-module-path.f90

Remove stray underscore
DeltaFile
+1-1flang/test/Driver/intrinsic-module-path.f90
+1-11 files

LLVM/project b2e5b74lldb/source/Target Process.cpp, lldb/test/API/functionalities/breakpoint/breakpoint_while_running TestBreakpointWhileRunning.py main.c

[lldb] Fix delayed breakpoints on running processes

Breakpoints should never be delayed on a running process, as they can
immediately affect program execution.
DeltaFile
+26-0lldb/test/API/functionalities/breakpoint/breakpoint_while_running/TestBreakpointWhileRunning.py
+8-0lldb/test/API/functionalities/breakpoint/breakpoint_while_running/main.c
+3-0lldb/test/API/functionalities/breakpoint/breakpoint_while_running/Makefile
+3-0lldb/source/Target/Process.cpp
+40-04 files

LLVM/project 62ce831mlir/test/Transforms mem2reg.mlir, mlir/test/lib/Dialect/Test TestOpDefs.cpp TestOps.td

add more tests
DeltaFile
+140-0mlir/test/Transforms/mem2reg.mlir
+28-0mlir/test/lib/Dialect/Test/TestOpDefs.cpp
+23-0mlir/test/lib/Dialect/Test/TestOps.td
+191-03 files

LLVM/project 3b60d8cflang/test/Driver intrinsic-module-path.f90

Apply suggeston by @tarunprabhu

Co-authored-by: Tarun Prabhu <tarun at lanl.gov>
DeltaFile
+1-1flang/test/Driver/intrinsic-module-path.f90
+1-11 files

LLVM/project 7a6e6dcclang/lib/AST Decl.cpp, clang/test/AST ast-dump-linkage-internal.cpp

Revert "[clang] Give unnamed namespaces internal linkage" (#198738)

This was causing assertion failures:

Assertion `D->getCachedLinkage() == LV.getLinkage()' failed.

see discussion on the original PR.

Reverts llvm/llvm-project#198215
DeltaFile
+30-35clang/lib/AST/Decl.cpp
+3-9clang/test/AST/ast-dump-linkage-internal.cpp
+33-442 files

LLVM/project 27dfeeamlir/lib/Conversion/SPIRVToLLVM SPIRVToLLVM.cpp, mlir/test/Conversion/SPIRVToLLVM gl-ops-to-llvm.mlir

[mlir][SPIRVToLLVM] Add missing conversions for GL ops (#198722)

Add direct LLVM intrinsic lowerings for spirv.GL.Pow, spirv.GL.Fma,
spirv.GL.UMax, spirv.GL.UMin, and spirv.GL.SAbs
DeltaFile
+65-0mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir
+25-1mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
+90-12 files

LLVM/project d56af3ellvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp, llvm/test/CodeGen/X86 known-never-zero.ll

[DAG] isKnownNeverZero - add computeKnownBits fallback DemandedElts handling and tests (#198691)

Add DemandedElts to fallback cases in isKnownNeverZero
Fixes #183041 

Tests:
AND and XOR as fallback cases, can see the improvement after code updated.
DeltaFile
+146-0llvm/test/CodeGen/X86/known-never-zero.ll
+1-1llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+147-12 files