PowerPC: Remove LiveVariables run and unused LiveIntervals requirement
PPCTLSDynamicCall has not used LiveIntervals since 3ff319c69047, but
still required the analysis. LiveIntervals requires there to be no
unreachable blocks or otherwise it asserts. These blocks were
indirectly removed by adding the extra LiveVariables run, because
LiveVariables has a declared requirement on
UnreachableMachineBasicBlockElim.
Drop the dead analysis requirements along with the LiveVariables run.
This also avoids computing LiveIntervals at -O0 for PIC. This is
still broken if the pipeliner is explicitly enabled on optnone
functions which requires a separate fix.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Fix signatures of fmin/fmax libcalls (#235147)
These used Floating, which always lowered to float regardless of the
libcall type.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[GlobalOpt] Remove malloc promotion (#233797)
This optimization is quite buggy, and it doesn't matter in practice. The code
is already quite complicated and implementing it properly would make the code
even more complicated and make it less applicable and relevant.
Known bugs:
- #233447: the global we optimize needs to be written to once. We assume this
is the case based on static use site count, which is the bug. We'd need to
analyze the use site of the store (e.g. is it in a loop?), the parent
function's callers (transitively) and make sure it'll be called at most once.
This will rule out any uses in loops, recursive functions, and calls from
external functions, ... and make this applicable to even more rarely.
- #215533: the new global gets incorrect alignment. The fix requires analysing
uses of the `malloc` call and the uses of loads from the global. The value of
`malloc` is allowed to be used in GEPs, and the global value is allowed to be
used in PHIs. So we'd need to consider alignments of users of those GEPs and
[31 lines not shown]
[BPF] Fix CO-RE roots for subarray field info and anonymous elements (#235601)
consumeAccessRoot handles an access chain that starts with array
subscripts, such as (*p)[1][2].y. It folds the leading subscripts into
one index, counted in units of the innermost element, and uses that
element type as the relocation root. Four cases went wrong:
- A subarray passed to __builtin_preserve_field_info crashed, e.g.
__builtin_preserve_field_info((*p)[1], 0) with struct S (*p)[2][3],
or __builtin_preserve_field_info(p[1], 0) with struct S (*p)[3].
The terminal field-info call was pushed onto the access stack, so
the walk treated it as another array access.
Fix: keep the field-info call off the access stack. Record elements
now get a relocation such as struct S::[3], and scalar elements reach
the existing "Invalid field access" error.
- An anonymous record behind a typedef became a root with no name, e.g.
&(*p)[1], (*p)[1].x or &p[1] with typedef struct { long x; } Anon.
[39 lines not shown]
[AMDGPU] Materialize WMMA SGPR scales to VGPRs before scheduling
v_wmma_scale scale operands accept an SGPR or a VGPR. On GFX12,
depctr_va_ssrc is a 1-deep counter, so each VALU instruction that reads
an SGPR scale takes the only scalar-source slot. A run of WMMA ops that
all read SGPR scales therefore serializes. One cross-bank copy pays for
that slot once; later WMMA ops then read a VGPR and no longer contend
for va_ssrc.
SIMaterializeWMMAScale runs at the end of the machine SSA optimizations,
after SIShrinkInstructions and before scheduling. It is skipped at -O0
and on targets older than GFX12. GFX1250 is included: the separate VALU
read-after-write hazard no longer applies there, but the dependency
counter still does.
The pass walks every WMMA that has scale_src0 and records virtual SGPR
uses of scale_src0 and scale_src1, grouped by register. Physical
registers and subregister uses are left alone. For each SGPR it inserts
a COPY into a low aligned VGPR (the lo256 class matching the scale's
[21 lines not shown]
pw_equal: include the password field in the comparison
This fixes a potential race condition where if the user runs chpass(1)
and suspends it, chpass(1) will update the password hash after the
editor is resumed, even if the password has been changed in the
meantime.
From by Acts1631.
[SelectionDAG] Fold scalar_to_vector concatenations
DAGCombiner folds `CONCAT_VECTORS` of `BUILD_VECTOR`/`UNDEF` operands into one
`BUILD_VECTOR`, but skips `SCALAR_TO_VECTOR` operands, so each fragment is
lowered separately.
Fold `SCALAR_TO_VECTOR` operands as `[x, poison, ..., poison]`. Integer scalars
are truncated to the common minimum scalar type, as in the existing
`BUILD_VECTOR` fold; FP scalars are used directly. The fold is limited to
fixed-length vectors and runs only before operation legalization.
Check S22's holder by access, not by READ FULL STATUS port
check_s22 looked for the holding registration by its RELATIVE TARGET
PORT IDENTIFIER in READ FULL STATUS. For an ALL_TG_PT registration that
field is not defined (SPC-5 6.16.4) and LIO reports 0, so the check
failed in every phase although the state was correct.
Assert instead that every registration belongs to the ALL_TG_PT
initiator port and that exactly one holds the reservation, and identify
the holding port by access: through the STANDBY port the nexus has a
holder's access, through the ACTIVE port a registered non-holder's.
[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).
CodeGen: Finally delete LiveVariables (#234299)
This is about 12 years overdue.
The extra workaround run in PPC was last removed in #222416, but
reverted by #225816. There was never a reproducer or specific patch to
fix this, though it's possible the now consistent dead flag handling
fixed or at least hid the LiveRangeCalc error.
devel/*-subversion, www/mod_subversion: strip .so and drop .a from stage
libtool's install does not strip shared objects, and none of these
glue/binding libraries ship a static .a anyone would plausibly link
against. Strip the installed .so files in post-install and remove the
.a from the staging tree.
Bump PORTREVISION_LATEST/PORTREVISION_LTS for each touched port.
Use truenas_smbhad for SMB stateful failover
Samba now replicates SMB durable handles to the standby controller with
the truenas_smbhad daemon. This replaces the ctdb implementation.
- Remove ctdb and the clustered TDB code. passdb, group mapping, share
ACLs and secrets are local to each controller again.
- Stop setting "clustering" in smb.conf.
- Write /etc/truenas_smbhad.conf with the controller node on HA systems.
Reload the daemon when a license change modifies the file.
- Keep smbd stopped on the standby. Restart it on takeover, because it
restores handles only at startup.
- Log the daemon to /var/log/truenas_smbhad.log.
- Remove the update block for stateful failover.
- Add unit tests and HA tests.
databases/sqlite3: security update to 3.54.1
Fixes ten vulnerabilities published on 2026-10-30, among them heap
buffer overflows in FTS5, in the session extension and in the R-Tree
module. All of them need an attacker supplied database file or SQL
text.
Changes: https://sqlite.org/changes.html
Security: 84cd82e1-d49f-11f1-bae2-3497f65b111b
With hat: ports-secteam
Sponsored by: Netzkommune GmbH
(cherry picked from commit 57d3d55a29d9c7d43c87ff0d763942cbb10369a4)
databases/sqlite3: security update to 3.54.1
Fixes ten vulnerabilities published on 2026-10-30, among them heap
buffer overflows in FTS5, in the session extension and in the R-Tree
module. All of them need an attacker supplied database file or SQL
text.
Changes: https://sqlite.org/changes.html
Security: 84cd82e1-d49f-11f1-bae2-3497f65b111b
With hat: ports-secteam
Sponsored by: Netzkommune GmbH
[lldb] Extract reusable native register contexts (#233620)
Unlike RegisterInfo, these files directly manipulate register state.
Thus move these files to Plugins/Register instead of merging in
lldbRegister. These could go to under Plugins/Process/Register, but
since Darwin's RegisterContext is used by Plugins/ObjectFile, bring this
up to Plugins/ folder.
[SelectionDAG] Fold scalar_to_vector concatenations
DAGCombiner folds `CONCAT_VECTORS` of `BUILD_VECTOR`/`UNDEF` operands into one
`BUILD_VECTOR`, but skips `SCALAR_TO_VECTOR` operands, so each fragment is
lowered separately.
Fold `SCALAR_TO_VECTOR` operands as `[x, undef, ..., undef]`. Integer scalars
are truncated to the common minimum scalar type, as in the existing
`BUILD_VECTOR` fold; FP scalars are used directly. The fold is limited to
fixed-length vectors and runs only before operation legalization.
[Mips] Port ISelDAGToDAG to NewPM
Standard NewPM pass porting for both Mips16ISelDAGPass and
MipsSEISelDagPass.
Reviewers: SixWeining, FlyGoat, yingopq
Pull Request: https://github.com/llvm/llvm-project/pull/237060
x11/zutty: Update 0.17 => 0.18
Changes:
- Apply origin mode to VPA (Line Position Absolute)
- Time out selection transfers whose peer does not respond
- Do not exit on selection events carrying an invalid atom
- Fix font search ignoring directory boundaries
- Do not count scrolling within margins as history
- Clamp cursor position to the scrolling region in origin mode
- Fix crash on OSC 52 selection query falling back to another target
- Prevent pasted content from terminating bracketed paste
- Accept CSI ? and CSI > sequences split across reads
- Preserve RGB foreground across separate SGR bold settings
- Fix crossed-out attribute lost on partial screen updates
PR: 300308
Approved by: osa, vvd (Mentors, implicit)
[AMDGPU][NFC] Use HasVMulU64Inst predicate for V_MUL_U64 (#237289)
Replace the isGFX1250Plus subtarget predicate on V_MUL_U64 with the
HasVMulU64Inst feature predicate.