[CMake] Move -Wno-unused-but-set-parameter from MLIR up to LLVM (#221824)
This warning is known to have false positives with GCC versions before
14.
Since 3aec6a40bb4e49f9ea181ac5c949b6c7c20a5465, this warning appears
when building LLVMSupport as well - thus move the disabling of the
warning up from MLIR to all of LLVM.
In HandleLLVMOptions, the common procedure is to not check for whether
the options are supported or not, but to just hardcode the version
ranges where the options are supported, per compiler.
This option (and -Wunused-but-set-parameter) is available in GCC since
long before our minimum required version.
[X86] Fold atomic loads into compares (#221290)
A compare of an atomic load kept the load in a register (mov + cmp/test)
where a compare of a regular load folds the load into the compare's
memory operand. The folded form performs a single full-width load, and
on x86 an ordinary load already provides every ordering up to seq_cst,
so folding is legal for any non-extending atomic load.
Add isel patterns folding an atomic load into CMP (mi/mr/rm forms across
i8/i16/i32/i64). Compare-to-zero already reaches these via EmitTest;
nonzero and register compares are emitted as a flag-only X86ISD::SUB (to
enable CSE with a real subtract) whose load the peephole then folds. The
peephole cannot move an ordered access, so those never folded for atomic
loads. Emit X86ISD::CMP instead when an operand is a foldable atomic
load: it has no non-atomic sibling to CSE with anyway.
x86lint reports 5854 "load foldable into compare" sites in a release
build of Firefox's libxul.so; sampling shows the majority are
atomic-load compares of the kind this folds -- mozilla::Atomic and
[5 lines not shown]
[UpdateTestChecks][X86] Allow --no_x86_scrub_sp to disable folded stack spill/restore stack math scrubing (#221788)
We were handling cases to show general load/store stack math, but had
missed the r/w/rmw folded cases
[LLVM][NVPTX] Add Rubin extensions for G2S Tensor intrinsics (#220029)
This change adds support for the Rubin-extended Global-to-Shared tensor
copy intrinsics for both the Cluster and CTA variants:
1. 32-bit multicast mask support: the G2S Cluster intrinsics are now
overloaded on the multicast mask type (i16/i32); an i32 mask lowers to
`.multicast::cluster::32b`.
2. Data-validity reporting through the mbarrier: all G2S Cluster and CTA
intrinsics, including the property-override forms, take a trailing `i32
%validate_pattern` immediate (range [0, 6)) that selects a
`.mbarrier::report::validity` qualifier. It defaults to 0 (disabled).
3. Override tensor map properties: the G2S Cluster and CTA intrinsics
now support `.override::global_address`, optionally followed by
`.override::global_dim` / `.override::global_dim_stride`, across all
load modes. The dim/stride overrides apply to tile mode only; im2col and
gather4 support the global-address override only.
The new `validate_pattern` argument changes the IR signatures of all G2S
[3 lines not shown]
[GlobalISel] Lower bytecast in IRTranslator
Add translateByteCast and move byte-specific cast lowering out of
translateBitCast. Byte-pointer crossings use G_INTTOPTR/G_PTRTOINT; other
byte casts reuse the existing G_BITCAST/COPY paths.
Co-authored-by: Cursor <cursoragent at cursor.com>
[Bitcode] Add ByteCast encoding and decoding
Add CAST_BYTECAST to the bitcode cast opcode table and wire it through the
reader and writer so bytecast instructions round-trip in bitcode.
Co-authored-by: Cursor <cursoragent at cursor.com>
[LLVM-C] Add LLVMBuildByteCast
Expose a C API builder for the bytecast instruction, mirroring the existing
LLVMBuildBitCast entry point, and teach llvm-c-test --echo to clone bytecast
so the new entry point is exercised by a round-trip test.
Co-authored-by: Cursor <cursoragent at cursor.com>
[IR] Add ByteCast opcode and ByteCastInst
Introduce a dedicated bytecast instruction for casts involving byte types.
Split byte cast validation out of bitcast, add ByteCastInst, constant folding,
and verifier support. Renumber subsequent opcodes to keep Instruction.def unique.
Add LLVMByteCast to the C API opcode enum for Core.cpp mapping tables, minimal
codegen stubs, assembler/llubi support, and bitcast-to-bytecast fallback in the
parser so existing IR text continues to assemble.
Co-authored-by: Cursor <cursoragent at cursor.com>
[GlobalISel] Lower bytecast in IRTranslator
Add translateByteCast and move byte-specific cast lowering out of
translateBitCast. Byte-pointer crossings use G_INTTOPTR/G_PTRTOINT; other
byte casts reuse the existing G_BITCAST/COPY paths.
Co-authored-by: Cursor <cursoragent at cursor.com>
[LLVM-C] Add LLVMBuildByteCast
Expose a C API builder for the bytecast instruction, mirroring the existing
LLVMBuildBitCast entry point, and teach llvm-c-test --echo to clone bytecast
so the new entry point is exercised by a round-trip test.
Co-authored-by: Cursor <cursoragent at cursor.com>
[Bitcode] Add ByteCast encoding and decoding
Add CAST_BYTECAST to the bitcode cast opcode table and wire it through the
reader and writer so bytecast instructions round-trip in bitcode.
Co-authored-by: Cursor <cursoragent at cursor.com>
[IR] Add ByteCast opcode and ByteCastInst
Introduce a dedicated bytecast instruction for casts involving byte types.
Split byte cast validation out of bitcast, add ByteCastInst, constant folding,
and verifier support. Renumber subsequent opcodes to keep Instruction.def unique.
Add LLVMByteCast to the C API opcode enum for Core.cpp mapping tables, minimal
codegen stubs, assembler/llubi support, and bitcast-to-bytecast fallback in the
parser so existing IR text continues to assemble.
Co-authored-by: Cursor <cursoragent at cursor.com>
py-kubernetes: updated to 36.0.3
v36.0.3
Kubernetes API Version: v1.36.2
Bug or Regression
- Fix Watch.stream selecting watch instead of follow when streaming pod logs.
- Start the leader election worker thread as a daemon so it does not block process shutdown.
- Fix readline_channel, readline_stdout and readline_stderr crashing with OverflowError when using the default timeout, and returning None when a timeout expires.
- Fix format_quantity returning imprecise, non-canonical values for the milli, micro and nano suffixes, and ignoring quantize=Decimal(0).
[mlir][llvm] Fix metadata and alignment on masked memory intrinsics
llvm.intr.masked.load, masked.store, masked.gather and masked.scatter
implemented neither AccessGroupOpInterface nor AliasAnalysisOpInterface,
so they could not carry access_groups, alias_scopes, noalias_scopes or
tbaa. Importing LLVM IR that attached such metadata to one of them
silently dropped it, while llvm.memcpy in the same module preserved it.
Also widen alignment from I32Attr to I64Attr, matching the rest of the
LLVM dialect and LLVM proper, and make it optional. LangRef gives the
default alignment of these four intrinsics as the ABI alignment of the
type, exactly as for llvm.load and llvm.store, so an absent align
parameter attribute now imports as an absent alignment attribute instead
of being materialised as align 1, and an absent alignment attribute
exports without an align parameter attribute. This changes the textual
IR, as alignment = 4 : i32 becomes alignment = 4 : i64. Downstream
updates should rewrite only lines that mention a masked intrinsic rather
than blanket-substituting i32 with i64; other i32 spellings must stay,
including llvm.intr.matrix.*'s rows and columns attributes and i32
[3 lines not shown]
py-blessed: updated to 1.49.0
1.49
* introduce: :meth:`~Terminal.get_font_coverage` reports codepoints the terminal font has a glyph
for, by mintty's ``OSC 7771`` Font Glyph Coverage Enquiry or the ``APC 25a1`` Glyph Protocol,
:ghpull:`407`.
* bugfix: :ref:`legacy mouse` event names and button values, mouse release events returned by
:meth:`~Terminal.inkey` were always ``MOUSE_LEFT_RELEASED`` for all buttons, they now report
``MOUSE_RELEASED``, :ghpull:`406`.
* bugfix: Mouse buttons 6 through 11 were erroneously decoded as left, middle, or right instead of
``MOUSE_BUTTON_6`` through ``MOUSE_BUTTON_11``, :ghpull:`406`.
* improve: performance of automatic terminal query replies, :ghpull:`405`.
* improve: all parameterized capabilities are now memorized, about 50x faster, :ghpull:`404`.
* bugfix: :meth:`~Terminal.truncate` by bump of dependency ``wcwidth>=0.8.3``, :ghissue:`402`.
1.48
*
bugfix: :meth:`~Terminal.async_inkey` dropped keystrokes while another task is busy,
:ghissue:`401`.
[16 lines not shown]
[offload][omp] Route RPC callback registration through liboffload
Replace __tgt_register_rpc_callback's direct iteration over plugins
with olIteratePlatforms + olPlatformRegisterRPCCallback, and drop the
now-unused RPCServerTy::registerCallback export. Move the
initialized/has-devices guard that used to live in libomptarget into
olPlatformRegisterRPCCallback_impl.
[offload][omp] Query device info directly through liboffload
Route DeviceTy::getInfo through olGetDeviceInfo instead of the
plugin's obtain_device_info, and drop the now-unused
GenericPluginTy::obtain_device_info wrapper and its liboffload
export.