[libc++] Deprecate std::launch::any extension (#173397)
`std::launch::any` was a draft C++11 feature that was removed before the
final standard but it has remained in libc++ as an extension. This patch
marks it as deprecated and suggests using `std::launch::async |
std::launch::deferred` instead.
- Used `_LIBCPP_DEPRECATED_` to mark `std::launch::any` as deprecated
with an associated warning message recommending `std::launch::async |
std::launch::deferred` instead.
- Added a `.verify.cpp` test to validate the deprecation warning.
- Updated existing tests to avoid using the deprecated extension.
- Added note about deprecation in docs.
Fixes #173219
---------
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
[RISCV] Add isel pattern (setlt (shl X, 32), 0) -> srliw. (#178765)
DAGCombiner sometimes turns (setlt (sext_inreg, X, i32), 0) into this
now so we need another pattern.
I tried to remove the sext_inreg pattern but it seems DAGCombiner
doesn't always do this transform. I suspect it depends on if
SimplifyDemandedBits visits the setcc. We could probably make (setlt Y,
0) call SimplifyDemandedBits on itself.
Fixes #178600.
[lldb] Add support for ScriptedFrame to provide values/variables. (#178575)
This patch adds plumbing to support the implementations of StackFrame::Get{*}Variable{*} on ScriptedFrame. The major pieces required are:
- A modification to ScriptedFrameInterface, so that we can actually call the python methods.
- A corresponding update to the python implementation to call the python methods.
- An implementation in ScriptedFrame that can get the variable list on construction inside ScriptedFrame::Create, and pass that list into the ScriptedFrame so it can get those values on request.
There is a major caveat, which is that if the values from the python side don't have variables attached, right now, they won't be passed into the scripted frame to be stored in the variable list. Future discussions around adding support for 'extended variables' when printing frame variables may create a reason to change the VariableListSP into a ValueObjectListSP, and generate the VariableListSP on the fly, but that should be addressed at a later time.
This patch also adds tests to the frame provider test suite to prove these changes all plumb together correctly.
Related radar: rdar://165708771
[msan] Handle Arm NEON BFloat16 multiply-add to single-precision (#178510)
aarch64.neon.bfmlalb/t perform dot-products after zeroing out the
odd/even-indexed values. We handle these by generalizing
handleVectorDotProductIntrinsic() and (mis-)using getPclmulMask().
[clang-tidy] Speed up `cppcoreguidelines-pro-bounds-array-to-pointer-decay` (#178775)
By just changing the order of some conditions, the check goes from
fairly expensive to very cheap:
```txt
---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name ---
Status quo: 0.7812 ( 1.7%) 0.0469 ( 0.7%) 0.8281 ( 1.6%) 0.5585 ( 1.1%) cppcoreguidelines-pro-bounds-array-to-pointer-decay
With this change: 0.0312 ( 0.1%) 0.0000 ( 0.0%) 0.0312 ( 0.1%) 0.0598 ( 0.1%) cppcoreguidelines-pro-bounds-array-to-pointer-decay
```
`hicpp-no-array-decay` is an alias of this check and so benefits too.