[PowerPC] Update MIR syntax for INSERT_SUBREG in tests (#219523)
Use names instead of numbers for the subreg index operands in
INSERT_SUBREG instructions.
[PowerPC] Remove assumptions about subreg index values. NFC. (#219524)
Use subreg index names instead of hard coded values in a few places in
the backend.
NAS-142786 / 26.0.0-RC.1 / reduce duplicate code (by yocalebo) (#19564)
Just a small improvement I noticed while working in this file for
something unrelated. Backporting to RC.1 so future back ports from 27 to
26 aren't so painful.
Original PR: https://github.com/truenas/middleware/pull/19563
Co-authored-by: caleb <yocalebo at gmail.com>
NAS-142786 / 27.0.0-BETA.1 / reduce duplicate code (#19563)
Just a small improvement I noticed while working in this file for
something unrelated. Backporting to RC.1 so future back ports from 27 to
26 aren't so painful.
[SROA] Reject illegal vector memset promotion (#216772)
SROA can select vector promotion for an `alloca` partition containing a
memset and vector accesses whose element type is an unstable pointer.
We discovered this while building Julia with LLVM 21 and assertions
enabled. SROA crashed in `convertValue` because `canConvertValue`
rejected converting an integer splat to a non-integral pointer:
```
Assertion `canConvertValue(DL, OldTy, NewTy, VScale) &&
"Value not convertable to type"' failed.
```
Current main no longer asserts because `convertValue` was replaced by
`CreateBitPreservingCastChain`. However, the underlying unsupported
transformation remains.
For example:
[33 lines not shown]
[CIR] Drop call-conv-lowering opt-out from coro-task.cpp (#218990)
coro-task.cpp opted out of CallConvLowering because the pass did not
handle parameters of an empty or tag class. CallConvLowering handles
them now, so the test can run the pass and pin what it produces.
complex_co_await has one non-empty value in the modified CHECK lines. We
now lower complex correctly as well.
Assisted-by: Cursor / claude-opus-5
[AMDGPU][NFC] Unify getImmOrMaterializedImm and getFoldableImm (#219522)
`getImmOrMaterializedImm` and `getFoldableImm` both determine if an
operand has a constant value. Make a unified implementation that
supports the interfaces of both using the `getImmOrMaterializedImm`
name.
Signed-off-by: John Lu <John.Lu at amd.com>
[AMDGPU] Add the 3-dword image_gather4 variant for packed D16 + TFE (#215972)
MIMG_Gather only defined V2/V4/V5 destination-dword variants, so a d16
gather4 with tfe (which needs 3 dwords on packed-D16 targets) hit
"Cannot select" on gfx10+
[RISCV] Move combineANDOfSETCCToCZERO to isel patterns. (#219318)
This allows us to reuse RISCVDAGToDAGISel::selectSETCC to pick
the best instruction when comparing against a constant.
[lldb] Fix SBAPI breakage in SBFrame::GetValueForVariablePath (#218565)
SBFrame::GetValueForVariablePath added new parameters in commit
80fffd527c20ac8970fbffc37c674caa17faa815.
This caused an ABI break because
the ABI is based on the function's mangled name, which changes when
parameters are added. Existing users depend on the original symbol being
present in the library.
changing the ABI from:
```cpp
// _ZN4lldb7SBFrame23GetValueForVariablePathEPKcNS_16DynamicValueTypeE
lldb::SBFrame::GetValueForVariablePath(char const*, lldb::DynamicValueType)
```
to
```cpp
// _ZN4lldb7SBFrame23GetValueForVariablePathEPKcNS_16DynamicValueTypeENS_7DILModeE`
lldb::SBFrame::GetValueForVariablePath(char const*, lldb::DynamicValueType, lldb::DILMode)
```
[45 lines not shown]
[clang-format] Add BraceWrapping.AfterRequiresExpression option (#216465)
Thir PR adds a `BraceWrapping.AfterRequiresExpression` sub-option that
wraps the opening brace of requires expressions, and enable it in the
`Allman`, `Whitesmiths`, and `GNU` presets of `BreakBeforeBraces`.
The brace is only wrapped if the requires expression doesn't fit on a
single line, matching the behavior of `BeforeLambdaBody`. The wrapped
brace is aligned with its closing brace:
```cpp
template <typename T>
concept Uart = requires(T a)
{
{ a.write() } -> std::convertible_to<std::size_t>;
a.flush();
};
```
Closes: #202901
Sort the list of segments entered with -s so they appear in the output in
sequence regardless of the input order. In particular, the old code always
produced the segments in reverse order.