[all-commits] [llvm/llvm-project] 55531e: [LICM] Add test reassociating ADD nuw nsw.

Qinkun Bao via All-commits all-commits at lists.llvm.org
Sun May 18 13:58:20 PDT 2025


  Branch: refs/heads/users/qinkunbao/spr/nfci-avoid-adding-duplicated-specialcaselistsections
  Home:   https://github.com/llvm/llvm-project
  Commit: 55531e33d3114e63ef7d2079896fb80243061395
      https://github.com/llvm/llvm-project/commit/55531e33d3114e63ef7d2079896fb80243061395
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M llvm/test/Transforms/LICM/hoist-binop.ll

  Log Message:
  -----------
  [LICM] Add test reassociating ADD nuw nsw.


  Commit: 7108deca41f1ef05e399287bb5b37301e484123d
      https://github.com/llvm/llvm-project/commit/7108deca41f1ef05e399287bb5b37301e484123d
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M llvm/lib/MC/MCContext.cpp

  Log Message:
  -----------
  [MC] Use *Map::try_emplace (NFC) (#140397)

try_emplace with is much shorter and simpler if we are
default-constructing the value.

While I'm at it, this patch uses structured bindings to receive the
return value from try_emplace.


  Commit: c51417d75b0090e33299475a3ddec648768bd746
      https://github.com/llvm/llvm-project/commit/c51417d75b0090e33299475a3ddec648768bd746
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp

  Log Message:
  -----------
  [RISCV] Use llvm::any_of (NFC) (#140398)


  Commit: d1cd68881ad41bbaa81c49e54d5f1cb2b0fec093
      https://github.com/llvm/llvm-project/commit/d1cd68881ad41bbaa81c49e54d5f1cb2b0fec093
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M llvm/lib/CodeGen/MachineScheduler.cpp
    M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp

  Log Message:
  -----------
  [llvm] Use llvm::is_sorted (NFC) (#140399)


  Commit: fadaf0c513c8054db04e5ae234a27232568fac28
      https://github.com/llvm/llvm-project/commit/fadaf0c513c8054db04e5ae234a27232568fac28
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SeedCollector.h

  Log Message:
  -----------
  [SandboxVectorizer] Use llvm::upper_bound (NFC) (#140400)


  Commit: 9b93c9a28418febb1eb2642cf7dea034e877d158
      https://github.com/llvm/llvm-project/commit/9b93c9a28418febb1eb2642cf7dea034e877d158
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M llvm/include/llvm/IR/PassManagerImpl.h

  Log Message:
  -----------
  [PassManager] Simplify code with DenseMap::try_emplace (NFC) (#140402)

We can simplify the code with DenseMap::try_emplace and structured
binding.  Note that DenseMap::try_emplace default-constructs the value
if omitted.


  Commit: c0ca030782f9c572a5df5f3506652e81aeecad0d
      https://github.com/llvm/llvm-project/commit/c0ca030782f9c572a5df5f3506652e81aeecad0d
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M clang-tools-extra/clang-include-fixer/find-all-symbols/SymbolInfo.cpp

  Log Message:
  -----------
  [clang-include-fixer] Remove an unused "using" decl (NFC) (#140354)

We do use MappingTraits in this file, but all uses are inside the
llvm::yaml namespace, so we don't rely on the "using" decl.


  Commit: bc6107a8d23d7a1d14f801f8f4ec84188d942f2f
      https://github.com/llvm/llvm-project/commit/bc6107a8d23d7a1d14f801f8f4ec84188d942f2f
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M llvm/include/llvm/Support/Allocator.h
    M llvm/lib/Support/CommandLine.cpp

  Log Message:
  -----------
  [Support] Use range-based for loops (NFC) (#140401)


  Commit: 1a40edf2c08297bde3e651a521d74356ee94e238
      https://github.com/llvm/llvm-project/commit/1a40edf2c08297bde3e651a521d74356ee94e238
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp
    M clang-tools-extra/clangd/refactor/Rename.cpp

  Log Message:
  -----------
  [clang-tools-extra] Use llvm::find_if (NFC) (#140411)


  Commit: ff78648b096379eb73e6c5976b8a3a16f0b54a68
      https://github.com/llvm/llvm-project/commit/ff78648b096379eb73e6c5976b8a3a16f0b54a68
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h
    M llvm/lib/DebugInfo/LogicalView/Readers/LVBinaryReader.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp
    M llvm/unittests/XRay/GraphTest.cpp

  Log Message:
  -----------
  [llvm] Use llvm::find_if (NFC) (#140412)


  Commit: 6290cc33e9a6541ccb4711991247a77e0a5b9412
      https://github.com/llvm/llvm-project/commit/6290cc33e9a6541ccb4711991247a77e0a5b9412
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M clang/lib/AST/VTableBuilder.cpp
    M clang/lib/Lex/ModuleMap.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/unittests/Support/TimeProfilerTest.cpp
    M clang/utils/TableGen/SveEmitter.cpp

  Log Message:
  -----------
  [clang] Use llvm::stable_sort (NFC) (#140413)


  Commit: 304070575a4c585cc3bb2ef206b77bf988c400ff
      https://github.com/llvm/llvm-project/commit/304070575a4c585cc3bb2ef206b77bf988c400ff
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M llvm/lib/AsmParser/LLParser.cpp

  Log Message:
  -----------
  [AsmParser] Use range-based for loops (NFC) (#140414)


  Commit: 751e6c08b2f6cd40908b8810a2a2da476e88417e
      https://github.com/llvm/llvm-project/commit/751e6c08b2f6cd40908b8810a2a2da476e88417e
  Author: Matthias Springer <me at m-sp.org>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M mlir/lib/Transforms/Utils/DialectConversion.cpp

  Log Message:
  -----------
  [mlir][Transforms] Check for correct type converter rule implementation (#140347)

If a type conversion rule fails to apply, it should not append any types
to the result. This commit just adds an assertion to detect such cases
of incorrect API usage.


  Commit: 3360a23e60b00fb0260b2aa37495867cff3ec40d
      https://github.com/llvm/llvm-project/commit/3360a23e60b00fb0260b2aa37495867cff3ec40d
  Author: Matthias Springer <me at m-sp.org>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorDescriptor.cpp

  Log Message:
  -----------
  [mlir][SparseTensor] Fix type conversion rule (#140350)

A type conversion rule cannot make any assumptions about the number of
pre-existing types in the `results` vector.

This commit fixes a failed assertion in a SparseTensor type conversion
rule. This is only reproducible when type conversion caching is
deactivated. There's no way to do this at the moment. This commit is in
preparation of adding context-aware type conversions, which will
deactivate type caching in such cases.


  Commit: d08833f23fc8b25e1c3ef88274aa12f330601932
      https://github.com/llvm/llvm-project/commit/d08833f23fc8b25e1c3ef88274aa12f330601932
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M bolt/lib/Core/DebugData.cpp
    M bolt/lib/Passes/FrameAnalysis.cpp
    M bolt/lib/Passes/HFSort.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    M bolt/tools/bat-dump/bat-dump.cpp

  Log Message:
  -----------
  [BOLT] Remove unused local variables (NFC) (#140421)

While I'm at it, this patch removes GetExecutablePath, which becomes
unused after removing the sole use.


  Commit: f2165b9d5807ec7dc510ff3727698b3124b0b4e9
      https://github.com/llvm/llvm-project/commit/f2165b9d5807ec7dc510ff3727698b3124b0b4e9
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
    M llvm/test/CodeGen/AMDGPU/GlobalISel/dropped_debug_info_assert.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-inline-asm.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-metadata.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/load-legalize-range-metadata.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/mmra.ll
    M llvm/test/CodeGen/AMDGPU/lower-kernel-and-module-lds.ll
    M llvm/test/CodeGen/AMDGPU/lower-kernel-lds.ll
    M llvm/test/CodeGen/AMDGPU/lower-lds-struct-aa-memcpy.ll
    M llvm/test/CodeGen/AMDGPU/lower-lds-struct-aa-merge.ll
    M llvm/test/CodeGen/AMDGPU/lower-lds-struct-aa.ll
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-all-indirect-accesses.ll
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-indirect-extern-uses-max-reachable-alignment.ll
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-via-hybrid.ll
    M llvm/test/CodeGen/AMDGPU/mmra.ll

  Log Message:
  -----------
  Revert "[AMDGPU] Add flag to prevent reruns of LowerModuleLDS (#129520)"

This reverts commit aa9f8596b01fef013ab62c20e61fc96d165f60f7 because it made
some assumptions that may not be valid.


  Commit: 1bc004346784b91085ebaeed9be15de189d74817
      https://github.com/llvm/llvm-project/commit/1bc004346784b91085ebaeed9be15de189d74817
  Author: Jeremy Kun <jkun at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M mlir/lib/Dialect/Tensor/IR/TensorDialect.cpp
    M mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/test/Dialect/Tensor/bufferize.mlir

  Log Message:
  -----------
  Restore #140171 with to_memref -> to_buffer (#140355)

https://github.com/llvm/llvm-project/pull/140171 was reverted because an
op's name changed and I neglected to rebase before merging.

---------

Co-authored-by: Jeremy Kun <j2kun at users.noreply.github.com>


  Commit: ef1bb2a243e0534394be2a74b0ded212d110d3c7
      https://github.com/llvm/llvm-project/commit/ef1bb2a243e0534394be2a74b0ded212d110d3c7
  Author: Matthias Springer <me at m-sp.org>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorDescriptor.cpp

  Log Message:
  -----------
  [mlir][SparseTensor] Fix unused variable error (#140428)


  Commit: c2835e70fd0c8729238bcc56020b6f0a47dfd225
      https://github.com/llvm/llvm-project/commit/c2835e70fd0c8729238bcc56020b6f0a47dfd225
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
    M mlir/lib/Transforms/RemoveDeadValues.cpp

  Log Message:
  -----------
  [mlir] Remove unused local variables (NFC) (#140423)


  Commit: 465e0daa6c6b0ddd010bc1c5f316c6be0d8b17b6
      https://github.com/llvm/llvm-project/commit/465e0daa6c6b0ddd010bc1c5f316c6be0d8b17b6
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M bolt/include/bolt/Profile/DataReader.h
    M bolt/lib/Profile/DataReader.cpp

  Log Message:
  -----------
  [BOLT] Avoid repeated hash lookups (NFC) (#140426)

We can use try_emplace to succinctly implement GetOrCreateFuncEntry
and GetOrCreateFuncMemEntry.  Since it's a bit mouthful to say
FuncBasicSampleData::ContainerTy(), this patch changes the second
parameters to default ones.


  Commit: ad060dfa4c910e8253ba328be947ef70f6597326
      https://github.com/llvm/llvm-project/commit/ad060dfa4c910e8253ba328be947ef70f6597326
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-17 (Sat, 17 May 2025)

  Changed paths:
    M bolt/lib/Passes/ShrinkWrapping.cpp

  Log Message:
  -----------
  [BOLT] Use llvm::stable_sort (NFC) (#140429)


  Commit: 3ccb15d6caf57f2a866d496ada2fb52d14b179d2
      https://github.com/llvm/llvm-project/commit/3ccb15d6caf57f2a866d496ada2fb52d14b179d2
  Author: Jannick Kremer <jannick.kremer at mailbox.org>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M clang/bindings/python/clang/cindex.py

  Log Message:
  -----------
  [libclang/python] Add typing annotations for the Type class (#140378)

This fully annotates the Type class, resolving 75 strict typing errors
as the next step towards #76664


  Commit: 07c085af3efcd67503232f99a1652efc6e54c1a9
      https://github.com/llvm/llvm-project/commit/07c085af3efcd67503232f99a1652efc6e54c1a9
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/test/Transforms/LoopVectorize/SystemZ/pr47665.ll
    M llvm/test/Transforms/LoopVectorize/X86/cost-model.ll
    M llvm/test/Transforms/LoopVectorize/version-stride-with-integer-casts.ll

  Log Message:
  -----------
  [VPlan] Add narrowToSingleScalarRecipe transform. (#139150)

Add a new convertToUniformRecipes transform which uses VPlan-based
uniformity analysis to determine if wide recipes and replicate recipes
can be converted to uniform recipes.

There are a few places where we ad-hoc convert recipes to uniform
recipes, which this transform will eventually replace. There are a few
more generalizations required to do so which I plan to do as follow-ups.

By converting the recipes to uniform recipes, we effectively materialize
the information from the VPlan-based analysis.

Note that there is one regression at the moment in SystemZ/pr47665.ll
due to trivial constant folding opportunities in the input IR. This will
be fixed by VPlan-based constant folding
(https://github.com/llvm/llvm-project/pull/125365/)

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


  Commit: b18ebd17b82db0bdf5bb8cae59c3208288fbef93
      https://github.com/llvm/llvm-project/commit/b18ebd17b82db0bdf5bb8cae59c3208288fbef93
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M llvm/test/Analysis/LoopAccessAnalysis/forked-pointers.ll

  Log Message:
  -----------
  [LAA] Improve forked-pointers.ll test (#140383)


  Commit: 7e14161f49b32387988cf9d937bbfaa27d0fbdd5
      https://github.com/llvm/llvm-project/commit/7e14161f49b32387988cf9d937bbfaa27d0fbdd5
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M llvm/lib/Transforms/Utils/LoopPeel.cpp
    A llvm/test/Transforms/LoopUnroll/unroll-and-peel-last-iteration.ll

  Log Message:
  -----------
  [LoopPeel] Handle constants when updating exit values when peeling last.

Account for constant values when updating exit values after peeling an
iteration from the end. This can happen if the inner loop gets unrolled
and simplified.

Fixes https://github.com/llvm/llvm-project/issues/140442.


  Commit: 962aa2666fe8aa99e25bb255a99d3ab02d8441b4
      https://github.com/llvm/llvm-project/commit/962aa2666fe8aa99e25bb255a99d3ab02d8441b4
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M libcxx/include/map
    M libcxx/test/std/containers/associative/map/incomplete_type.pass.cpp
    M libcxx/test/support/min_allocator.h

  Log Message:
  -----------
  [libc++] Don't instantiate allocators in __tree on an incomplete type (#140225)

This causes a mismatch between `value_type` and
`allocator_type::value_type` in `__tree`, but I think that's acceptable.
`__tree` primarily gets a `__value_type` wrapper due to potential ABI
breaks and unwraps it to the same as `allocator_type::value_type` in the
end. A cleanup patch will also change `__tree::value_type` to be the
same as `allocator_type::value_type`, making the type mismatch only
visible where `__tree` is instantiated in `map`.


  Commit: f6867709a7a7e59ecf8a39c75627ae906ac8e1df
      https://github.com/llvm/llvm-project/commit/f6867709a7a7e59ecf8a39c75627ae906ac8e1df
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M libcxx/include/__tree
    M libcxx/test/std/containers/associative/set/set.cons/copy_assign.pass.cpp

  Log Message:
  -----------
  [libc++] Fix set::operator= when instantiating with a std::pair (#140385)

This has been introduced by #134819, most likely due to a merge conflict
I didn't resolve properly (I thought I did in that patch what I'm now
doing here).


  Commit: 0b553e055ad01ca6a2c88f7da92157df29e42fd0
      https://github.com/llvm/llvm-project/commit/0b553e055ad01ca6a2c88f7da92157df29e42fd0
  Author: dty2 <118413413+dty2 at users.noreply.github.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/test/CodeGenCXX/cxx1z-inline-variables.cpp
    M clang/test/SemaTemplate/cxx17-inline-variables.cpp

  Log Message:
  -----------
  [Clang] Fix missed initializer instantiation bug for variable templates (#138122)

Fixes https://github.com/llvm/llvm-project/issues/135032

Due to nested templates, when instantiating the outer layer (the
template class), the inner layer (the template variable) uses delayed
instantiation.
This causes the declaration (VarDecl) of the template variable to retain
the type from the original template declaration (i.e., auto), and it
loses the initializer.
Later, when instantiating the template variable, its
VarTemplateSpecializationDecl type depends on the VarDecl type.
Thus, the VarTemplateSpecializationDecl also has no initializer, and its
type remains auto.
Ultimately, when building the reference expression in
Sema::BuildDeclarationNameExpr, the expression's type is auto and stays
as auto until code generation, triggering llvm_unreachable in
CodeGenTypes::ConvertType.

Since I noticed that the deduction of auto type is caused by the
initializer
I plan to do special processing for template variables of type auto,
that is, to prevent their delayed instantiation
so that their initializers will not be lost when the outer template
class is instantiated


  Commit: a0a2a1e095ddd092e668b0b3f9a7dfa9655255e1
      https://github.com/llvm/llvm-project/commit/a0a2a1e095ddd092e668b0b3f9a7dfa9655255e1
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M llvm/lib/Transforms/Utils/LoopPeel.cpp
    M llvm/test/Transforms/LoopUnroll/peel-last-iteration.ll

  Log Message:
  -----------
  [LoopPeel] Make sure exit condition has a single use when peeling last.

Update the check in canPeelLastIteration to make sure the exiting
condition has a single use. When peeling the last iteration, we adjust
the condition in the loop body to be true one iteration early, which
would be incorrect for other users.

Fixes https://github.com/llvm/llvm-project/issues/140444.


  Commit: ffb9bbfd0745dc22e1fd6edd7b62f72b91f4f6de
      https://github.com/llvm/llvm-project/commit/ffb9bbfd0745dc22e1fd6edd7b62f72b91f4f6de
  Author: Shay Kleiman <42376404+shay-kl at users.noreply.github.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
    M mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
    M mlir/lib/Dialect/GPU/Transforms/EliminateBarriers.cpp
    M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
    M mlir/lib/Dialect/MemRef/Transforms/EmulateNarrowType.cpp
    M mlir/lib/Dialect/MemRef/Transforms/ExpandStridedMetadata.cpp
    M mlir/test/Conversion/MemRefToLLVM/expand-then-convert-to-llvm.mlir
    M mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/misc-other.mlir
    M mlir/test/Dialect/MemRef/emulate-narrow-type.mlir
    M mlir/test/Dialect/MemRef/invalid.mlir
    M mlir/test/Dialect/MemRef/ops.mlir

  Log Message:
  -----------
  [mlir][MemRef] Changed AssumeAlignment into a Pure ViewLikeOp (#139521)

Made AssumeAlignment a ViewLikeOp that returns a new SSA memref equal
to its memref argument and made it have Pure trait. This
gives it a defined memory effect that matches what it does in practice
and makes it behave nicely with optimizations which won't get rid of it
unless its result isn't being used.


  Commit: 4504e775509483ec20912bc1d805717eecb311ca
      https://github.com/llvm/llvm-project/commit/4504e775509483ec20912bc1d805717eecb311ca
  Author: Shay Kleiman <42376404+shay-kl at users.noreply.github.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M mlir/test/Integration/Dialect/MemRef/assume-alignment-runtime-verification.mlir

  Log Message:
  -----------
  [mlir][MemRef] Fixed a lit test for assume alignment (#140447)

Fixed a lit test that failed from my previous commit


  Commit: 01bf2d71d0681122e2518a12115418c5c0a42218
      https://github.com/llvm/llvm-project/commit/01bf2d71d0681122e2518a12115418c5c0a42218
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/select-undef.ll

  Log Message:
  -----------
  [AMDGPU] select-undef.ll - regenerate test checks

Ensure we see all the codegen to help find any lurking unexpected behaviours


  Commit: ad3136689090f79b52afcb5a95ec87e893006877
      https://github.com/llvm/llvm-project/commit/ad3136689090f79b52afcb5a95ec87e893006877
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.h

  Log Message:
  -----------
  [X86] Move X86ISD::FP_TO_SINT_SAT/FP_TO_UINT_SAT outside of the MEMORY_OPCODE enum block (#140272)

Move to closer to the other regular conversion opcodes

Fixes #140271


  Commit: c861fe8a71e64f3d2108c58147e7375cd9314521
      https://github.com/llvm/llvm-project/commit/c861fe8a71e64f3d2108c58147e7375cd9314521
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M libcxx/include/__algorithm/shuffle.h
    M libcxx/include/__algorithm/sort.h
    M libcxx/include/__atomic/atomic_sync.h
    M libcxx/include/__charconv/from_chars_floating_point.h
    M libcxx/include/__charconv/to_chars_floating_point.h
    M libcxx/include/__chrono/exception.h
    M libcxx/include/__chrono/file_clock.h
    M libcxx/include/__chrono/steady_clock.h
    M libcxx/include/__chrono/system_clock.h
    M libcxx/include/__condition_variable/condition_variable.h
    M libcxx/include/__config
    M libcxx/include/__exception/exception.h
    M libcxx/include/__exception/exception_ptr.h
    M libcxx/include/__exception/nested_exception.h
    M libcxx/include/__exception/operations.h
    M libcxx/include/__exception/terminate.h
    M libcxx/include/__expected/bad_expected_access.h
    M libcxx/include/__filesystem/directory_entry.h
    M libcxx/include/__filesystem/directory_iterator.h
    M libcxx/include/__filesystem/filesystem_error.h
    M libcxx/include/__filesystem/operations.h
    M libcxx/include/__filesystem/path.h
    M libcxx/include/__filesystem/path_iterator.h
    M libcxx/include/__filesystem/recursive_directory_iterator.h
    M libcxx/include/__format/format_error.h
    M libcxx/include/__functional/function.h
    M libcxx/include/__functional/hash.h
    M libcxx/include/__hash_table
    M libcxx/include/__locale
    M libcxx/include/__memory/align.h
    M libcxx/include/__memory/shared_count.h
    M libcxx/include/__memory/shared_ptr.h
    M libcxx/include/__memory_resource/memory_resource.h
    M libcxx/include/__memory_resource/monotonic_buffer_resource.h
    M libcxx/include/__memory_resource/synchronized_pool_resource.h
    M libcxx/include/__memory_resource/unsynchronized_pool_resource.h
    M libcxx/include/__mutex/mutex.h
    M libcxx/include/__mutex/once_flag.h
    M libcxx/include/__new/exceptions.h
    M libcxx/include/__new/new_handler.h
    M libcxx/include/__ostream/basic_ostream.h
    M libcxx/include/__ostream/print.h
    M libcxx/include/__pstl/backends/libdispatch.h
    M libcxx/include/__random/binomial_distribution.h
    M libcxx/include/__random/random_device.h
    M libcxx/include/__system_error/error_category.h
    M libcxx/include/__system_error/error_code.h
    M libcxx/include/__system_error/error_condition.h
    M libcxx/include/__system_error/system_error.h
    M libcxx/include/__system_error/throw_system_error.h
    M libcxx/include/__thread/this_thread.h
    M libcxx/include/__thread/thread.h
    M libcxx/include/__verbose_abort
    M libcxx/include/any
    M libcxx/include/barrier
    M libcxx/include/codecvt
    M libcxx/include/condition_variable
    M libcxx/include/fstream
    M libcxx/include/future
    M libcxx/include/ios
    M libcxx/include/istream
    M libcxx/include/locale
    M libcxx/include/mutex
    M libcxx/include/print
    M libcxx/include/regex
    M libcxx/include/shared_mutex
    M libcxx/include/sstream
    M libcxx/include/stdexcept
    M libcxx/include/streambuf
    M libcxx/include/string
    M libcxx/include/strstream
    M libcxx/include/valarray
    M libcxx/include/variant
    M libcxx/src/algorithm.cpp
    M libcxx/src/any.cpp
    M libcxx/src/atomic.cpp
    M libcxx/src/barrier.cpp
    M libcxx/src/call_once.cpp
    M libcxx/src/charconv.cpp
    M libcxx/src/chrono.cpp
    M libcxx/src/condition_variable.cpp
    M libcxx/src/condition_variable_destructor.cpp
    M libcxx/src/error_category.cpp
    M libcxx/src/expected.cpp
    M libcxx/src/experimental/chrono_exception.cpp
    M libcxx/src/filesystem/directory_entry.cpp
    M libcxx/src/filesystem/directory_iterator.cpp
    M libcxx/src/filesystem/filesystem_clock.cpp
    M libcxx/src/filesystem/filesystem_error.cpp
    M libcxx/src/filesystem/operations.cpp
    M libcxx/src/filesystem/path.cpp
    M libcxx/src/fstream.cpp
    M libcxx/src/functional.cpp
    M libcxx/src/future.cpp
    M libcxx/src/hash.cpp
    M libcxx/src/ios.cpp
    M libcxx/src/iostream.cpp
    M libcxx/src/locale.cpp
    M libcxx/src/memory.cpp
    M libcxx/src/memory_resource.cpp
    M libcxx/src/mutex.cpp
    M libcxx/src/mutex_destructor.cpp
    M libcxx/src/optional.cpp
    M libcxx/src/ostream.cpp
    M libcxx/src/print.cpp
    M libcxx/src/random.cpp
    M libcxx/src/random_shuffle.cpp
    M libcxx/src/regex.cpp
    M libcxx/src/shared_mutex.cpp
    M libcxx/src/std_stream.h
    M libcxx/src/stdexcept.cpp
    M libcxx/src/string.cpp
    M libcxx/src/strstream.cpp
    M libcxx/src/system_error.cpp
    M libcxx/src/thread.cpp
    M libcxx/src/valarray.cpp
    M libcxx/src/vector.cpp
    M libcxx/src/verbose_abort.cpp
    M libcxx/test/tools/clang_tidy_checks/hide_from_abi.cpp

  Log Message:
  -----------
  [libc++] Introduce ABI sensitive areas to avoid requiring _LIBCPP_HIDE_FROM_ABI everywhere (#131156)

This patch introduces `_LIBCPP_{BEGIN,END}_EXPLICIT_ABI_ANNOTATIONS`,
which allow us to have implicit annotations for most functions, and just
where it's not "hide_from_abi everything" we add explicit annotations.
This allows us to drop the `_LIBCPP_HIDE_FROM_ABI` macro from most
functions in libc++.


  Commit: dd702b39699f5f35e862387f88e79e078491094c
      https://github.com/llvm/llvm-project/commit/dd702b39699f5f35e862387f88e79e078491094c
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M llvm/lib/Object/Object.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/tools/llvm-mca/llvm-mca.cpp
    M llvm/tools/llvm-rc/ResourceFileWriter.cpp

  Log Message:
  -----------
  [llvm] Remove unused local variables (NFC) (#140422)


  Commit: 013c7ba78590badf20d769a2de13bddabcfb1c5d
      https://github.com/llvm/llvm-project/commit/013c7ba78590badf20d769a2de13bddabcfb1c5d
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M clang/lib/CodeGen/MicrosoftCXXABI.cpp

  Log Message:
  -----------
  [CodeGen] Use DenseMap::try_emplace (NFC) (#140430)

We can simplify the code with DenseMap::try_emplace and structured
binding.  Note that DenseMap::try_emplace default-constructs the value
if omitted.


  Commit: 4388f38fbd9a0e6e55d5233cefa3e4ac3d8815d9
      https://github.com/llvm/llvm-project/commit/4388f38fbd9a0e6e55d5233cefa3e4ac3d8815d9
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CodeGenPGO.cpp
    M clang/lib/Sema/SemaCUDA.cpp
    M clang/utils/TableGen/ClangOptionDocEmitter.cpp

  Log Message:
  -----------
  [clang] Use llvm::max_element (NFC) (#140435)


  Commit: 09d65fe8a190fdd461be18c8f6be57a1c2a2b6f7
      https://github.com/llvm/llvm-project/commit/09d65fe8a190fdd461be18c8f6be57a1c2a2b6f7
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M llvm/lib/Support/TrieRawHashMap.cpp

  Log Message:
  -----------
  [Support] Use std::optional::value_or (NFC) (#140436)


  Commit: 159f05fcaf9888ceaa70d0a6e78e1da30d418de7
      https://github.com/llvm/llvm-project/commit/159f05fcaf9888ceaa70d0a6e78e1da30d418de7
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M clang/include/clang/AST/ExprCXX.h

  Log Message:
  -----------
  [AST] Remove "const" from "const ArrayRef" (NFC) (#140437)


  Commit: 852b11c75fb8f6132298b9a67c886b02ff9d387a
      https://github.com/llvm/llvm-project/commit/852b11c75fb8f6132298b9a67c886b02ff9d387a
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M llvm/tools/bugpoint/CrashDebugger.cpp

  Log Message:
  -----------
  [bugpoint] Use range-based for loops (NFC) (#140438)


  Commit: a86344c5a9854ae38d925566d3e9fbc0854254f6
      https://github.com/llvm/llvm-project/commit/a86344c5a9854ae38d925566d3e9fbc0854254f6
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M lldb/source/Target/RegisterContextUnwind.cpp

  Log Message:
  -----------
  [lldb] Remove redundant calls to std::unique_ptr<T>::get (NFC) (NFC) (#140440)


  Commit: b12d68e0b253b4dc6c3fd9d99ee8421605e274aa
      https://github.com/llvm/llvm-project/commit/b12d68e0b253b4dc6c3fd9d99ee8421605e274aa
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M libcxx/test/libcxx/feature_test_macro/ftm_metadata.sh.py
    A libcxx/test/libcxx/feature_test_macro/generate_header_test.sh.py
    M libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py
    M libcxx/test/libcxx/feature_test_macro/invalid.sh.py
    M libcxx/test/libcxx/feature_test_macro/is_implemented.sh.py
    M libcxx/test/libcxx/feature_test_macro/standard_ftms.sh.py
    A libcxx/test/libcxx/feature_test_macro/standard_library_headers.sh.py
    M libcxx/test/libcxx/feature_test_macro/std_dialects.sh.py
    M libcxx/test/libcxx/feature_test_macro/test_data.json
    M libcxx/test/libcxx/feature_test_macro/version_header.sh.py
    M libcxx/test/libcxx/feature_test_macro/version_header_implementation.sh.py
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++] Implements the new FTM header test generator. (#134542)

This generator has almost identical output to the existing script.
Notable differences are
- conditionally include headers that are not implemented yet
- removes the synopsis
- uses 2 spaces indent in `# if`

There are a few more test macros added that triggered bugs in existing
FTM.


  Commit: e003326cd8e474f1c5be030f63c975b354c3f784
      https://github.com/llvm/llvm-project/commit/e003326cd8e474f1c5be030f63c975b354c3f784
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M clang/lib/Sema/SemaChecking.cpp

  Log Message:
  -----------
  [Sema] Use llvm::is_contained (NFC) (#140455)


  Commit: 04c73adfe2ed3597e10859c753b0dbdfd7e5f210
      https://github.com/llvm/llvm-project/commit/04c73adfe2ed3597e10859c753b0dbdfd7e5f210
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M clang-tools-extra/clang-tidy/bugprone/NarrowingConversionsCheck.cpp
    M clang-tools-extra/clangd/CompileCommands.cpp

  Log Message:
  -----------
  [clang-tools-extra] Use llvm::is_contained (NFC) (#140456)


  Commit: 9384e8e63c2e51a5dfac1c53d07442bb0c8d8773
      https://github.com/llvm/llvm-project/commit/9384e8e63c2e51a5dfac1c53d07442bb0c8d8773
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M clang-tools-extra/clang-tidy/misc/ConfusableTable/BuildConfusableTable.cpp
    M clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp

  Log Message:
  -----------
  [clang-tools-extra] Use llvm::max_element (NFC) (#140458)


  Commit: 0fc9cd13a6e3e3707794f4e016b15831d5f0b334
      https://github.com/llvm/llvm-project/commit/0fc9cd13a6e3e3707794f4e016b15831d5f0b334
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M clang/include/clang/Serialization/ContinuousRangeMap.h
    M clang/lib/Format/UsingDeclarationsSorter.cpp
    M clang/lib/Sema/SemaLambda.cpp
    M clang/tools/libclang/CIndex.cpp

  Log Message:
  -----------
  [clang] Use llvm::unique (NFC) (#140459)


  Commit: 61ba3e4c99a0f806a798fba398e82a4969054bc1
      https://github.com/llvm/llvm-project/commit/61ba3e4c99a0f806a798fba398e82a4969054bc1
  Author: Amr Hesham <amr96 at programmer.net>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
    M clang/test/CIR/CodeGen/vector-ext.cpp
    M clang/test/CIR/CodeGen/vector.cpp

  Log Message:
  -----------
  [CIR][LLVMLowering] Upstream unary operators for VectorType (#139444)

This change adds support for unary ops for VectorType

Issue https://github.com/llvm/llvm-project/issues/136487


  Commit: 5ab3c5215688f62dbc3707f0e9cc2e8b69c0a7f0
      https://github.com/llvm/llvm-project/commit/5ab3c5215688f62dbc3707f0e9cc2e8b69c0a7f0
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M lldb/tools/lldb-dap/DAP.cpp
    M lldb/tools/lldb-dap/DAP.h

  Log Message:
  -----------
  [lldb-dap] Member variable cleanup in DAP.{cpp,h} (NFC) (#140390)

- Use in-class member initialization to simplify the constructor.
- Remove unimplemented SetConfigurationDone.
- Consistently use Doxygen-style comments.


  Commit: 3d0c616ce30cdc3d9c26dda8fdc608a6c85f00a6
      https://github.com/llvm/llvm-project/commit/3d0c616ce30cdc3d9c26dda8fdc608a6c85f00a6
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M lldb/tools/lldb-dap/CMakeLists.txt
    M lldb/tools/lldb-dap/DAP.cpp
    M lldb/tools/lldb-dap/DAP.h
    A lldb/tools/lldb-dap/Variables.cpp
    A lldb/tools/lldb-dap/Variables.h
    M lldb/unittests/DAP/CMakeLists.txt
    A lldb/unittests/DAP/VariablesTest.cpp

  Log Message:
  -----------
  [lldb-dap] Move the Variables struct into its own file (#140393)

Move the Variables struct out of DAP.h and into its own file to reduce
the complexity of the latter. This PR also makes the members that are
implementation details private and adds a handful of basic unit tests.


  Commit: 5247a4fc71b733ecb107a036046e5e92146aea5c
      https://github.com/llvm/llvm-project/commit/5247a4fc71b733ecb107a036046e5e92146aea5c
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M llvm/utils/gn/secondary/lldb/tools/lldb-dap/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 3d0c616ce30c


  Commit: 5fa985e751c8f890fff31e190473aeeb6f7a9fc5
      https://github.com/llvm/llvm-project/commit/5fa985e751c8f890fff31e190473aeeb6f7a9fc5
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp

  Log Message:
  -----------
  [VPlan] Support cloning initial VPlan (NFC).

Support cloning VPlans as they are created by the initial buildVPlan,
i.e. scalar header not yet connected and no trip-count set. This is not
used yet but will in follow-up changes/

Also add a unit test for cloning & printing.


  Commit: 1b41599cf8972abbf0d2ee7595dba78a4b158af0
      https://github.com/llvm/llvm-project/commit/1b41599cf8972abbf0d2ee7595dba78a4b158af0
  Author: Jessica Clarke <jrtc27 at jrtc27.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M llvm/include/llvm/MC/MCAsmBackend.h
    M llvm/include/llvm/MC/MCAsmInfo.h
    M llvm/include/llvm/MC/MCDirectives.h
    M llvm/include/llvm/MC/MCELFStreamer.h
    M llvm/include/llvm/MC/MCStreamer.h
    M llvm/include/llvm/MC/MCWasmStreamer.h
    M llvm/include/llvm/MC/MCWinCOFFStreamer.h
    M llvm/lib/MC/MCAsmInfo.cpp
    M llvm/lib/MC/MCAsmStreamer.cpp
    M llvm/lib/MC/MCELFStreamer.cpp
    M llvm/lib/MC/MCMachOStreamer.cpp
    M llvm/lib/MC/MCNullStreamer.cpp
    M llvm/lib/MC/MCParser/DarwinAsmParser.cpp
    M llvm/lib/MC/MCStreamer.cpp
    M llvm/lib/MC/MCWasmStreamer.cpp
    M llvm/lib/MC/MCWinCOFFStreamer.cpp
    M llvm/lib/Object/RecordStreamer.h
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
    M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
    M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp
    M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h
    M llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp
    M llvm/lib/Target/X86/X86AsmPrinter.cpp
    M llvm/test/CodeGen/ARM/ldrd.ll
    M llvm/test/CodeGen/ARM/thumb-function-section-reloc.ll
    M llvm/test/CodeGen/Thumb/thumb-shrink-wrapping.ll
    M llvm/test/DebugInfo/ARM/header.ll
    M llvm/utils/UpdateTestChecks/asm.py

  Log Message:
  -----------
  [MC][AArch64][ARM][X86] Push target-dependent assembler flags into targets (#139844)

The .syntax unified directive and .codeX/.code X directives are, other
than some simple common printing code, exclusively implemented in the
targets themselves. Thus, remove the corresponding MCAF_* flags and
reimplement the directives solely within the targets. This avoids
exposing all targets to all other targets' flags.

Since MCAF_SubsectionsViaSymbols is all that remains, convert it to its
own function like other directives, simplifying its implementation.

Note that, on X86, we now always need a target streamer when parsing
assembly, as it's now used for directives that aren't COFF-specific. It
still does not however need to do anything when producing a non-COFF
object file, so this commit does not introduce any new target streamers.

There is some churn in test output, and corresponding UTC regex changes,
due to comments no longer being flushed by these various directives (and
EmitEOL is not exposed outside MCAsmStreamer.cpp so we couldn't do so
even if we wanted to), but that was a bit odd to be doing anyway.

This is motivated by Morello LLVM, which adds yet another assembler flag
to distinguish A64 and C64 instruction sets, but did not update every
switch and so emits warnings during the build. Rather than fix those
warnings it seems better to instead make the problem not exist in the
first place via this change.


  Commit: fb86b3d96b73f4e628288b180ef4e038da8b7bc1
      https://github.com/llvm/llvm-project/commit/fb86b3d96b73f4e628288b180ef4e038da8b7bc1
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/crash_bullet3.ll
    M llvm/test/Transforms/SLPVectorizer/X86/matched-bv-schedulable.ll
    A llvm/test/Transforms/SLPVectorizer/X86/node-outside-used-only.ll
    M llvm/test/Transforms/SLPVectorizer/X86/phi-node-with-cycle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/user-node-with-same-last-instr.ll
    M llvm/test/Transforms/SLPVectorizer/revec.ll

  Log Message:
  -----------
  [SLP]Change the insertion point for outside-block-used nodes and prevec phi operand gathers

Need to set the insertion point for (non-schedulable) vector node after
the last instruction in the node to avoid def-use breakage. But it also
causes miscompilation with gather/buildvector operands of the phi nodes,
used in the same phi only in the block.
These nodes supposed to be inserted at the end of the block and after
changing the insertion point for the non-schedulable vec block, it also
may break def-use dependencies. Need to prevector such nodes, to emit
them as early as possible, so the vectorized nodes are inserted before
these nodes.

Fixes #139728

Recommit after revert 60fb92179291e848eb7b04913bdc818d081db296

Reviewers: hiraditya, HanKuanChen, RKSimon

Reviewed By: RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/139917


  Commit: 58a80a7ecb97cb5eadfbd6d64c214217bb1e621e
      https://github.com/llvm/llvm-project/commit/58a80a7ecb97cb5eadfbd6d64c214217bb1e621e
  Author: Qinkun Bao <qinkun at google.com>
  Date:   2025-05-18 (Sun, 18 May 2025)

  Changed paths:
    M bolt/include/bolt/Profile/DataReader.h
    M bolt/lib/Core/DebugData.cpp
    M bolt/lib/Passes/FrameAnalysis.cpp
    M bolt/lib/Passes/HFSort.cpp
    M bolt/lib/Passes/ShrinkWrapping.cpp
    M bolt/lib/Profile/DataReader.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    M bolt/tools/bat-dump/bat-dump.cpp
    M clang-tools-extra/clang-include-fixer/find-all-symbols/SymbolInfo.cpp
    M clang-tools-extra/clang-tidy/bugprone/NarrowingConversionsCheck.cpp
    M clang-tools-extra/clang-tidy/misc/ConfusableTable/BuildConfusableTable.cpp
    M clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp
    M clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp
    M clang-tools-extra/clangd/CompileCommands.cpp
    M clang-tools-extra/clangd/refactor/Rename.cpp
    M clang/bindings/python/clang/cindex.py
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/ExprCXX.h
    M clang/include/clang/Serialization/ContinuousRangeMap.h
    M clang/lib/AST/VTableBuilder.cpp
    M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CodeGenPGO.cpp
    M clang/lib/CodeGen/MicrosoftCXXABI.cpp
    M clang/lib/Format/UsingDeclarationsSorter.cpp
    M clang/lib/Lex/ModuleMap.cpp
    M clang/lib/Sema/SemaCUDA.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaLambda.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/test/CIR/CodeGen/vector-ext.cpp
    M clang/test/CIR/CodeGen/vector.cpp
    M clang/test/CodeGenCXX/cxx1z-inline-variables.cpp
    M clang/test/SemaTemplate/cxx17-inline-variables.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/unittests/Support/TimeProfilerTest.cpp
    M clang/utils/TableGen/ClangOptionDocEmitter.cpp
    M clang/utils/TableGen/SveEmitter.cpp
    M libcxx/include/__algorithm/shuffle.h
    M libcxx/include/__algorithm/sort.h
    M libcxx/include/__atomic/atomic_sync.h
    M libcxx/include/__charconv/from_chars_floating_point.h
    M libcxx/include/__charconv/to_chars_floating_point.h
    M libcxx/include/__chrono/exception.h
    M libcxx/include/__chrono/file_clock.h
    M libcxx/include/__chrono/steady_clock.h
    M libcxx/include/__chrono/system_clock.h
    M libcxx/include/__condition_variable/condition_variable.h
    M libcxx/include/__config
    M libcxx/include/__exception/exception.h
    M libcxx/include/__exception/exception_ptr.h
    M libcxx/include/__exception/nested_exception.h
    M libcxx/include/__exception/operations.h
    M libcxx/include/__exception/terminate.h
    M libcxx/include/__expected/bad_expected_access.h
    M libcxx/include/__filesystem/directory_entry.h
    M libcxx/include/__filesystem/directory_iterator.h
    M libcxx/include/__filesystem/filesystem_error.h
    M libcxx/include/__filesystem/operations.h
    M libcxx/include/__filesystem/path.h
    M libcxx/include/__filesystem/path_iterator.h
    M libcxx/include/__filesystem/recursive_directory_iterator.h
    M libcxx/include/__format/format_error.h
    M libcxx/include/__functional/function.h
    M libcxx/include/__functional/hash.h
    M libcxx/include/__hash_table
    M libcxx/include/__locale
    M libcxx/include/__memory/align.h
    M libcxx/include/__memory/shared_count.h
    M libcxx/include/__memory/shared_ptr.h
    M libcxx/include/__memory_resource/memory_resource.h
    M libcxx/include/__memory_resource/monotonic_buffer_resource.h
    M libcxx/include/__memory_resource/synchronized_pool_resource.h
    M libcxx/include/__memory_resource/unsynchronized_pool_resource.h
    M libcxx/include/__mutex/mutex.h
    M libcxx/include/__mutex/once_flag.h
    M libcxx/include/__new/exceptions.h
    M libcxx/include/__new/new_handler.h
    M libcxx/include/__ostream/basic_ostream.h
    M libcxx/include/__ostream/print.h
    M libcxx/include/__pstl/backends/libdispatch.h
    M libcxx/include/__random/binomial_distribution.h
    M libcxx/include/__random/random_device.h
    M libcxx/include/__system_error/error_category.h
    M libcxx/include/__system_error/error_code.h
    M libcxx/include/__system_error/error_condition.h
    M libcxx/include/__system_error/system_error.h
    M libcxx/include/__system_error/throw_system_error.h
    M libcxx/include/__thread/this_thread.h
    M libcxx/include/__thread/thread.h
    M libcxx/include/__tree
    M libcxx/include/__verbose_abort
    M libcxx/include/any
    M libcxx/include/barrier
    M libcxx/include/codecvt
    M libcxx/include/condition_variable
    M libcxx/include/fstream
    M libcxx/include/future
    M libcxx/include/ios
    M libcxx/include/istream
    M libcxx/include/locale
    M libcxx/include/map
    M libcxx/include/mutex
    M libcxx/include/print
    M libcxx/include/regex
    M libcxx/include/shared_mutex
    M libcxx/include/sstream
    M libcxx/include/stdexcept
    M libcxx/include/streambuf
    M libcxx/include/string
    M libcxx/include/strstream
    M libcxx/include/valarray
    M libcxx/include/variant
    M libcxx/src/algorithm.cpp
    M libcxx/src/any.cpp
    M libcxx/src/atomic.cpp
    M libcxx/src/barrier.cpp
    M libcxx/src/call_once.cpp
    M libcxx/src/charconv.cpp
    M libcxx/src/chrono.cpp
    M libcxx/src/condition_variable.cpp
    M libcxx/src/condition_variable_destructor.cpp
    M libcxx/src/error_category.cpp
    M libcxx/src/expected.cpp
    M libcxx/src/experimental/chrono_exception.cpp
    M libcxx/src/filesystem/directory_entry.cpp
    M libcxx/src/filesystem/directory_iterator.cpp
    M libcxx/src/filesystem/filesystem_clock.cpp
    M libcxx/src/filesystem/filesystem_error.cpp
    M libcxx/src/filesystem/operations.cpp
    M libcxx/src/filesystem/path.cpp
    M libcxx/src/fstream.cpp
    M libcxx/src/functional.cpp
    M libcxx/src/future.cpp
    M libcxx/src/hash.cpp
    M libcxx/src/ios.cpp
    M libcxx/src/iostream.cpp
    M libcxx/src/locale.cpp
    M libcxx/src/memory.cpp
    M libcxx/src/memory_resource.cpp
    M libcxx/src/mutex.cpp
    M libcxx/src/mutex_destructor.cpp
    M libcxx/src/optional.cpp
    M libcxx/src/ostream.cpp
    M libcxx/src/print.cpp
    M libcxx/src/random.cpp
    M libcxx/src/random_shuffle.cpp
    M libcxx/src/regex.cpp
    M libcxx/src/shared_mutex.cpp
    M libcxx/src/std_stream.h
    M libcxx/src/stdexcept.cpp
    M libcxx/src/string.cpp
    M libcxx/src/strstream.cpp
    M libcxx/src/system_error.cpp
    M libcxx/src/thread.cpp
    M libcxx/src/valarray.cpp
    M libcxx/src/vector.cpp
    M libcxx/src/verbose_abort.cpp
    M libcxx/test/libcxx/feature_test_macro/ftm_metadata.sh.py
    A libcxx/test/libcxx/feature_test_macro/generate_header_test.sh.py
    M libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py
    M libcxx/test/libcxx/feature_test_macro/invalid.sh.py
    M libcxx/test/libcxx/feature_test_macro/is_implemented.sh.py
    M libcxx/test/libcxx/feature_test_macro/standard_ftms.sh.py
    A libcxx/test/libcxx/feature_test_macro/standard_library_headers.sh.py
    M libcxx/test/libcxx/feature_test_macro/std_dialects.sh.py
    M libcxx/test/libcxx/feature_test_macro/test_data.json
    M libcxx/test/libcxx/feature_test_macro/version_header.sh.py
    M libcxx/test/libcxx/feature_test_macro/version_header_implementation.sh.py
    M libcxx/test/std/containers/associative/map/incomplete_type.pass.cpp
    M libcxx/test/std/containers/associative/set/set.cons/copy_assign.pass.cpp
    M libcxx/test/support/min_allocator.h
    M libcxx/test/tools/clang_tidy_checks/hide_from_abi.cpp
    M libcxx/utils/generate_feature_test_macro_components.py
    M lldb/source/Target/RegisterContextUnwind.cpp
    M lldb/tools/lldb-dap/CMakeLists.txt
    M lldb/tools/lldb-dap/DAP.cpp
    M lldb/tools/lldb-dap/DAP.h
    A lldb/tools/lldb-dap/Variables.cpp
    A lldb/tools/lldb-dap/Variables.h
    M lldb/unittests/DAP/CMakeLists.txt
    A lldb/unittests/DAP/VariablesTest.cpp
    M llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h
    M llvm/include/llvm/IR/PassManagerImpl.h
    M llvm/include/llvm/MC/MCAsmBackend.h
    M llvm/include/llvm/MC/MCAsmInfo.h
    M llvm/include/llvm/MC/MCDirectives.h
    M llvm/include/llvm/MC/MCELFStreamer.h
    M llvm/include/llvm/MC/MCStreamer.h
    M llvm/include/llvm/MC/MCWasmStreamer.h
    M llvm/include/llvm/MC/MCWinCOFFStreamer.h
    M llvm/include/llvm/Support/Allocator.h
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SeedCollector.h
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/CodeGen/MachineScheduler.cpp
    M llvm/lib/DebugInfo/LogicalView/Readers/LVBinaryReader.cpp
    M llvm/lib/MC/MCAsmInfo.cpp
    M llvm/lib/MC/MCAsmStreamer.cpp
    M llvm/lib/MC/MCContext.cpp
    M llvm/lib/MC/MCELFStreamer.cpp
    M llvm/lib/MC/MCMachOStreamer.cpp
    M llvm/lib/MC/MCNullStreamer.cpp
    M llvm/lib/MC/MCParser/DarwinAsmParser.cpp
    M llvm/lib/MC/MCStreamer.cpp
    M llvm/lib/MC/MCWasmStreamer.cpp
    M llvm/lib/MC/MCWinCOFFStreamer.cpp
    M llvm/lib/Object/Object.cpp
    M llvm/lib/Object/RecordStreamer.h
    M llvm/lib/Support/CommandLine.cpp
    M llvm/lib/Support/TrieRawHashMap.cpp
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
    M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
    M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp
    M llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h
    M llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp
    M llvm/lib/Target/X86/X86AsmPrinter.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.h
    M llvm/lib/Transforms/Utils/LoopPeel.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/test/Analysis/LoopAccessAnalysis/forked-pointers.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/dropped_debug_info_assert.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-inline-asm.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-metadata.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/load-legalize-range-metadata.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/mmra.ll
    M llvm/test/CodeGen/AMDGPU/lower-kernel-and-module-lds.ll
    M llvm/test/CodeGen/AMDGPU/lower-kernel-lds.ll
    M llvm/test/CodeGen/AMDGPU/lower-lds-struct-aa-memcpy.ll
    M llvm/test/CodeGen/AMDGPU/lower-lds-struct-aa-merge.ll
    M llvm/test/CodeGen/AMDGPU/lower-lds-struct-aa.ll
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-all-indirect-accesses.ll
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-indirect-extern-uses-max-reachable-alignment.ll
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-via-hybrid.ll
    M llvm/test/CodeGen/AMDGPU/mmra.ll
    M llvm/test/CodeGen/AMDGPU/select-undef.ll
    M llvm/test/CodeGen/ARM/ldrd.ll
    M llvm/test/CodeGen/ARM/thumb-function-section-reloc.ll
    M llvm/test/CodeGen/Thumb/thumb-shrink-wrapping.ll
    M llvm/test/DebugInfo/ARM/header.ll
    M llvm/test/Transforms/LICM/hoist-binop.ll
    M llvm/test/Transforms/LoopUnroll/peel-last-iteration.ll
    A llvm/test/Transforms/LoopUnroll/unroll-and-peel-last-iteration.ll
    M llvm/test/Transforms/LoopVectorize/SystemZ/pr47665.ll
    M llvm/test/Transforms/LoopVectorize/X86/cost-model.ll
    M llvm/test/Transforms/LoopVectorize/version-stride-with-integer-casts.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_bullet3.ll
    M llvm/test/Transforms/SLPVectorizer/X86/matched-bv-schedulable.ll
    A llvm/test/Transforms/SLPVectorizer/X86/node-outside-used-only.ll
    M llvm/test/Transforms/SLPVectorizer/X86/phi-node-with-cycle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/user-node-with-same-last-instr.ll
    M llvm/test/Transforms/SLPVectorizer/revec.ll
    M llvm/tools/bugpoint/CrashDebugger.cpp
    M llvm/tools/llvm-mca/llvm-mca.cpp
    M llvm/tools/llvm-rc/ResourceFileWriter.cpp
    M llvm/unittests/Support/SpecialCaseListTest.cpp
    M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
    M llvm/unittests/XRay/GraphTest.cpp
    M llvm/utils/UpdateTestChecks/asm.py
    M llvm/utils/gn/secondary/lldb/tools/lldb-dap/BUILD.gn
    M mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
    M mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
    M mlir/lib/Dialect/GPU/Transforms/EliminateBarriers.cpp
    M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
    M mlir/lib/Dialect/MemRef/Transforms/EmulateNarrowType.cpp
    M mlir/lib/Dialect/MemRef/Transforms/ExpandStridedMetadata.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorDescriptor.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorDialect.cpp
    M mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
    M mlir/lib/Transforms/RemoveDeadValues.cpp
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    M mlir/test/Conversion/MemRefToLLVM/expand-then-convert-to-llvm.mlir
    M mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/misc-other.mlir
    M mlir/test/Dialect/MemRef/emulate-narrow-type.mlir
    M mlir/test/Dialect/MemRef/invalid.mlir
    M mlir/test/Dialect/MemRef/ops.mlir
    M mlir/test/Dialect/Tensor/bufferize.mlir
    M mlir/test/Integration/Dialect/MemRef/assume-alignment-runtime-verification.mlir

  Log Message:
  -----------
  Fix format in SpecialCaseList.cpp

Created using spr 1.3.6


Compare: https://github.com/llvm/llvm-project/compare/c51ac31bd7ec...58a80a7ecb97

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list