[SPIRV] Don't treat noipa aliasees as interposable in SPIRVPrepareGlobals (#228178)
SPIRVPrepareGlobals replaces aliases with their aliasee because the
backend can't lower GlobalAlias. It must skip aliasees that may be
replaced at link time, but `isInterposable()` also returns true for
`noipa` function definitions by default. `noipa` doesn't change which
definition is used at link time, so query
`isInterposable(/*CheckNoIPA=*/false)` so aliases of `noipa` functions
are still replaced.
This is one of a few refinements of noipa identified while working on
making optnone imply noipa - without these refinements,
optnone-implies-noipa, might substantially change clang -O0 codegen. I'm
open to discussing whether these refinements are the right direction,
though.
Assisted-By: Claude
[llvm][Support] Remove stale `ErrorOr` documentation regarding user data. (#227796)
Optional user data support was removed from `ErrorOr` in ca35ffe6a239 in November 2013.
Update the network page for the current NetworkMgr net_api
NetworkMgr's net_api now appends the full caps string, the security
type and an enterprise flag to each access point entry. The page read
ssid_info[-1] as the caps string, so it got the enterprise boolean and
crashed on any WPA or WEP password. It now reads ssid_info[7].
Port the networkmgr connection handling. WPA-Enterprise networks open
an EAP authentication dialog and are written with write_eap_config.
Open networks get a quoted SSID in wpa_supplicant.conf, and every write
to that file uses a 077 umask. Secured access points show the -secure
signal icons.
Bring up any WiFi card that is down before the first scan, and add a
Rescan button next to the wired status when a WiFi card is detected.
The rescan runs in a thread and updates the status and access point
list on the GTK main loop.
Connecting to a known SSID no longer blocks the UI, status updates
[8 lines not shown]
[TableGen][AArch64] Relax EnforceVectorSubVectorTypeIs for mixing fixed and scalable vectors. (#228552)
The minimum elements of a fixed subvector may be greater than or equal
to the minimum elements of the scalable vector when vscale is greater
than 1. With a fixed subvector and a scalable vector we now allow the
subvector to have the same minimum elements as the vector. That covers a
NEON subvector and a SVE vector.
It is possible to have a subvector with more minimum elements than the
vector when vscale is known to be greater than 1, but both RISC-V
vectors and SVE use custom isel rather than tablegen for those cases.
With that fixed, migrate AArch64 to use
extract_subvector/insert_subvector instead of
vector_extract_subvec/vector_insert_subvec. A follow up will remove
vector_extract_subvec/vector_insert_subvec.
[KnownFPClass] Refine positive zero result for sqrt (#214987)
Refines `KnownFPClass::sqrt` for positive zero:
- Only `sqrt(x) == +0.0` iff `x` is `+0.0` or `x` flushes to `+0.0` in
the current denormal mode. The `-0.0` case was handled in a prior
commit.
AI disclosure:
I used OpenAI Codex (GPT-5.6-sol) to help generate the test updates,
which I reviewed and tested locally.
CodeGen: Prefer getting the Triple from the Module when convenient
Take the triple from the contextual module rather than TargetMachine
when it's already readily available.
[ARM] Use extract_subvector instead of vector_extract_subvec in ARMInstrNEON.td. NFC (#228542)
extract_subvector has a stricter SDTypeProfile than
vector_extract_subvec.
I'm investigating why we need vector_extract_subvec. The only other
users are in AArch64SVEInstrInfo.td so maybe something to do with
scalable vectors.
[lldb/Interpreter] Read Scripted Process addressable bits from its metadata (#227515)
This patch addresses post-merge feedback on #224701.
That change added a dedicated `get_addressable_bits` affordance to
scripted processes, which duplicates a property the process already has.
This patch removes it and reads the addressable bits from an optional
"addressable_bits" key in the dictionary returned by
`get_process_metadata` instead. `ScriptedProcess::DidLaunchOrAttach`
still passes the value to `SetAddressableBitMasks` before the first stop
is reported. When the key is missing, the setter is never called and the
process keeps the masks it inherits from the target.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
sysutils/jdupes: Update 1.27.3 => 1.31.2
This update is strongly advised for users of the experimental
hashdb feature. Also, Upstream is switched to Codeberg.
Changelog:
https://codeberg.org/jbruchon/jdupes/src/tag/v1.31.2/CHANGES.txt
PR: 299058
Approved by: osa, vvd (Mentors, implicit)
MFH: 2026Q4
[LiveDebugVariables] Repair stale SlotIndexes
The analysis keeps its indexes from before the first register allocator
until DBG_VALUEs are emitted, by which point passes in between have
erased some of the instructions they point at. Resolve them at the
start of each allocator run and before emitting.
SlotIndexes can then reclaim the entries of erased instructions without
sparing the ones held here, which would have made generated code depend
on -g. Emitted locations are unchanged, except that intervals resolving
to one position now emit a single DBG_VALUE rather than identical
consecutive ones.
[SlotIndexes] Add queries for stale indexes
An erased instruction leaves its index list entry in place, making the
index indistinguishable from a block boundary entry. Add
isBlockBoundaryIndex() and isStaleIndex() to tell the two apart, and
canonicalizeIndex() to resolve a stale index to the closest preceding
instruction's register slot, or the block start if none survives.
NFC. No caller yet. LiveDebugVariables is next.
[clangd] Make clangd-indexer respect .clangd configuration files (#214951)
This support is currently behind an `--enable-config` flag which is
off by default.
The implementation reuses clangd's existing machinery where
appropriate, such as for loading config files, and for applying their
contents to the correct source files based on the config file's
location and any `If` clauses.
Due to limitations in the libTooling interfaces used in clangd-indexer's
implementation, configuration is currently only applied to source
files whose path is specified as an absolute path in the compilation
database.
Related discourse topic: https://discourse.llvm.org/t/honor-clangd-compileflags-overrides-in-clangd-indexer/91504