[Plugins] Rename PassPlugin::Load to load. NFC (#227408)
Follow the lowerCamelCase function naming convention and take StringRef.
Extracted from #226773
Add middleware support for LIO ALUA HA
Wire up the middleware side of LIO ALUA high-availability: load
lio_ha.ko with per-node addresses on service start, manage ALUA
state across failover events, clean up STANDBY configfs on pool
export, and add pre-flight validation that targets have static
initiator ACLs before ALUA can be enabled.
For each target, create a portal-less phantom TPG carrying the peer
node's controller group so that a single RTPG response from any
connected port lists both ALUA groups. Write tpgt_N/rtpi explicitly
before enable so that relative target port IDs in RTPG match the
tag formula (portal.tag on Node A, portal.tag + 32000 on Node B)
rather than being auto-assigned sequentially by the kernel.
ALUA group states are driven by role and ha_state:
MASTER + synced local=OPTIMIZED remote=NONOPTIMIZED
MASTER + connected local=OPTIMIZED remote=TRANSITIONING
[4 lines not shown]
TwoAddressInstructions: Don't treat an undef use as a kill (#227309)
An undef use does not read a value, so LiveIntervals does not extend the
live range to cover it. Previously this would hit the assert on an
undef use.
Exposed by #225174, which made LiveIntervals available here by default.
Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
[ARM] Use target constant for MVE fixed fp convert constant (#227250)
If the constant already exists then we would reuse the constant in a
register instead of using an immediate, as the instruction requires. Use
a TargetConstant to make sure we generate an immediate.
Fixes #226591
[llvm] Adjust export annotations for tests (#227255)
* Properly export templates so they work on both Windows and Linux.
* Adjust LLVM_ABI_FOR_TEST annotations to be in the right place and
remove redundant annotations.
[Clang][NFC] Fix tagging issue number in clang releasenotes (#227374)
Fix tagging the issue number in the clang release notes to make them
clickable after rendering
[compiler-rt] Support `-shared-libsan` for Offload UBSan (#226551)
Summary:
The offload UBSan is intentionally implemented as a separate 'add-on'
library. This makes it more clear where the separation lies and avoids
including it in all existing UBSan users. However, this doesn't work
with `-shared-libsan`'s `*.so` builds because we now have a function
call barrier and the internal utility functions are hidden.
This PR changes the shared version to fold the HSA / Offloading handlers
into the `libclang_rt.ubsan.so` library. The specific fallout is that
~30KiB is added to the shared library and it will now intercept `dlsym`
for other users, but this should be benign. The overhead here is less
concerning than in the static case because it is shared and usually
loaded lazily by the system.
[Clang][Sema] Add fortify warnings for poll, ppoll, and ppoll64 (#226261)
Add `-Wfortify-source` diagnostics for `poll`, `ppoll`, and `ppoll64` when the byte size required for `nfds` descriptors (`nfds * sizeof(*fds)`) exceeds the destination `fds` buffer size.
Supersedes the `poll` portion of #177286 (similar to #198130 for `umask`).
Part of #142230
Assisted-by: Gemini
[libc++] Fix calling push_heap on an empty range in the push_heap benchmark (#227076)
std::push_heap requires a non-empty range because it inserts the element
at position `last - 1` (which isn't valid for an empty range) into the
heap. This didn't show up as a problem with libc++ since we have a
defensive implementation, but libstdc++ does not.
[ValueTracking] Support Array and Structure in contains* check (#226748)
Support Vector and Structure in containsUndefinedElement,
containsUndefOrPoisonElement, and containsConstantExpression. We
achieved this by using containsMatchingElement helper function, which
checks type recursively as Structure and Array are aggregates, which can
contain basically anything inside. This allows InstCombine to fold these
two types for freeze correctly.
[lldb] Add null opcode to formatter bytecode (#224443)
This allows formatters to produce a null ValueObject, which can be
needed for
`@get_child_index` or `@get_child_at_index`.