[CIR] Fix use-after-free when emitting ternary with a throw-expression arm (#208850)
Fixes #208848.
When a conditional operator arm is a noreturn expression, such as
`throw`, `VisitAbstractConditionalOperator` saved an insertion point in
the empty dead-code block created after the expression. The intent was
to insert a `cir.yield` later, once the types of both arms were known.
However, `LexicalScope::cleanup()` removes that empty block when the
arm’s scope exits, leaving the deferred insertion point with a dangling
block pointer.
Avoid saving the insertion point for noreturn arms. These regions
already terminate with `cir.unreachable` and do not require a
`cir.yield`. The CIR verifier accepts ternary regions that terminate
with `cir.unreachable`.
Extended `ternary-throw.cpp` with scalar-rvalue cases covering `throw`
in either arm and in both arms. The existing tests only covered glvalue
conditionals, which take the LValue emission path and never reach this
code.
[OFFLOAD][L0] Don't return error on initImpl if library/drivers are missing (#210083)
When a Level Zero driver is not present in the environment the current
behavior makes olInit fail if the level_zero plugin is requested. This
changes the behavior to match other plugins where it doesn't fail but
return 0 supported devices.
[RISCV][P-ext] Remove redundant shuffle lowering for packed widening high-half convert. (#210128)
The more general lowerVECTOR_SHUFFLEAsPZip can handle this case.
devel/electron43: Add port: Build cross-platform desktop apps with JavaScript, HTML, and CSS
Build cross platform desktop apps with JavaScript, HTML, and CSS.
It's easier than you think.
If you can build a website, you can build a desktop app. Electron is a
framework for creating native applications with web technologies like
JavaScript, HTML, and CSS. It takes care of the hard parts so you can
focus on the core of your application.
WWW: https://electronjs.org/
[RISCV][P-ext] Make undef vectors Legal. (#210106)
Add a few additional isel patterns to avoid false dependencies. We may
want to enable the BreakFalseDep pass in the future.
[SLP]Drop nsw when shl by BW-1 is converted to mul
shl nsw X, BW-1 is valid at X = -1, but mul X, INT_MIN is not nsw-safe
there. Drop nsw on the vector mul when a shl lane with shift amount
BW-1 is unified into mul during opcode interchange.
Fixes #210093
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/210152
[AMDGPU] Select upper 16-bits for inline constants in packed BF16 (#209861)
From gfx1250 software programming guide, v_pk_*_bf16 instructions using
inline constants must use OPSEL to select the upper 16-bits.
Fixes: LCOMPILER-2445
devel/py-test-dependency: import py-test-dependency-0.6.1
This module is a plugin for the popular Python testing framework
pytest. It manages dependencies of tests: you may mark some tests
as dependent from other tests. These tests will then be skipped if
any of the dependencies did fail or has been skipped.
[compiler-rt][memprof] clear histogram tail granule on allocation. (#208911)
ClearShadow rounded the size down, leaving the partial tail counter
(ceil(size/8)-th) uncleared, so a recycled chunk leaked a stale count
into the last histogram bucket. Round up instead.
[Hexagon] Fix HexagonRDFOpt hang during live-in recomputation (#209986)
After HexagonRDFOpt, the compiler recomputed live-in registers for every
block in one batch. On large inputs (e.g. kernel builds) this was slow,
and on some functions each pass changed the live-in values of other
blocks, triggering more passes until the compiler hung (PR #207422).
Fix: process blocks one at a time in post-order (successors before
predecessors) and stop as soon as nothing changes. Add a pass limit as a
safety net to keep compile time bounded in all cases.
Attempt to repair rx issues with the igc driver.
Our testcase uses a link between two igc ports on the same platform and forcing the issue by triggering an eee status update.
Although we found an easy trigger, there are likely other events causing the same issue. This commit replaces igc_if_init() with iflib_request_reset() calls to ensure a rebuild of RX state and publishing descriptor tails.
Setup:
sysctl net.fibs=3
ifconfig igc0 media 1000baseT mediaopt full-duplex
ifconfig igc3 media 1000baseT mediaopt full-duplex
ifconfig igc3 fib 1
ifconfig igc0 inet 10.99.99.1/30 up
ifconfig igc3 inet 10.99.99.2/30 up
test correct:
ping -t 3 -c 2 10.99.99.2
[8 lines not shown]
[ConstraintElim] Add trunc nuw support to condition checks (#209844)
Adding support for trunc nuw %x to i1 by using the m_ICmpLike pattern in
conditions the same way as icmp ne %x, 0
proof: https://alive2.llvm.org/ce/z/ZyDWZ2
[clang][win] Fix __global_delete wrappers for Arm64EC and cross-TU ::delete (#209585)
PR #188372 made Clang's MSVC-ABI deleting-destructor path route global
deletes
through compiler-generated __global_delete / __global_array_delete
wrappers
instead of referencing ::operator delete directly. This lets a deleting
destructor be emitted in environments (e.g. kernel mode) where no global
::operator delete exists: each wrapper defaults to a trapping
__empty_global_delete fallback, and a real forwarding body that calls
::operator delete is materialized only when the program actually uses
::delete.
This change refines how those wrappers and their fallbacks are emitted,
fixing
two problems that made the #188372 mechanism fail in practice.
New behavior:
[52 lines not shown]
perl: update to 5.44.0.
Core Enhancements
Named Parameters in Signatures
Multi-variable foreach can now use aliased references
Enhanced operation of regular expression patterns under /xx
Unicode 17.0 is supported
New source of entropy for PRNG seeding
Security
CVE-2026-8376 - Buffer overflow in Perl_study_chunk
CVE-2026-57432 - Buffer overflow in S_measure_struct
CVE-2026-13221 - Regex trie 16-bit field overflow
Incompatible Changes
Unicode rules are now fully enforced on identifier and regular expression group names.
[3 lines not shown]