[FixIrreducible] Declare dependency on CycleInfo (#239544)
This is mostly just for consistency. It is NFC for tools like opt that
initialize all analyses globally.
[NVPTX] Use f16 denormal_fpenv for f16 FTZ (#238454)
In NVPTX, when deciding whether an f16 instruction should use the .ftz
modifier, query the f16 semantics from the denormal_fpenv instead of
re-using the f32 environment's FTZ semantics.
Also, make FTZ decisions based on Input instead of Output mode, as the
LangRef states Input "must" be flushed but Output "may" flush. In
practice, both should be set to either preservesign or ieee for NVPTX
anyway, so checking either would work.
Assisted by: Codex
[flang][OpenACC] Fix remapping of SELECT TYPE associate names in data clauses (#239251)
Using the associate name of an allocatable or pointer SELECT TYPE
selector in an OpenACC data clause hit an assertion while lowering,
because the associate name's descriptor type still marked it allocatable
or pointer while the data clause's did not. Use the data clause's
descriptor directly when the two differ only in that way.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[CGP] Simple loop strength reduction for vector values (#226197)
The main LoopStrengthReduce pass works on scalar values, and needs to be
able to form SCEVs. Since vectors are not scevable we may leave
additional operations in a loop that could be extracted.
This patch performs a very simplified strength reduction for vector
progressions.
[AMDGPU] Diagnose s_waitcnt builtin on archs that don't have it
GFX12.5 no longer supports the s_waitcnt instruction (it uses different
instructions), so this builtin is not available on GFX12.5.
So far, this would fail during instruction selection.
Disclaimer: Implemented with AI, manually checked.
Assisted-by: AI
textproc/py-yapf: Add the platformdirs run dependency, fix pgen2.conv
yapf 0.43 requires platformdirs at run time: the vendored
yapf_third_party/_ylib2to3/pgen2/driver.py imports it, so
"import yapf" fails with ModuleNotFoundError in a clean install (seen
through devel/py-medikit). The port only listed it in TEST_DEPENDS.
Also fix the vendored pgen2/conv.py, which imports grammar and token
absolutely ("from pgen2 import ...") and so could never be imported;
import them relatively.
While here, fix portlint warnings.
PR: 300215
[AMDGPU] Use DataLayout sizes in the bitcast cost, compute each EVT once
getPrimitiveSizeInBits returns 0 for pointers, so use the DataLayout
sizes for the size check. Compute the EVT of each side once and use it
for both checks. The costs do not change.
Assisted-by: Claude Opus
[clang-tidy] Add IgnoredParameterNames to argument-comment (#237891)
C code often names parameters with a single letter or a generic name
such as
arg1. A comment like /*p=*/NULL tells the reader nothing, but the
Comment*
options of bugprone-argument-comment still ask for one. When the caller
writes
/*path=*/NULL for a parameter named p instead, the check reports a
mismatch.
Let's add an option with a semicolon-separated list of regular
expressions for
the parameter names that the check skips, the format most clang-tidy
options
with regular expressions use. A regular expression that doesn't compile
is a
configuration error, like in misc-include-cleaner.
[2 lines not shown]
[AMDGPU] Move the bitcast cost comments, document the i1 mask test
Put the comment about the scalarized parts of a vector bitcast above
the size check, and the comment about the shared registers inside it.
Say in the test which case @i1_mask covers.
Assisted-by: Claude Opus
[AMDGPU] Treat a bitcast between legal types as free
The generic cost model treats a bitcast as free only when both types
are integer types or both are not. AMDGPU keeps integer and
floating-point values in the same registers, so a bitcast between two
legal types is a no-op. A scalar bitcast from i32 to float cost 1, but
the vector bitcast from <2 x i32> to <2 x float> cost 0. The SLP
vectorizer counted this difference as a saving.
A bitcast that involves a type the target legalizes, such as a vector
of i8, keeps its cost, because the lanes may need repacking.
Assisted-by: Claude Opus
[AMDGPU][NFC] Add tests for bitcasts between integer and FP types (#238410)
Add cost model tests for bitcasts between types of the same size:
integer and floating-point scalars and vectors, types that the target
legalizes (vectors of i8, i24 and <2 x i24>), and pointers. Add a gfx7
RUN line, where i16 and <2 x i16> are not legal. Add an SLP test that
stores a pair of values bitcast from i32 to float.
Assisted-by: Claude Opus
[flang] Test and document legacy allocation-placement opt-out handling
In legacy mode, a function that opted out of -fstack-arrays in its own policy
is handled as if -fstack-arrays was not set, so that -fdynamic-heap-array
applies to it as it does without -fstack-arrays. Test it, and document when
the stack-arrays and dynamic-array-on-heap options apply.
Revert "[FuncSpec] Relax restrictions on code size growth" (#239170)
Reverts llvm/llvm-project#196570 because of reported performance
regression in non-LTO builds.
p5-Image-ExifTool: update to 13.61.
New version linked as main download on homepage.
Nov. 5, 2026 - Version 13.61
- Added a new Olympus CameraType (thanks Herb, github #502)
- Added arg_files/audio2itemlist.args to the distribution (github #497)
- Recognize the SlimHEIF mif3 file type (github #503
- Decode some more Canon tags (github #505, #506, #507)
- Changed DJI NRSetting tag name to NoiseReduction for consistency
- Patched issue where a corrupted FLIF file could cause a hang (github #500)
- Patched to avoid backward seek on empty QuickTime atom (github #482)
- Patched compatibility issue with Sony Imaging Edge applications when writing
ARW files (github #465)
- Patched a few places where corrupt metadata could result in excessive memory
usage
- Fixed performance issue when using -j on a file with large binary tag values
(github #496)
[106 lines not shown]