[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.
[lldb] Make `print` delegate to synthetic frames.
This patch is more of a proposal in that it's a pretty dramatic change to the way that `print` works. It completely delegates getting values to the frame if the frame is synthetic, and does not redirect at all if the frame fails.
For this patch, the main goal was to allow the synthetic frame to bubble up its own errors in expression evaluation, rather than having errors come back with an extra "could not find identifier <blah>" or worse, simply get swallowed. If there's a better way to handle this, I'm more than happy to change this as long as the core goals of 'delegate variable/value extraction to the synthetic frame', and 'allow the synthetic frame to give back errors that are displayed to the user' can be met.
stack-info: PR: https://github.com/llvm/llvm-project/pull/178602, branch: users/bzcheeseman/stack/7
[lldb] Add support for ScriptedFrame to provide values/variables.
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
stack-info: PR: https://github.com/llvm/llvm-project/pull/178575, branch: users/bzcheeseman/stack/6
[LoongArch] Support `preserve_none` calling convention (#178566)
Add support for the `preserve_none` calling convention on LoongArch.
Registers `R4-R20` and `R23-R31` are treated as caller-saved and may be
used for argument passing, except for `R31`.
[LoongArch] Add option to disable scheduling of instructions with target flags
This patch adds a hidden command-line option
-loongarch-disable-reloc-sched. When enabled, isSafeToMove returns
false for instructions that have operands with target flags.
This effectively prevents code motion for instructions involved in
relocations, which is useful for debugging code generation issues
related to relocation sequences or scheduling boundaries.
Reviewers: heiher, SixWeining
Pull Request: https://github.com/llvm/llvm-project/pull/178639