[lit] Include zero-duration tests in the --time-tests histogram
`if t.result.elapsed` dropped tests whose elapsed time was 0.0, so
--time-tests=all could print "N of M" with M smaller than the number of
tests that ran (seen as a flake in time-tests.py). Treat only None as
"not timed". If every recorded time is zero, use 0.55 as a dummy max so
the histogram can still be built without log(0).
[InstCombine] Directly add negated instructions to the worklist (#226118)
This code was doing something really confusing: Resetting the
insertion point and debug location and then inserting the
instructions -- which should be a no-op. It turns out that the
purpose of this code is to invoke the InstCombine IRBuilder
insertion callback, which will add these instructions to the
worklist.
Instead of going through these contortions, directly add the
new instructions to the worklist.
[ORC] Describe COFFPlatform symbol names by mangling kind (#226097)
Replace Verbatim with the accurate SymbolNameKind for the names that
COFFPlatform and COFFVCRuntimeBootstrapper look up: C for the ORC
runtime's extern "C" __orc_rt_coff_* entry points, the C runtime's
__scrt_* functions, and __run_after_c_init; Linker for the MSVC
C++-decorated ?__scrt_initialize_type_info@@YAXXZ, which is already a
linker-level name.
CodeGen: Move Generic sjlj test to Transforms (#226112)
Test the IR-only SjLjEHPrepare pass in the dedicated pass test
directory. Also add the module flag so it is really triple
independent.
[WasmEHPrepare] Don't use IRBuilder for constexpr GEP (#226108)
Do not use an IRBuilder without an insertion point to create
a constant expression get. Directly create the constant expression
instead.
[PDB] Correctly read/write the named stream map's niMac value (#225729)
The serialization of a PDB stream's named stream map ends with an
integer value, NMTNI::niMac in the microsoft-pdb code.
Since 05d5e6136f5a3f5de28ae64077200bbdc2cacfb4, LLVM was writing this
out as an undocumented zero between the named streams map and feature
codes, and reading it as an unknown/ignored feature code.
The actual value doesn't seem particularly important, but it's better to
read/write these explicitly, and it should not be read as a feature
code.
This fixes one of the issues in
https://github.com/llvm/llvm-project/issues/206120
[RISCV] Require Zve32f for XAndesVSIntH FP conversions (#226001)
`XAndesVSIntH` currently implies only `Zve32x`. This commit requires
vector floating-point support for its four integer-to-FP conversion
instructions.
py-semver: updated to 3.1.0
Version 3.1.0
Bug Fixes
* :pr:`478`: ``Version.parse()`` and ``Version.is_valid()`` now reject non-ASCII digits and
trailing newlines, in accordance with the SemVer grammar. Optional minor and
patch parsing applies the same character restrictions.
* :pr:`479`: Comparing a :class:`~semver.Version` with a ``dict``, ``tuple``, or ``list`` that cannot construct a valid version (for example, an empty collection, wrong number of parts, non-numeric parts, or unknown keys) no longer raises internal errors from ``Version.__init__``. The comparison operators now return :py:const:`NotImplemented` for such operands, following the general rule for invalid comparison operand types: equality evaluates to ``False`` and ordering raises Python's standard :py:exc:`TypeError` (for example, ``'>' not supported between instances of 'Version' and 'dict'``).
* :pr:`480`: (:meth:`~semver.version.Version.bump_build`) will now add ``.0`` to an existing build when the last segment of the current build metadata, split by dots (``.``), is not numeric. This is to ensure the bumped version contains a raised build instead of silently returning an unchanged version. For example, ``1.2.3+alpha`` is bumped to ``1.2.3+alpha.0``. This mirrors the corresponding fix for the prerelease part (:gh:`460`). Related to :gh:`466`.
* :gh:`460`: :meth:`~semver.version.Version.bump_prerelease` will now add `.0` to an
existing prerelease when the last segment of the current prerelease, split by
dots (`.`), is not numeric. This is to ensure the new prerelease is considered
higher than the previous one.
[10 lines not shown]
[AMDGPU] Route no-modifier reg-or-inline AsmParser operands through HwMode predicate
Convert the reg-or-inline operands with no modifiers (MFMA VGPR/AGPR
sources, VCSrc, v_pk_mov_b32, VOP scalar f64) from the fixed-class
isRegOrInlineNoMods to the HwMode-aware isRegOrInlineNoModsByHwMode, so an
odd-aligned tuple is rejected at the offending operand column instead of by
the validateVGPRAlign catch-all.
Co-Authored-By: Claude <noreply at anthropic.com>
[AMDGPU] Update no-modifier operand tests for the dropped align diagnostic
The no-modifier reg-or-inline operands routed through the HwMode
predicate now report a misaligned tuple as a plain invalid operand,
matching the diagnostic dropped earlier in the stack.
py-pylint: updated to 4.0.9
What's new in Pylint 4.0.9?
False Positives Fixed
- Fixed a false positive for ``no-self-use`` on a method that only uses
``self`` before a locally defined class (or other nested method), because
the checker's could-be-a-function tracking state was not restored after
visiting the nested method.
- Fix a false positive for :ref:`not-callable` when calling functions constructed with
``types.FunctionType`` or ``types.LambdaType``.
- Fix a false positive for ``unnecessary-direct-lambda-call`` when a directly called
lambda in a class body wraps a comprehension containing an assignment expression.
PEP 572 makes that a ``SyntaxError`` without the lambda's scope, so following the
message produced code that would not compile.
[37 lines not shown]
[Clang][OpenMP] Use the list item location as point of instantiation in mapper lookup (#225604)
Fixes #154704
When a variable is implicitly mapped on `#pragma omp target`, Clang
looks for a user-defined mapper for its type through ADL, and ADL may
have to instantiate class template specializations named by the type's
template arguments (for `std::map<int, int>` that's its allocator).
Implicit map clauses carry no source location by design, and the
"default" mapper id was stamped with that empty location, so the
instantiation was recorded with an invalid point of instantiation and
`setPointOfInstantiation` asserted.
`buildUserDefinedMapperRef` now takes the location of the mapped list
item and uses it for the ADL and the derived-class checks, which is what
the other default-mapper lookups in `SemaOpenMP.cpp` already did.
Diagnostics about the mapper id and the mapper reference itself keep the
mapper-id location, so explicit `mapper(id)` behavior is unchanged. The
instantiation is now attributed to the mapped variable inside the
region, which is also where the "in instantiation requested here" note
points.
[AArch64][PAC] Reset `killed` operand flags in outlined functions
Presently, MachineOutliner does not take `killed` operand flags into
account when merging instruction sequences. While it sounds perfectly
reasonable not to inhibit merging of the instruction sequences that
only differ in `killed` flags (for N flags there is technically 2^N
valid ways to drop some subset of them), copying these flags from
an arbitrarily chosen representative instruction may result in
incorrect codegen of PAuth-related pseudo instructions on AArch64.
To keep `killed` flags conservatively correct as if `OUTLINED_FUNCTION`s
are virtually re-inserted at every call site, this patch takes the
simplest approach of resetting every `killed` flag inside the
outlined functions.
update to py3-pandas-3.0.6; something (unidentified but quite possibly the
switch to python 3.14) resulted in the previous version segfaulting when
parsing datetimes. issue reported and update tested by Percy Piper.
[ConstantFolding] Use getGetElementPtr() overload accepting DataLayout (#226104)
To directly create the constant GEP in canonical form. The practical
effect is that we a) canonicalize vector GEPs and b) decline to
create a GEP which can't be represented in ptradd form (in the
constant_fold_custom_dl test due to a non-canonical index type).