SuccessChanges

Summary

  1. [SDAG] allow vector types for select->logic folds (details)
  2. Split `ElementwiseMappable` trait into four more precise traits. (details)
  3. [Orc] Fix MSVC error: conversion from 'initializer list' requires a narrowing (details)
  4. [SLP]Merge reorder and reuse shuffles. (details)
  5. [clangd] findExplicitReferences impl filters nulls centrally. NFC (details)
  6. Revert "[flang] Detect circularly defined interfaces of procedures" (details)
  7. [DSE] eliminateDeadStoresMemorySSA - fix "initialization is never read" clang-tidy warning. NFCI. (details)
  8. [clang] DeltaTree::AddDelta - fix "initialization is never read" clang-tidy warning. NFCI. (details)
Commit 7fce3322a28303b864d912d8ac198f49e61f9f52 by spatel
[SDAG] allow vector types for select->logic folds

This prepares codegen for a change that will remove the identical
folds from IR because they are not poison-safe. See
D93065 / D97360
for details.

We already generically support scalar types, and there are various
target-specific transforms that overlap the vector folds. For example,
x86 recognizes the and patterns, but not or. We can end up with 1
extra instruction there, but I think that is still preferred over the
blendv alternative that loads a constant vector.

If this is not optimal, then it should be fixed with a later transform
(this change is not expected to result in any regressions because
InstCombine currently does the same thing).

Removing custom code and supporting undefs in constant-pattern-matching
can be follow-up changes.

Differential Revision: https://reviews.llvm.org/D97730
The file was modifiedllvm/test/CodeGen/X86/select-with-and-or.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/select-with-and-or.ll (diff)
Commit bcc9b371e43be8fa3fba65f2363eaf767731e0c7 by frgossen
Split `ElementwiseMappable` trait into four more precise traits.

Some elementwise operations are not scalarizable, vectorizable, or tensorizable.
Split `ElementwiseMappable` trait into the following, more precise traits.
  - `Elementwise`
  - `Scalarizable`
  - `Vectorizable`
  - `Tensorizable`
This allows for reuse of `Elementwise` in dialects like HLO.

Differential Revision: https://reviews.llvm.org/D97674
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td (diff)
The file was modifiedmlir/include/mlir/IR/OpBase.td (diff)
The file was modifiedmlir/include/mlir/IR/OpDefinition.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Math/IR/MathOps.td (diff)
The file was modifiedmlir/lib/IR/Operation.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Complex/IR/ComplexOps.td (diff)
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/ElementwiseToLinalg.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp (diff)
Commit a747e35c3ec371fce1f36424986b6b40ee2f25a9 by Stefan Gränitz
[Orc] Fix MSVC error: conversion from 'initializer list' requires a narrowing
The file was modifiedllvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp (diff)
Commit a054e94e9ea26b2aab85de02177e06b90ad8eef0 by a.bataev
[SLP]Merge reorder and reuse shuffles.

It is possible to merge reuse and reorder shuffles and reduce the total
cost of the vectorization tree/number of final instructions.

Differential Revision: https://reviews.llvm.org/D94992
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR32086.ll (diff)
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/shrink_after_reorder.ll (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff)
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/PR38339.ll (diff)
Commit 7556abf82137b57be9e32475a1995f936a22cd16 by sam.mccall
[clangd] findExplicitReferences impl filters nulls centrally. NFC
The file was modifiedclang-tools-extra/clangd/FindTarget.cpp (diff)
Commit 1253009eb20da936e551b824431dca282d970ef1 by andrzej.warzynski
Revert "[flang] Detect circularly defined interfaces of procedures"

This reverts commit 93c5e6bb49ca502d266700dd292e3873dfa51bb6.

This patch updates resolve102.f90 which is now failing in 6 out 8 of our
public buildbots:
  * http://lab.llvm.org:8011/#/builders/21/builds/9625
  * http://lab.llvm.org:8011/#/builders/134/builds/2395
  * http://lab.llvm.org:8011/#/builders/79/builds/6298
  * http://lab.llvm.org:8011/#/builders/66/builds/2084
  * http://lab.llvm.org:8011/#/builders/135/builds/2485
  * http://lab.llvm.org:8011/#/builders/32/builds/3551

Please see the following revisions for more context:
  * https://reviews.llvm.org/D97201
  * https://reviews.llvm.org/D97749
The file was modifiedflang/test/Semantics/resolve102.f90 (diff)
The file was modifiedflang/include/flang/Semantics/symbol.h (diff)
The file was modifiedflang/lib/Semantics/resolve-names.cpp (diff)
The file was modifiedflang/lib/Evaluate/characteristics.cpp (diff)
The file was modifiedflang/include/flang/Semantics/semantics.h (diff)
Commit 232f32f0daa527b449f5316436b44b5065e3e048 by llvm-dev
[DSE] eliminateDeadStoresMemorySSA - fix "initialization is never read" clang-tidy warning. NFCI.
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp (diff)
Commit fdae5573f54dd5f790630f5bba7f08bb00d62846 by llvm-dev
[clang] DeltaTree::AddDelta - fix "initialization is never read" clang-tidy warning. NFCI.
The file was modifiedclang/lib/Rewrite/DeltaTree.cpp (diff)