[AMDGPU] Lower uniform usubsat to SOP (#203155)
Prefer scalar (SALU) lowering for uniform `usubsat`, since usubsat(a, b)
= max(a, b) - b.
* i32: add a GCNPat matching uniform `usubsat` to S_MAX_U32 + S_SUB_I32
* i16: route uniform `usubsat` through `promoteUniformOpToI32` instead
of a TableGen pattern that hard-codes the 0xffff masks. This exposes the
zero-extends as real DAG nodes so KnownBits can fold the masks when the
high bits are already known zero; the promoted i32 usubsat then reuses
the scalar pattern. Promote-and-truncate is safe for usubsat because the
result always fits in the narrow type (unlike uaddsat).
Register USUBSAT with `setTargetDAGCombine` and the promotion dispatch,
return ZERO_EXTEND in `getExtOpcodeForPromotedOp`, and add it to
`isNarrowingProfitable` so divergent i16/i32 keep their native VALU
clamp form.
Co-authored by: Jeffrey Byrnes
net-mgmt/omada6: New port: Omada Software Controller v6
Omada's Software-Defined Networking (SDN) platform integrates network
devices, including access points, switches, and routers. It provides
100% centralized cloud management and a highly scalable network
controlled from a single interface. Seamless wireless and wired
connections are provided, ideal for use in hospitality, education,
retail, and offices.
WWW: https://www.omadanetworks.com/us/business-networking/omada-controller-cloud-software/omada-software-controller/
[X86] combineMulToPMADDWD - match 256/512-bit SIGN_EXTEND nodes (#205606)
Now that the X86ISD::VPMADDWD handling is improving, we can remove some
of the limits that we had to prevent regressions
[SSAF] Properly handle contributors with multiple declarations (#204482)
A contributor entity can have multiple declarations all contributing
interesting facts. For example, a function declaration (not definition)
may have default arguments, which may provide pointer flow or unsafe
buffer usage facts. This commit groups declarations by their canonical
decls. The entity summary of a contributor will be collected from all
its decls.
In addition, this commit includes the following minor changes:
- Factor the common procedure of summary extraction and insertion into a
template function in SSAFAnalysesCommon.h.
- Convert the no-duplicate contributor assertion into a debug warning.
We need the release build to not crash.
rdar://179150798
NAS-141520 / 27.0.0-BETA.1 / Supply -preserve_cluster_mode when calling scstadmin (#19183)
A recent change (PR #19074) stopped writing cluster_mode in scst.conf
If scstadmin is being used to write the config, then we need to supply
a new optional parameter to prevent breakage. Note: by default
pyscstadmin is used instead.
A corresponding SCST (PR #99) is required.
[CIR] Skip trivially-recursive available_externally function bodies (#198363)
CIR was emitting available_externally bodies for glibc-style inline
wrappers whose sole call is back to the same asm-named symbol (via
__builtin_*). LLVM then treats the function as non-terminating and
can fold away surrounding null checks — the same failure mode as
classic CodeGen PR9614 (basename-style if (cwd) paths).
Port isTriviallyRecursive / shouldEmitFunction from CodeGenModule,
including the isInlineBuiltinDeclaration exemption, and skip emitting
those definitions. isTriviallyRecursive (and its
FunctionIsDirectlyRecursive visitor) lives on MangleContext, so both
classic CodeGen and CIRGen call getMangleContext().isTriviallyRecursive(FD).
Revert "[AArch64] Run cleanup one final time after peephole (#199711)" (#205633)
This reverts commit 448c3d54df7bcd5e5be2b5d051832ad00b4cc89c as it
causes
compile time regressions for little gain, and sounds like the dead
instructions
can be removed in a better way.
[Instrumentor] Add runtime examples: [3/N] Pointer tracking
The example shows how globals and stack allocations can be tracked. For
each we record if it was read/written and how long the time was between
creation and first use, and last use and deallocation. This is reported
at the end.
[Instrumentor] Add runtime examples: [2/N] A FP precision analysis
Second example:
Check all floating point operations and track if they could be done at
lower precision.
Partially developped by Claude (AI), tested and verified by me.
[mlir][emitc]: use converted result types when func.call has one result (#205191)
The lowering for `func.call` to emitc properly uses converted result
types when there are multiple return values from the called func, but
not when there is a single one.
py-WebOb: updated to 1.8.10
1.8.10 (2026-06-02)
Security Fix
- The fix for CVE-2024-42353 was incomplete: a Location value containing
ASCII tab, carriage return, or line feed characters between consecutive
slashes could still be interpreted as a protocol-relative URL by
``urllib.parse.urljoin`` on Python 3.10+, allowing an open redirect.
tor: updated to 0.4.9.10
Changes in version 0.4.9.10 - 2026-06-23
Another release with an important security fix and major bugfixes. We
strongly recommend upgrading as soon as possible.
o Major bugfixes (conflux, security, TROVE):
- Reject a CONFLUX_LINK cell that arrives on a circuit which already
has attached streams. A malicious client could send a
RELAY_COMMAND_BEGIN before the CONFLUX_LINK on the same circuit,
attaching an exit stream that would later end up orphan leaving a
dangling circuit back-pointer and a use-after-free (UAF) when the
circuit is freed. TROVE-2026-025. Fixes bug 41258; bugfix
on 0.4.8.1-alpha.
o Major bugfixes (client):
- Resume warning about unsafe socks protocols (socks4 or
socks5-not-hostname) when SafeSocks is not set. Also resume
warning every time when TestSocks is set. Fixes bug 41290; bugfix
[37 lines not shown]
[Instrumentor] Move common instruction IO functions into a class (#205460)
This commit moves several instruction-related IO functions into a class
instead of having them defined in the instrumentor namespace. We add the
BaseInstructionIO non-templated class because InstructionIO is a
templated class. Adding the common functions into InstructionIO would
force us to define them in the header.
Convert nginx proxy forwarding to AF_UNIX
This commit changes our proxy settings for nginx to send to
a dedicated AF_UNIX socket to more precisely delineate nginx
originating connections and localhost ones.
AMDGPU/GlobalISel: Fix get.rounding s_getreg lowering (#205601)
Use llvm.amdgcn.s.getreg instead of emitting S_GETREG_B32 directly so
instruction selection applies the required SReg_32 operand constraint.
This was done for setreg but missed for getreg.
Fixes https://github.com/llvm/llvm-project/pull/205265 when expensive
checks are enabled.
misc/claude-code: New port: Agentic coding tool from Anthropic that lives in your terminal
This is the latest Claude Code CLI that comes only in the binary form.
Previous commit moved previous, NodeJS based claude-code
into claude-code-legacy because of some patches that are there.
Note: Using Claude Code does not strictly require Anthropic's
hosted proprietary models. The tool can interact with open
models via Ollama's Anthropic Messages API compatibility layer.
Users can run these models locally on their own hardware for free,
or utilize Ollama's cloud subscription open weights models for
expanded performance. Some open weights models (like DeepSeek v4 pro)
available via the Ollama cloud are almost as capable as Anthropic's
models for most purposes.
[Instrumentor] Add runtime examples: [1/N] A flop counter
This adds a instrumentor-tools folder into compiler RT to showcase
use cases of the instrumentor. The initial example is a program that,
via instrumentation, counts the number of flops performed. Call and
intrinsic support will follow after #198042.
Partially developped by Claude (AI), tested and verified by me.
[lldb][NFC] Change type of Breakpoint's name list (#205429)
This is currently a `std::unordered_set<std::string>`. The downside of
this is that you need to have a `std::string` to perform a lookup of any
kind. This may require an allocation whenever we want to query the name
list. Even using `std::string_view` is not sufficient to perform a
lookup.
I propose that this instead be a `llvm::StringSet` which uses StringRefs
as its primary currency for insertions, lookups, and more.
---------
Co-authored-by: Jonas Devlieghere <jonas at devlieghere.com>
[Instrumentor] Add subtype IDs to complement type IDs for vectors/arrays
If the type of an argument passed to the instrumentation is a vector or
array, we still want to filter on the underlying type, and the
instrumentation might also need to know. Thus, we can now pass a subtype
ID, which is -1 except if it's a vector or array, then it's the element
type ID. Structs need to be handled differently.