Changes

Summary

  1. [NFC][X86][Costmodel] Add AVX512DQ runlines to trunc.ll/extend.ll (details)
  2. compiler-rt: Use FreeBSD's elf_aux_info to detect AArch64 HW features (details)
  3. [Libomptarget] Remove undefined symbol in old runtime (details)
  4. [MLIR] Simplify Semi-affine expressions by rule based matching and replacing "expr - q * (expr floordiv q)" with  "expr mod q" expression. (details)
  5. [libc++] [test] Eliminate libcpp-no-noexcept-function-type and libcpp-no-structured-bindings. (details)
  6. [InstCombine] add tests for bitwise logic with bool op; NFC (details)
  7. [InstCombine] add folds for binop with sexted bool and constant operands (details)
  8. [VPlan] Wrap vector loop blocks in region. (details)
  9. [CVP] Add tests for implied conditions using urem (NFC) (details)
  10. [LVI] Support urem in implied conditions (details)
  11. [LVI] Drop requirement that modulus is constant (details)
  12. [clang-tidy] performance-unnecessary-copy-initialization: Correctly match the type name of the thisPointertype. (details)
  13. [DSE] Drop hasAnalyzableMemoryWrite() (NFCI) (details)
  14. [NFC][X86][Costmodel] Actually test +prefer-256-bit in replication-shuffle-related tests :( (details)
  15. [libc++] [doc] Mark some spaceship-related LWG issues as "Complete." (details)
  16. [libc++][NFC] Fix typo in ranges::iterator_t synopsis (details)
Commit da47a63e039428fdf8f827381fa87c84f36581ef by lebedev.ri
[NFC][X86][Costmodel] Add AVX512DQ runlines to trunc.ll/extend.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/trunc.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/extend.ll
Commit 7dbbb5d3a46e1526cfa126ae02a5856d7ce0fda9 by dimitry
compiler-rt: Use FreeBSD's elf_aux_info to detect AArch64 HW features

Using the out-of-line LSE atomics helpers for AArch64 on FreeBSD also
requires adding support for initializing __aarch64_have_lse_atomics
correctly. On Linux this is done with getauxval(3), on FreeBSD with
elf_aux_info(3), which has a slightly different interface.

Differential Revision: https://reviews.llvm.org/D109330
The file was modifiedcompiler-rt/lib/builtins/cpu_model.c
Commit fbfe8fcbc31d492d5538c09782b787bba89d01e5 by jhuber6
[Libomptarget] Remove undefined symbol in old runtime

A function with no definition was left in the old runtime, causing
linker errors when trying to compile.

Reviewed By: tianshilei1992

Differential Revision: https://reviews.llvm.org/D114264
The file was modifiedopenmp/libomptarget/deviceRTLs/target_interface.h
Commit ec7b0d4d3458cf42c4e40da2ea391b29ba1731dd by uday
[MLIR] Simplify Semi-affine expressions by rule based matching and replacing "expr - q * (expr floordiv q)" with  "expr mod q" expression.

Add rule based matching for detecting and transforming "expr - q * (expr floordiv q)"
to "expr mod q", where q is a symbolic exxpression, in simplifyAdd function.

Reviewed By: bondhugula, dcaballe

Differential Revision: https://reviews.llvm.org/D112985
The file was modifiedmlir/test/Dialect/Affine/simplify-affine-structures.mlir
The file was modifiedmlir/lib/IR/AffineExpr.cpp
Commit 401b76fdf2b328520cc71d829ea726b74bb2192f by arthur.j.odwyer
[libc++] [test] Eliminate libcpp-no-noexcept-function-type and libcpp-no-structured-bindings.

At this point, every supported compiler that claims a -std=c++17 mode
should also support these features.

Differential Revision: https://reviews.llvm.org/D113436
The file was modifiedlibcxx/test/std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp
The file was modifiedlibcxx/utils/libcxx/test/features.py
The file was modifiedlibcxxabi/test/catch_member_function_pointer_02.pass.cpp
The file was modifiedlibcxxabi/test/catch_function_03.pass.cpp
The file was modifiedlibcxx/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_structured_bindings.pass.cpp
Commit 1d007d0e5a929c3f5cb25aea18d6c8a16326c02e by spatel
[InstCombine] add tests for bitwise logic with bool op; NFC
The file was modifiedllvm/test/Transforms/InstCombine/and.ll
The file was modifiedllvm/test/Transforms/InstCombine/or.ll
Commit 337948ac6e2260fc4d5a1901b4f667a2a0a52ee3 by spatel
[InstCombine] add folds for binop with sexted bool and constant operands

This is a generalization/extension of the existing and/or
folds noted with TODO comments. Those have a one-use
constraint that is not necessary.

Potential follow-ups are noted by the TODO comments in
the new function. We can also call this function from
other binop visit* functions, but we need to add tests
first.

This solves:
https://llvm.org/PR52543

https://alive2.llvm.org/ce/z/NWuCR5
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineInternal.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/test/Transforms/InstCombine/and.ll
The file was modifiedllvm/test/Transforms/InstCombine/or.ll
Commit cf8efbd30e430fdd87a8120430d8e44ce0909f76 by flo
[VPlan] Wrap vector loop blocks in region.

A first step towards modeling preheader and exit blocks in VPlan as well.
Keeping the vector loop in a region allows for changing the VF as we
traverse region boundaries.

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D113182
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-dot-printing.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-printing.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/sve-widen-gep.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/icmp-uniforms.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge-vf1.ll
Commit 25a9ee52f139edc71043fbb218818aa735faa7b4 by nikita.ppv
[CVP] Add tests for implied conditions using urem (NFC)
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/urem.ll
Commit cd84cab6b37f615d0babd0b1c7b9e3acef5586c2 by nikita.ppv
[LVI] Support urem in implied conditions

If (X urem M) >= C we know that X >= C. Make use of this fact
when computing the implied condition range.

In some cases we could also establish an upper bound, but that's
both tricker and not interesting in practice.

Alive: https://alive2.llvm.org/ce/z/R5ZGSW
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/urem.ll
Commit 0a2bde94a06cea489c33004d66f574204c771031 by nikita.ppv
[LVI] Drop requirement that modulus is constant

If we're looking only at the lower bound, the actual modulus
doesn't matter. This is a leftover from when I wanted to consider
the upper bound as well, where the modulus does matter.
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/urem.ll
Commit fefe20b99313d6b0738806d1504652c3b7edb9e0 by flx
[clang-tidy] performance-unnecessary-copy-initialization: Correctly match the type name of the thisPointertype.

The matching did not work correctly for pointer and reference types.

Differential Revision: https://reviews.llvm.org/D114212

Reviewed-by: courbet
The file was modifiedclang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/performance-unnecessary-copy-initialization-excluded-container-types.cpp
Commit aeba28bc62442f4d3a29cc189fd68fca48ee0612 by nikita.ppv
[DSE] Drop hasAnalyzableMemoryWrite() (NFCI)

The functionality of hasAnalyzableMemoryWrite() is effectively
subsumed by getLocForWriteEx(), which will return None if the
instruction is not analyzable. The implementations don't match
exactly (e.g. getLocForWriteEx() does not limit non-calls to
stores), but in conjunction with the isRemovable() check, it ends
up being the same.
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
Commit df70cf5e140966458039975fe94971846bcf901d by lebedev.ri
[NFC][X86][Costmodel] Actually test +prefer-256-bit in replication-shuffle-related tests :(

While -prefer-256-bit indeed becomes complete with D114314,
the real-world (the one with +prefer-256-bit) coverage is lacking.

Hilarious.
The file was modifiedllvm/test/Analysis/CostModel/X86/shuffle-replication-i8.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/shuffle-replication-i64.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/extend.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/shuffle-replication-i16.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/trunc.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/shuffle-replication-i1.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/shuffle-replication-i32.ll
Commit e74114add3b3e3caf9461ac019ce68b4cb2ab721 by arthur.j.odwyer
[libc++] [doc] Mark some spaceship-related LWG issues as "Complete."

LWG3330 has been "Completed" since D99309, which was in the 13.x timeframe.
Reviewed as part of D110738.
The file was modifiedlibcxx/docs/Status/SpaceshipPapers.csv
The file was modifiedlibcxx/docs/Status/Cxx20Issues.csv
Commit dca681fee93e12d1e06733b607dec9f11d538151 by joeloser93
[libc++][NFC] Fix typo in ranges::iterator_t synopsis

The `iterator_t` alias template is on `T` not a `R` like the other
neighboring alias templates. Fix the typo.
The file was modifiedlibcxx/include/ranges