[CodeGen] PHIEliminationImpl::LowerPHINode: Fix assertion failure when all phi operands are undefined (#209013)
IncomingReg is only set to a register when allPhiOperandsUndefined does
not hold. Changes PHIEliminationImpl::LowerPHINode to check IncomingReg
before using it for debug phi.
Fixes #206324
Assisted-by: Codex
Add !metadata_section_kind global variable metadata (#211524)
Similar to !exclude in that this attempts to guide section + flag
choices in a generic/abstract way.
`!exclude` tells LLVM to use the generic `SectionKind::Exclude` for the
globals. Likewise, `!metadata_section_kind` tells LLVM to use
`SectionKind::Metadata`.
The added docs go into a little more detail.
This is needed for the dynamic debugging feature, otherwise there's no
way to avoid `SHF_EXCLUDE` or `SHF_ALLOC` flags being added to the
section without special handling based on its name. We've moved to using
a new section type for dynamic debugging and we don't want to rely on
the name, which may be omitted.
[ConstantFolding]Fold llvm.powi via square-and-multiply (#210771)
Compute constant-folded powi using APFloat multiplies in the operand's
own semantics (square-and-multiply), matching the expansion
ExpandPowI generates in SelectionDAGBuilder, instead of routing
through std::pow via double/float conversion.
sound: Scale PCM secondary buffers by byte rate
The fixed 128 KiB secondary buffer cap dates from stereo-sized streams.
High channel-count or high sample-width OSS streams can consume most of
that budget in one graph quantum, leaving too little room for capture
catch-up or playback headroom.
Keep 128 KiB as the low-rate floor, but derive the effective soft-ring
cap from the channel byte rate, clamped to 4 MiB. Use that per-channel
cap when resizing the soft buffer and when clamping
SNDCTL_DSP_SETFRAGMENT requests.
Also clamp SNDCTL_DSP_LOW_WATER to the current soft-buffer size so an
impossible readiness threshold cannot make poll/select wait forever.
MFC after: 3 weeks
Reviewed by: christos
Differential Revision: https://reviews.freebsd.org/D58064
AMDGPU: Use ProcessorAlias for legacy arch names
Older targets have aliasing names which were previously implemented
by defining a second copy of the processor, identical except for the name
Use the recently improved tablegen mechanism for defining name-only aliases.
This dedupliates some redundant table entries, like the sched model.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
TableGen: Add first class support for processor aliases
Previously isCPUStringValid was virtual so TableGen could emit an
AArch64 specific hack for recognizing cpu aliases. Teach tablegen
about aliases, and insert each alias into the CPU subtype table as its
own entry (sorted by name, carrying the canonical processor's features
and scheduling model).
There is further opportunity for code sharing improvements. AArch64's
aliases are consumed by ARMTargetDefEmitter to emit a custom inc file
in TargetParser which should be universalized.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
vmd(8): guard virtio entropy device register io with a mutex.
While vmd isn't yet SMP capable, in the event multiple VCPU thread
exist they may interleave in emulation of register access of the
virtio entropy device because it's currently emulated in the vm
process.
Report and diff by Andrew Griffiths.
ok hshoexer@
vmd(8): initialize the direct-boot argument page.
In vmd's ELF loader, the boot args page is copied into guest memory
from the stack without complete initialization. Initialize to zero
to prevent leaking stack values into guest memory.
Report and diff by Andrew Griffiths.
ok hshoexer@
Reject invalid payload sizes at vmd(8) control boundary.
When we introduced agressive parsing and santization of imsg objects,
it introduced the ability for a control socket client to force vmd
to exit via fatal() calls. A simple solution is to validate just
the size of the object at the control process boundary as that's
the primary logic for triggering fatal() calls. This may need a
greater redesign but that would require inspecting all imsg
deseralization call points. For now, the author's proposal is fine.
Report and diff by Andrew Griffiths.
ok hshoexer@
[mlir][OpenACC] Keep ThreadY active for inner-combine-fed worker reductions (#211696)
Example:
```fortran
res = 0
!$cuf kernel do(2) <<< *, (32,8) >>> reduce(+:res)
do j2 = 1, n2
do j1 = 1, n1
res = res + a(j1, j2)
end do
end do
```
In this code the reduction accumulator is per-(block_y, thread_y): each
worker row's shared slot is filled by an inner block-scoped combine, so
the rows hold distinct partials. The final combine into the result was
classified as not "worker-private" (block_y+thread_y into a global
dest), so it fell back to the ThreadY row-zero path and dropped every
worker but row 0 — a 2D SUM returned -1 instead of -4.
Fix: keep ThreadY active for a block_y+thread_y accumulator that is fed
[3 lines not shown]
[llvm][AArch64] Fix the location of PAuth_LR AUT CFI (#211702)
Unlike PAC CFI, we do not have the same unwinder constraint on PAuth_LR
CFI occurring before the PAC instruction. For AUT CFI, like other CFI
opcodes, these should always occur after the instruciton that they
reference.
Update to 1.24
Upstream changes:
1.24 2025-05-04
- Add a test for large BLOB with parameter
- Fix Dave Labley's broken e-mail address
- Stop parsing a column named "limits" as the LIMIT keyword
(https://github.com/perl5-dbi/DBD-MariaDB/issues/208)
- Various test fixes (e.g. no dead loop in t/87async.t, remembering the
value of --testauthplugin for repeated Makefile.PL runs, support for the
Embedded server, explicit disconnect after testing the connection)
- Better handling of the Embedded server (e.g. fix mariadb_hostinfo and
SQL_SERVER_NAME, no support for async queries and
mariadb_max_allowed_packets, extended documentation of
mariadb_embedded_options)
- Add new Makefile.PL option --requireembsup (and a corresponding env variable
DBD_MARIADB_REQUIREEMBSUP) to ensure the client library's support for the
Embedded server
- More support and fixes for new MySQL 8 features (mariadb_auto_reconnect for
[8 lines not shown]
[mlir][affine] Add affine.for verifier and move arguments check earlier (#206685)
Fixes #206628 crash by adding an earlier body argument verifier for
`affine.for`. This crash is caused because `LoopLikeOpInterface`
verifier would call `getRegionIterArgs()` and assumed induction var of
`affine.for` exists.