Firewall: Rules: Reuse state option validation fields
Use one shared state field list for match rules and rules configured without state, keeping both validation paths consistent.
[lldb] Add requireSocketPermission decorator for tests that bind sockets (#219208)
We sometimes run tests in sandboxed environments that deny all calls to
`bind`. This breaks a few of our tests that e.g. use a mock GDB server
or any other functionality involving sockets.
This patch adds a requireSocketPermission decorator (and an equivalent
utility for unittests) that check whether we are allowed to call bind.
If we aren't allowed to call bind, we skip the few tests that need this
functionality.
[Hexagon] Add GlobalArrayAlignment pass (#217850)
Add a module pass that raises the alignment of global integer arrays
(char, short, int), including multi-dimensional arrays, to an 8-byte
boundary. This gives their base address a wider alignment, which is
beneficial for the wide (double-word) loads and stores available on
Hexagon.
At -O1/-O2 the pass keeps byte and half-word arrays at their natural
alignment to reduce .rodata size; full 8-byte alignment is applied at
-O3. This size-reduction behavior can be disabled with
-hexagon-disable-align-opt-byte-half.
The pass is enabled by default and can be disabled with
-hexagon-disable-global-array-align.
Co-Authored by: Jyotsna Verma jverma at quicinc.com
Firewall: Rules: Mark normalization options as advanced
Keep the normalization section and its scrub controls out of the default rule dialog while retaining them in the shared advanced settings view.
PowerPC: Use use_instructions in TLSDynamicCall user collection
The loop only collects the using instructions, so iterate
use_instructions() instead of the operands to get their parents.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[libc++] Use __copy_n in vector::__assign_with_size (#218370)
This was originally part of #214132. However, that patch has some
difficult to track down performance issue. I'm splitting this up to make
the search easier.
X86: Use use_instructions in CompressEVEX cross-block check
The loop only checks the using instruction's parent block, so iterate
use_instructions() instead of the operands and checking their parents.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[MLIR][NVVM] Support tcgen05.mma{.block_scale}.decompress_b Ops (#218354)
This change adds support for `tcgen05.mma.decompress_b` and
`tcgen05.mma.block_scale.decompress_b` MLIR Ops.
Hexagon: Use use_instructions in EarlyIfConversion predicate check
The loop only checks whether any user is a PHI, so iterate
use_instructions() instead of the operands to query the parents.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
AMDGPU: Use use_nodbg_instructions in GCNSchedStrategy MFMA check
The loop only inspects the using instruction, so iterate
use_nodbg_instructions() instead of the operands and their parents.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
RISCV: Pass MachineRegisterInfo to isVLKnownLE
isVLKnownLE and its getEffectiveImm helper used the VL operands to reach
the MachineRegisterInfo. Pass it directly so they no longer depend on
MachineOperand::getParent().
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Firewall: Rules: Switch global scrubbing to modern PF syntax
As a second stage, emit fragment reassembly as a global option and generate random-ID and interface MSS handling as match scrub rules after NAT. Legacy custom scrub rules remain untouched and no compatibility mode or automatic transition is introduced.
Move the global normalization controls to Firewall Advanced while preserving their existing configuration locations.
Firewall: Rules: Validate match rule option compatibility
Match rules cannot create state or use divert and routing options in FreeBSD PF. Reject these combinations in the model while retaining supported packet matching and modification options.
Skip automatic reply-to generation and remove routing output for match rules so interface defaults cannot produce an invalid ruleset.