[VPlan] Preserve SSA in early exit loops
MaskedCond is used to logically-and the condition to early exit with the current block in-mask. However because we use it in the latch block where the condition isn't defined on all paths, we have to workaround it not being in SSA in the verifier.
This fixes this by using reconstructSSA added in #212209 to preserve SSA in both the exit conditions and live outs in the exit blocks. It also means we get the right exit condition without MaskedCond and allows us to remove the MaskedCond exceptions in the verifier. MaskedCond is still kept since a followup PR will still use it.
One subtle point is that we need to freeze any branch conditions. Any lanes after and including the early exiting lane might contain poison and we can have branches on those poison lanes that didn't we didn't previously branch on in the scalar loop.
There's no miscompile on main today because we coincidentally don't keep SSA so exit conditions are read directly without being polluted by poison stemming from a branch past the early exit. But in this PR the exit conditions are polluted and we can end up with poison in the condition operand of a select, which causes an undefined result for AnyOf even if it freezes its operand. The poison in the branch will also cause problems in future if we decide to preserve uniform control flow and emit branches instead of blends. The exit_cond_merged_after_poison_branch test illustrates this.
NAS-144953 / 28.0.0-BETA.1 / Unskip `test_zfs_resource_snapshot_clone_zvol` (#20084)
The underlying issue was fixed by
https://github.com/truenas/middleware/pull/19760
The skipped test sat there broken (`defer` was removed a long time ago).
[mlir][ODS] Allow a space-only separator for bit enums
Bit enums required a separator containing '|' or ',', so a flag set
could not use the bare keyword syntax of LLVM IR, e.g. `nuw nsw`.
Dialects that want it, such as ClangIR's overflow flags, had to hand-write
a parser and printer for an EnumProp.
Allow `separator = " "` on new-style BitEnums. The generated
FieldParser then reads case keywords until the next token is not one,
symbolize splits on spaces, and the op-format `enum` directive parses
the same way. A literal right after such an enum that is one of its
cases is now rejected as ambiguous. Legacy BitEnumAttr keeps requiring
'|' or ','.
Assisted-by: Claude Code (Claude Opus 5.5).
rpki-client: rename crldp to dps in cert_crldp()
In a later commit I want to use crldp for something else. The one CRL
distribution point is called dp, so call the stack of distribution points
dps.
ok job
[AArch64] Don't rename fixed implicit uses when forming load/store pairs (#235446)
Fixes https://github.com/swiftlang/swift/issues/93360.
To pair two stores of the same register, the optimizer renames the first
store's register from its definition up to the store.
`canRenameMOP` accepted every implicit use as renamable, which is mostly
fine but not for implicit uses whose register is fixed.
I am investigating a follow up that would allow pairing, based on
renaming the second register, but I think this patch alone is worth
backporting.
Assisted-by: Opus 5.5
make a AuthorizedPrincipalsCommand with no specified arguments do what
it is documented to do: supply the target username as a default argument.
Anthropic ANT-2026-YX19N77E
[libc] Use a syscall wrapper for semop (#236723)
This PR move semop behind the centralized syscall wrappers, following
libc/docs/dev/syscall_wrapper_refactor.md.
---
<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
[libc] Use a syscall wrapper for semget (#236722)
This PR move semget behind the centralized syscall wrappers, following
libc/docs/dev/syscall_wrapper_refactor.md.
---
<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
[libc] Use a syscall wrapper for semctl (#236721)
This PR move semctl behind the centralized syscall wrappers, following
libc/docs/dev/syscall_wrapper_refactor.md.
---
<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
when updating known_hosts files for UpdateHostKeys, bail out if the
unable to write to the first known_hosts file in the list.
Avoids a situation where a host key could be fully removed from all
known_hosts files.
Anthropic ANT-2026-YH3JNW7S
[mlir] Mark dump() methods with LLVM_DUMP_METHOD (#233398)
LLVM_DUMP_METHOD is a macro that helps to prevent symbol elimination
from the binary. In practice, user builds might force stripping of
"unused symbols" and dead code via compiler/linker flags. For "probably
unused" symbols such as ::dump() methods, this would mean that they
disappear from the binary and can no longer be used e.g. in a debugger
session.
Note: dump() methods of MLIR classes are now wrapped into `#if
!defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)` meaning the methods exist
only in debug builds or when LLVM_ENABLE_DUMP is set (e.g. at CMake
level). Non-debug callers of dump() methods are changed to use print()
instead.
[clang][CMake] Make clangCodeGen depend on analysis_gen (#236186)
clangCodeGen includes the TableGen-generated `TargetLibraryInfo.inc`
through `TargetLibraryInfo.h`, but nothing orders it after
`analysis_gen`, so a clean `ninja obj.clangCodeGen` fails with "file not
found". Add `analysis_gen` to its `DEPENDS`, as LLVMAnalysis and
LLVMCore already do.
Assisted-by: Claude Code (Opus 5.5).
Update WebShare tests for the license enable gate
This commit adds changes to update the WebShare tests now that only enabling a share requires the WEBSHARE entitlement, so renaming and disabling stay allowed without it, and runs the service enable test under the WEBSHARE entitlement since the CI license lacks that key.
when uploading/crossloading, prefer to use LSETSTAT as it makes it more
difficult for a local attacker on the destination play tricks where
they replace paths around the time where the client is restoring
permissions on things.
Also skip setting permissions entirely when its not necessary to do so.
Anthropic ANT-2026-Y4XK22QX
[ADT] Qualify AddressRange in AddressRangesBase::find. NFC
With `-fdelayed-template-parsing` (the default for clang targeting the
MSVC ABI), `find` is parsed at the end of the TU, where `llvm-profgen`
makes `llvm::sampleprof::AddressRange` visible in `namespace llvm`.
Qualify with `llvm::` to avoid the ambiguity.
```
AddressRanges.h:101:42: error: reference to 'AddressRange' is ambiguous
note: candidate found by name lookup is 'llvm::AddressRange'
note: candidate found by name lookup is 'llvm::sampleprof::AddressRange'
```