[DAG] UDIV/SDIV exact nodes support DemandedElts + add test (#198715)
Resolves #183047
This patch updates isKnownNeverZero to handle DemandedElts for UDIV and SDIV exact nodes.
[clang-doc][nfc] Avoid combining constexpr with std::initializer_list as this seems to give MSVC trouble. (#199311)
Some Windows bots using MSVC 2019 and 2022 get assertion errors in the
clang-doc lit tests (see
[here](https://github.com/llvm/llvm-project/pull/198066). This seems to
be due to MSVC having trouble with a correctly initializing structures
using std::initializer_list when embedded in a struct declared with
constexpr.
This workaround changes constexpr to const in a struct definition to
avoid this issue.
[X86] combineVectorInsert - use generic zext/shift/or pattern for constant concatenation (#199344)
Generalised the code added in #198273 to make it easier to support other
combos in future patches.
Hopefully we can get load combining to work here soon.
mail/p5-Email-Address-List: update to 0.07
Although the port is authored by Best Practical Solutions, there isn't
an up-to-date version of the sources on Best Practical's own mirror
site. Adjust MASTER_SITE and MASTER_SITE_SUBDIR accordingly.
Changes: https://metacpan.org/release/BPS/Email-Address-List-0.07/source/Changes
Reported by: repology
[libc++][test] Make `copy_move_types.h` usable in old modes (#199183)
This PR makes types in `copy_move_types.h` usable in C++03/11 modes.
Because it is discovered that some types in `copy_move_types.h` are
useful for testing uninitialized memory algorithms in pre-C++20 modes.
[NVPTX] Auto-upgrade llvm.nvvm.abs with int-min poison (#198646)
Update the auto-upgrade for llvm.nvvm.abs.i and llvm.nvvm.abs.ll to use
the generic llvm.abs intrinsic with is_int_min_poison=true. The previous
expansion used neg/icmp/select which gives defined INT_MIN -> INT_MIN
behavior, but loses the poison/undefined signed-min semantics needed for
NVPTX to select PTX abs.s32 and abs.s64 instrucitons when the source
operation permits signed-min overflow to be undefined. This is a
followup to #183851 . Using llvm.abs(..., true) preserves intended IR
semantics and lowers through the new ABS_MIN_POISON. We also update the
tests and add NVPTX CodeGen coverage for the legacy nvvm abs intrinsics.
[CIR] Attach noreturn attribute to __cxa_bad_cast (#198727)
## Summary
- Mark `__cxa_bad_cast` as `noreturn` in CIR, mirroring the existing
`__cxa_bad_typeid` handling. The attribute is now set on every `CallOp`
that targets it,
covering both the CodeGen direct path (`emitCallToBadCast`) and the
target-lowering path (`buildBadCastCall`).
- Drop the now-fulfilled `MissingFeatures::opFuncNoReturn` entry and
the corresponding TODO/assert at the lone caller in
`LowerItaniumCXXABI.cpp`.
- Update FileCheck expectations in `dynamic-cast.cpp`,
`dynamic-cast-exact.cpp`, and `abi-lower-after-unreachable.cpp` to
require the `{noreturn}` attribute on the lowered
`cir.call @__cxa_bad_cast()`.
[libc++][test] Add backported `destroy({_at,_n})` for tests (#199185)
It would be convenient to use `destroy_at`, `destroy`, and `destroy_n`
in tests for pre-C++17 uninitialized memory algorithms. So this PR add
backported versions of them for tests.