[mlir] Remove unnecessary allow-unregistered-dialect flags (#220613)
This is bad practice, instead use unknown operations in the test dialect
when tests only need placeholders.
Use a registered SPIR-V operation for translation diagnostics.
Assisted-by: Codex
[libc][baremetal] add MVE/MVE_FP feature flags detection (#220345)
This patch adds MVE/MVE_FP SIMD feature flags for baremetal targets.
Cortex-M85/Cortex-M55 introduced the M-profile Vector Extension
(Helium). The detection is via the `__ARM_FEATURE_MVE` bitfield as
described in the Arm C Language Extensions (ACLE): bit 0 is set when
the MVE integer instructions are available, bit 1 when the
floating-point instructions are also available.
Co-authored-by: Claude Fable 5 <noreply at anthropic.com>
[SystemZ] XPLINK64: keep CCAssignToRegAndStack rule for bare i32 args (#220354)
Bare i32 arguments (no signext/zeroext, e.g. sitofp sources or
struct-coerced i32s) must be assigned to R1L/R2L/R3L by the
CCAssignToRegAndStack rule in CC_SystemZ_XPLINK64.
Without that rule they fall through to the stack fallback,
producing wrong codegen (stack loads instead of register references).
This test demonstrates the regression caused by removing the
CCIfType<[i32], CCAssignToRegAndStack<[R1L,R2L,R3L],8,8>> rule
from CC_SystemZ_XPLINK64 and serves as justification for keeping it.
This is a pre-existing independent issue extracted from #206833 per
reviewer request.
Remove overly strict assertion for this-capture in blocks (#219080)
TransformBlockExpr asserted that if the instantiated block captures
'this', the uninstantiated pattern block must also have captured it.
This assumption doesn't always hold: a block that accesses a member
through a dependent qualified-id (e.g., 'T::m' inside a template
deriving from T) has no way to know at parse time that the access will
resolve to an implicit 'this->m', since T is unknown. Once the template
is instantiated and 'T::m' resolves to a non-static data member, the
instantiated block legitimately captures 'this' even though the pattern
never did.
rdar://184776458
[lldb] Return llvm::Expected from Process::ReadPointerFromMemory (#216389)
The function reported failure twice, through a Status out-parameter and
by returning LLDB_INVALID_ADDRESS. Returning
llvm::Expected<lldb::addr_t> collapses those into a single channel that
cannot be ignored.
Note that ReadScalarIntegerFromMemory can report a short read without
setting the Status so callers could previously get a success Status
alongside LLDB_INVALID_ADDRESS. That case now yields an error.
Call sites that already discarded the Status consume the error
explicitly to preserve their behavior. Error-path logging uses
LLDB_LOG_ERROR instead of passing takeError() to LLDB_LOG/LLDB_LOGF,
which only evaluate their arguments when the channel is enabled and
would otherwise leave the error unchecked and abort.
Assisted-by: Claude
[ADT] Move traits after FoldingSetNodeID to inline Equals (NFC) (#220494)
This patch moves down DefaultFoldingSetTrait and
DefaultContextualFoldingSetTrait after FoldingSetNodeID, allowing
Equals to be defined inline in DefaultFoldingSetTrait and
DefaultContextualFoldingSetTrait.
Assisted-by: Antigravity
Revert "[lldb][test] Disable two breakpoint tests for debugserver (#2… (#220615)
…18636)"
This reverts commit 7ea6d83f49d975d64ef2548561a46619c86b3570.
The tests should now pass.
[llvm][ADT] Remove function_ref equality operator (#220600)
The equality operator no longer has in-tree users.
TableGen replaced its function_ref callback wrapper with its own FnT.
Assisted-by: Codex
[GlobalISel] Remove dead declarations and functions (NFC) (#220499)
CombinerHelper::tryCombine: The corresponding function definition was
removed on September 24, 2023 in commit
bc6e7f057340ab0b995cc17a170e34545a295f03.
GISelValueTracking::getKnownBits(MachineInstr &): Added on August 6,
2019
in commit c8ac029d0ae27b8fd392f216d471ba2730be7fd1 without any callers.
GISelValueTracking::computeKnownBitsForAlignment: The last use was
removed on June 3, 2020 in commit
45e1a22a92bf2c33336ccc02ea4fa3996f60252b.
LegalizerHelper::lowerU64ToF32BitOps: The last use was removed on
September 25, 2024 in commit e9cb44090ff7b3feda386ca1ee1252ab47c0617e.
Assisted-by: Antigravity
[VectorCombine] Avoid calling getTypeSizeInBits on scalable vectors in scalarizeLoadBitcast (#220482)
Avoids `LLVM ERROR: Cannot implicitly convert a scalable size to a
fixed-width size in TypeSize::operator ScalarTy()`
[AArch64][GlobalISel] Add tablegen patterns for smull+sqshrn -> sqdmulh. (#217318)
We do this in parts in globalisel, recognizing the smull and trunc_sat,
which when combined with the correct shift can fold into a single
sqdmulh.
[MachineFunction] Print type when printing constant pool value. (#220485)
Previously we printed something like `cp#2: splat (i8 -8), align=64`
which doesn't give any indication of total size.
This would have made debugging
https://github.com/llvm/llvm-project/pull/220448 easier.