[TTI] Add BasicTTIImpl cost model for llvm.masked.{u,s}{div,rem} (#191240)
This implements a generic cost model for the intrinsics added in
#189705. It costs it equivalently to the current expansion, i.e. an
unmasked divide + select.
[AMDGPU] Improve max3/min3 formation for tree-structured reductions (#190734)
The existing `performMinMaxCombine` forms `max3` by matching
`max(max(a,b), c) -> max3(a,b,c)`. For tree reductions like
`max(max(a,b), max(c,d))`, this produces `max3(a, b, max(c,d));` placing
`max3` on top. At the next tree level, `max(max3, max3)` cannot combine
because the 3-op opcode (`FMAXIMUM3`) differs from the 2-op opcode
(`FMAXIMUM`).
This patch:
1. Adds a tree combine: `max(max(a,b), max(c,d)) -> max(max3(a,b,c),
d)`, keeping a 2-op node on top that enables further combining.
2. Defers the existing combine when the operand is a tree node whose
children can still be combined, ensuring inner tree levels are optimized
before outer levels consume them.
Deferral is skipped when neither child has a single use, since the inner
combine cannot fire in that case.
Fix: LCOMPILER-1652
[PAC][clang] Use `Error` behavior for ptrauth module flags (#189923)
Previous use of `Min` for `ptrauth-elf-got` and
`ptrauth-sign-personality` module flags was introducing a risk of silent
decrease of security during module merge. The previous choice for `Min`
was mimicking the behavior for the `sign-return-address*` family of
module flags, but it does not make sense to apply this behavior here.
[NFC][lldb] Extract Do{Dis}EnableBreakpoint into helper functions (#191136)
Re-using this code will be important in an upcoming patch.
This commit also greatly simplifies the comments in the function.
wesnoth: updated to 1.18.7
1.18.7
Translations
* Updated translations: Bengali, Chinese (Simplified), Czech, French, Hungarian, Portuguese (Brazil)
Miscellaneous and Bug Fixes
* Fix time of day sounds not playing.
mkvtoolnix: updated to 98.0
Version 98.0 "Chonks" 2026-04-05
New features and enhancements
* all: huge update to the Japanese translations which had been not worked on
for several years. The program translation is now complete again, the man
page translation has been extended as well. Both were reworked in most
places. Translations by coolvitto.
* GUI: chapter editor: added an option in the "additional modifications"
dialog that toggles applying the selected modifications to all currently
open chapter editor tabs.
* GUI: macOS: added dock icon progress bar for job queue. Patch by Miklos
Juhasz.
Bug fixes
* GUI: chapter editor: when renumbering chapters limiting the number of
[8 lines not shown]
[OpenMP][NFC] Refactor Non-contiguous Update Tests (#190923)
The PR refactors the non-contiguous update tests as raised as a TODO in
one of the comments in the related PR. Prefixed all with
`strided_update`. For offload tests, added a dedicated sub-directory.
[NFC][AMDGPU]: expose IGLPStrategyID in AMDGPUIGroupLP.h (#191340)
Move IGLPStrategyID and its enumerators into llvm::AMDGPU in the public
header so other translation units can share the immediate encoding.
[mlir][NVVM] Add InferTypeOpInterface to NVVM MBarrier ops with deterministic result types (#188173)
Add result type inference to 5 NVVM ops whose result types can be fully
determined from their operands and attributes. This enables the Python
binding generator to emit `results=None` as a default parameter,
removing the need for callers to pass explicit result types.
Ops with optional results (using `InferTypeOpAdaptorWithIsCompatible`):
- `MBarrierArriveOp`: i64 for non-cluster pointers, no result for
shared_cluster
- `MBarrierArriveDropOp`: same as above
- `MBarrierArriveExpectTxOp`: same, plus no result when predicate is set
- `MBarrierArriveDropExpectTxOp`: same as MBarrierArriveOp
- `BarrierOp`: i32 when reductionOp is present, no result otherwise
The optional-result ops use a permissive `isCompatibleReturnTypes` that
allows omitting the result, preserving backward compatibility with the
existing zero-result assembly form.
[8 lines not shown]
[SelectionDAG] Salvage debuginfo when combining load and z|s ext instrs. (#188544)
Reland 2b958b9ee24b8ea36dcc777b2d1bcfb66c4972b6
Salvage debuginfo when combining load and z|s ext instrs.
SelectionDAG uses the DAGCombiner to fold a load followed by a sext to a
load and sext instruction. For example, in x86 we will see that
```
%1 = load i32, ptr @GlobArr
#dbg_value(i32 %1, !43, !DIExpression(), !52)
%2 = sext i32 %1 to i64, !dbg !53
```
is converted to:
```
%0:gr64_nosp = MOVSX64rm32 $rip, 1, $noreg, @GlobArr, $noreg, debug-instr-number 1, debug-location !51
[14 lines not shown]
[CIR][Lowering] Handle address space cast in GlobalViewAttr lowering (#190197)
Upstreaming clangIR PR: https://github.com/llvm/clangir/pull/2099
This PR fixes the GlobalViewAttr LLVM lowering to use AddrSpaceCastOp
when the source and destination address spaces differ.
This fixes crashes when lowering globals referenced across address
spaces, such as AMDGPU globals in addrspace(1) referenced from
llvm.compiler.used arrays.
py-test-subprocess: updated to 1.5.4
1.5.4 (2026-03-21)
Features
* Improve matching commands that contain quoted arguments.
Bug fixes
* Fix ResourceWarning for unclosed file handles in test_universal_newlines and test_text by explicitly closing process.stdout after reading, preventing intermittent failures on Python 3.12+.
* Handle stderr=STDOUT when stdout is a file handle.
* Patch imported `subprocess.Popen` aliases.
* Support file handles in stdout and stderr.
Other changes
* Officially support Python 3.14 and 3.15.
py-test: updated to 9.0.3
pytest 9.0.3 (2026-04-07)
Bug fixes
* Fixed pytest.approx() which now correctly takes into account Mapping keys order to compare them.
* Blocking a conftest.py file using the -p no: option is now explicitly disallowed.
Previously this resulted in an internal assertion failure during plugin loading.
Pytest now raises a clear UsageError explaining that conftest files are not plugins and cannot be disabled via -p.
* Fixed crash when a test raises an exceptiongroup with __tracebackhide__ = True.
* Fixed an issue where non-string messages passed to unittest.TestCase.subTest() were not printed.
* Fixed use of insecure temporary directory (CVE-2025-71176).
Improved documentation
* Clarified documentation for -p vs PYTEST_PLUGINS plugin loading and fixed an incorrect -p example.
[5 lines not shown]
py-lxml: updated to 6.0.3
6.0.3 (2026-04-09)
Bugs fixed
* Several out of memory error cases now raise ``MemoryError`` that were not handled before.
* Slicing with large step values (outside of ``+/- sys.maxsize``) could trigger undefined C behaviour.
* LP-125399: Some failing tests were fixed or disabled in PyPy.
* LP-2138421: Memory leak in error cases when setting the ``public_id`` or ``system_url`` of a document.
* Memory leak in case of a memory allocation failure when copying document subtrees.
* When mapping an XPath result to Python failed, the result memory could leak.
* When preparing an XSLT transform failed, the XSLT parameter memory could leak.