SuccessChanges

Summary

  1. jenkins: More updates for "master" to "main" branch (details)
Commit 4cb746c769b80e7a5dfc99044bf6fe9314f5f0a6 by Azharuddin Mohammed
jenkins: More updates for "master" to "main" branch
The file was modifiedtest/jenkins/test_monorepo_build.py (diff)
The file was modifiedzorg/jenkins/monorepo_build.py (diff)

Summary

  1. [RISCV] Use custom isel for vector indexed load/store intrinsics. (details)
  2. [RISCV] Remove unneeded indexed segment load/store vector pseudo instruction. (details)
  3. [X86] Regenerate 2011-12-06-AVXVectorExtractCombine.ll (details)
  4. [X86] Remove unused intrinsic declaration (details)
  5. [X86] Regenerate 2007-06-28-X86-64-isel.ll (details)
  6. [RISCV] Use inheritance to reduce some repeated code in tablegen. NFC (details)
  7. [Polly] Fix test after D96534. (details)
  8. [Analysis][LoopVectorize] do not form reductions of pointers (details)
  9. [libcxx] Have lexically_normal return the path with preferred separators (details)
  10. [libcxx] Fix LWG 2875: shared_ptr::shared_ptr(Y*, D, […]) constructors should be constrained. (details)
  11. [elfabi] Fix a bug when .dynsym contains no non-local symbol (details)
  12. [libcxx] Make generic_*string return paths with forward slashes on windows (details)
  13. [Verifier] add tests for saturating intrinsics; NFC (details)
  14. [Verifier] remove dead code for saturating intrinsics; NFC (details)
  15. [flang][fir][NFC] run clang-format (details)
  16. precommit test cleanup for D97077 (details)
  17. [msan] Set cmpxchg shadow precisely (details)
  18. [clang] Emit type metadata on available_externally vtables for WPD (details)
  19. [mlir] Add math polynomial approximation pass (details)
  20. Patch by @wecing (Chenguang Wang). (details)
  21. Add test triggered by review discussion on D97077 (details)
  22. [lldb] Rename {stop,run}_vote to report_{stop,run}_vote (details)
Commit d056d5decfb593cfc53b421a89075d2063f76ec9 by craig.topper
[RISCV] Use custom isel for vector indexed load/store intrinsics.

There are many legal combinations of index and data VTs supported
for these intrinsics. This results in a lot of isel patterns in
RISCVGenDAGISel.inc.

By adding a separate table similar to what we use for segment
load/stores, we can more efficiently manually select these
intrinsics. We should also be able to reuse this table scalable
vector gather/scatter.

This reduces the llc binary size by ~56K.

Reviewed By: khchen

Differential Revision: https://reviews.llvm.org/D97033
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.h
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
Commit 7f5b3886e41ca0ff9e4275e515bd6dde576ead35 by craig.topper
[RISCV] Remove unneeded indexed segment load/store vector pseudo instruction.

We had more combinations of data and index lmuls than we needed.

Also add some asserts to verify that the IndexVT and data VT have
the same element count when we isel these pseudo instructions.
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
Commit 6ad4bf330bfbbc48d83c0bc3dc85a4f2386629ba by llvm-dev
[X86] Regenerate 2011-12-06-AVXVectorExtractCombine.ll
The file was modifiedllvm/test/CodeGen/X86/2011-12-06-AVXVectorExtractCombine.ll
Commit 3dae0b5703c2e7cb1b5b2cc04efc9286d4d3f605 by llvm-dev
[X86] Remove unused intrinsic declaration
The file was modifiedllvm/test/CodeGen/X86/stack-folding-int-avx512vl.ll
Commit d7350efc402cbb7bb437cf23e559ef8ac38f1018 by llvm-dev
[X86] Regenerate 2007-06-28-X86-64-isel.ll
The file was modifiedllvm/test/CodeGen/X86/2007-06-28-X86-64-isel.ll
Commit e7c86f4ac4f24db10b607bc0f38586e0d3af2ec4 by craig.topper
[RISCV] Use inheritance to reduce some repeated code in tablegen. NFC

The VLX and VSX searchable tables, share the same format so we
can have a common base class for them.
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
Commit 91c472c86ce97542ca0d5f6810b493ba8301df7a by llvm-project
[Polly] Fix test after D96534.
The file was modifiedpolly/test/Isl/CodeGen/scev-backedgetaken.ll
Commit 5b250a27ec7822aa0a32abb696cb16c2cc60149c by spatel
[Analysis][LoopVectorize] do not form reductions of pointers

This is a fix for https://llvm.org/PR49215 either before/after
we make a verifier enhancement for vector reductions with D96904.

I'm not sure what the current thinking is for pointer math/logic
in IR. We allow icmp on pointer values. Therefore, we match min/max
patterns, so without this patch, the vectorizer could form a vector
reduction from that sequence.

But the LangRef definitions for min/max and vector reduction
intrinsics do not allow pointer types:
https://llvm.org/docs/LangRef.html#llvm-smax-intrinsic
https://llvm.org/docs/LangRef.html#llvm-vector-reduce-umax-intrinsic

So we would crash/assert at some point - either in IR verification,
in the cost model, or in codegen. If we do want to allow this kind
of transform, we will need to update the LangRef and all of those
parts of the compiler.

Differential Revision: https://reviews.llvm.org/D97047
The file was modifiedllvm/lib/Analysis/IVDescriptors.cpp
The file was addedllvm/test/Transforms/LoopVectorize/reduction-ptr.ll
Commit 513463fd266f059864ce3c0236494cced5de0f56 by martin
[libcxx] Have lexically_normal return the path with preferred separators

Differential Revision: https://reviews.llvm.org/D91179
The file was modifiedlibcxx/src/filesystem/operations.cpp
Commit dbc89028d737a2f116a376c3378ae1eee94239c0 by zoecarver
[libcxx] Fix LWG 2875: shared_ptr::shared_ptr(Y*, D, […]) constructors should be constrained.

Fixes LWG issue 2875.

Differential Revision: https://reviews.llvm.org/D81414
The file was modifiedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_allocator.pass.cpp
The file was modifiedlibcxx/docs/Cxx1zStatusIssuesStatus.csv
The file was modifiedlibcxx/test/libcxx/utilities/memory/util.smartptr/util.smartptr.shared/function_type_default_deleter.fail.cpp
The file was modifiedlibcxx/include/memory
Commit 784c7debb21795a0c0a4188590a7eac14f170744 by haowei
[elfabi] Fix a bug when .dynsym contains no non-local symbol

This patch fixed a bug when elbabi was supplied with a tbe file
contains no non-local symbol. Before this patch, it wrote 0 to
sh_info of the .dynsym section, making the ELF stub file invalid.
This patch fixed this issue.

Differential Revision: https://reviews.llvm.org/D96930
The file was modifiedllvm/lib/InterfaceStub/ELFObjHandler.cpp
The file was addedllvm/test/tools/llvm-elfabi/write-stub-no-nonlocal-symbol.test
Commit f4f5fb915104887fefa602cfcbd1d4fc8447d46b by martin
[libcxx] Make generic_*string return paths with forward slashes on windows

This matches what MS STL returns; in std::filesystem, forward slashes
are considered generic dir separators that are valid on all platforms.

Differential Revision: https://reviews.llvm.org/D91181
The file was modifiedlibcxx/include/filesystem
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/named_overloads.pass.cpp
Commit 38730b0029a448bff1c9ebd081747e748bcfa1ee by spatel
[Verifier] add tests for saturating intrinsics; NFC

As noted in D96904, we don't have direct tests for these malformed ops.
The file was addedllvm/test/Verifier/sat-intrinsics.ll
Commit d79063129c286b02fae04542051856f1229cee3d by spatel
[Verifier] remove dead code for saturating intrinsics; NFC

Test coverage shows that we assert with the string from the
tablegen defs file for these intrinsics, so these cases
should never be live.
The file was modifiedllvm/lib/IR/Verifier.cpp
Commit a88991d782889abcb3a1d44860d7cb009fa15747 by eschweitz
[flang][fir][NFC] run clang-format

cleanup post-merge
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.h
Commit 5de47ebff6d763a1ee7030252227a64a6dcce521 by listmail
precommit test cleanup for D97077
The file was modifiedllvm/test/Analysis/ScalarEvolution/ranges.ll
Commit efc8f3311b57ce438500d8a0908e6c7cf6c9f551 by jianzhouzh
[msan] Set cmpxchg shadow precisely

In terms of https://llvm.org/docs/LangRef.html#cmpxchg-instruction,
the return type of chmpxchg is a pair {ty, i1}, while I think we
only wanted to set the shadow for the address 0th op, and it has type
ty.

Reviewed-by: eugenis

Differential Revision: https://reviews.llvm.org/D97029
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
The file was modifiedllvm/test/Instrumentation/MemorySanitizer/atomics.ll
Commit 0923a60ea70f884d2f170f65d0faa494a25af231 by tejohnson
[clang] Emit type metadata on available_externally vtables for WPD

When WPD is enabled, via WholeProgramVTables, emit type metadata for
available_externally vtables. Additionally, add the vtables to the
llvm.compiler.used global so that they are not prematurely eliminated
(before *LTO analysis).

This is needed to avoid devirtualizing calls to a function overriding a
class defined in a header file but with a strong definition in a shared
library. Without type metadata on the available_externally vtables from
the header, the WPD analysis never sees what a derived class is
overriding. Even if the available_externally base class functions are
pure virtual, because shared library definitions are already treated
conservatively (committed patches D91583, D96721, and D96722) we will
not devirtualize, which would be unsafe since the library might contain
overrides that aren't visible to the LTO unit.

An example is std::error_category, which is overridden in LLVM
and causing failures after a self build with WPD enabled, because
libstdc++ contains hidden overrides of the virtual base class methods.

Differential Revision: https://reviews.llvm.org/D96919
The file was modifiedclang/lib/CodeGen/ItaniumCXXABI.cpp
The file was modifiedclang/test/CodeGenCXX/type-metadata.cpp
Commit f99ccf6516bdd5def4d3bc311330aec92f5cb99d by ezhulenev
[mlir] Add math polynomial approximation pass

This gives ~30x speedup compared to expanding Tanh into exp operations:

```
name                  old cpu/op  new cpu/op  delta
BM_mlir_Tanh_f32/10    253ns ± 3%    55ns ± 7%  -78.35%  (p=0.000 n=44+41)
BM_mlir_Tanh_f32/100  2.21µs ± 4%  0.14µs ± 8%  -93.85%  (p=0.000 n=48+49)
BM_mlir_Tanh_f32/1k   22.6µs ± 4%   0.7µs ± 5%  -96.68%  (p=0.000 n=32+42)
BM_mlir_Tanh_f32/10k   225µs ± 5%     7µs ± 6%  -96.88%  (p=0.000 n=49+55)

name                  old time/op             new time/op             delta
BM_mlir_Tanh_f32/10    259ns ± 1%               56ns ± 2%  -78.31%        (p=0.000 n=41+39)
BM_mlir_Tanh_f32/100  2.27µs ± 1%             0.14µs ± 5%  -93.89%        (p=0.000 n=46+49)
BM_mlir_Tanh_f32/1k   22.9µs ± 1%              0.8µs ± 4%  -96.67%        (p=0.000 n=30+42)
BM_mlir_Tanh_f32/10k   230µs ± 0%                7µs ± 3%  -96.88%        (p=0.000 n=37+55)
```

This approximations is based on Eigen::generic_fast_tanh function

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D96739
The file was addedmlir/test/lib/Transforms/TestPolynomialApproximation.cpp
The file was modifiedmlir/include/mlir/Dialect/Math/Transforms/Passes.h
The file was addedmlir/lib/Dialect/Math/Transforms/PolynomialApproximation.cpp
The file was modifiedmlir/lib/Dialect/Math/Transforms/CMakeLists.txt
The file was modifiedmlir/test/lib/Transforms/CMakeLists.txt
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was addedmlir/test/mlir-cpu-runner/math_polynomial_approx.mlir
The file was addedmlir/test/Dialect/Math/polynomial-approximation.mlir
Commit a0757d8ebdefa1c54896d70d2a04f68fc23f7916 by timshen
Patch by @wecing (Chenguang Wang).

The current getFoldedSizeOf() implementation uses naive recursion, which
could be really slow when the input structure type is too complex.

This issue was first brought up in
http://llvm.org/bugs/show_bug.cgi?id=8281; this change fixes it by
adding memoization.

Differential Revision: https://reviews.llvm.org/D6594
The file was addedllvm/test/tools/llvm-as/slow-ptrtoint.ll
The file was modifiedllvm/lib/IR/ConstantFold.cpp
Commit 7e3183d7352281b5d87668e66ad4d0870448a1a8 by listmail
Add test triggered by review discussion on D97077
The file was modifiedllvm/test/Analysis/ScalarEvolution/ranges.ll
Commit 9d3b9e5799f6b1ac3869df977c82304e0121d256 by davelee.com
[lldb] Rename {stop,run}_vote to report_{stop,run}_vote

Rename `stop_vote` and `run_vote` to `report_stop_vote` and `report_run_vote`
respectively. These variables are limited to logic involving (event) reporting only.
This naming is intended to make their context more clear.

Differential Revision: https://reviews.llvm.org/D96917
The file was modifiedlldb/source/Target/ThreadPlanStepOut.cpp
The file was modifiedlldb/source/Target/Process.cpp
The file was modifiedlldb/source/Target/ThreadPlanBase.cpp
The file was modifiedlldb/include/lldb/Target/ThreadPlan.h
The file was modifiedlldb/include/lldb/Target/ThreadPlanStepInstruction.h
The file was modifiedlldb/include/lldb/Target/Thread.h
The file was modifiedlldb/source/Target/ThreadPlanStepInstruction.cpp
The file was modifiedlldb/include/lldb/Target/ThreadPlanStepOut.h
The file was modifiedlldb/source/Target/ThreadPlan.cpp
The file was modifiedlldb/source/Target/Thread.cpp