[LoongArch] Select LDPTR.W for any-extending i32 loads (#237883)
On LA64, an i32 load that does not require sign extension may be
represented as extloadi32 in SelectionDAG.
The existing LDPTR.W pattern only matches sextloadi32. This prevents
some constant-offset i32 loads from using LDPTR.W, resulting in
unnecessary address materialization and register-indexed loads.
Add an extloadi32 pattern for LDPTR.W, preserving the existing
zero-extension semantics and immediate-range constraints.
Assisted-by: Codex (cloud)
[mlir][affine] avoid folding affine expressions that overflow int64_t (#231085)
AffineExprConstantFolder used plain int64_t math for add/mul, so folding
something like (d0 + 1) with d0 = INT64_MAX overflowed. floordiv/ceildiv
of INT64_MIN by -1 had the same problem and hit an assert. Now we check
for overflow and just skip the fold when it happens.
Added tests for add, mul, and div overflow in canonicalize.mlir.
fixes #229706
---------
Co-authored-by: Mahmoud <mahmoud at Mahmouds-MacBook-Pro.local>
[mlir][ODS] Include headers required by generated enum declarations and definitions (#239223)
Generated enum declarations and definitions use C++ constructs that are
not declared by any header they include. They therefore relied on the
surrounding source file to include these headers first.
The enum declarations and definitions now include the headers declaring
these constructs, depending on the features of the enums.
The declarations still only forward declare `AsmParser` and
`FieldParser` to keep the generated headers cheap to include.
Similar to #236155 and #238735 but for the enum generator.
Co-authored-by: Claude <noreply at anthropic.com>
[Support] Use [[gnu::warn_unused]] for LLVM_ATTRIBUTE_WARN_UNUSED (NFC) (#239486)
This patch updates LLVM_ATTRIBUTE_WARN_UNUSED in Compiler.h to use the
C++11 attribute syntax [[gnu::warn_unused]] via LLVM_HAS_CPP_ATTRIBUTE
instead of __attribute__((warn_unused)).
GCC 12 and earlier reject:
class __attribute__((warn_unused)) [[nodiscard]] Foo { ... };
class [[nodiscard]] __attribute__((warn_unused)) Bar { ... };
This is exactly what happened in #237802. Specifically, it added
LLVM_ATTRIBUTE_WARN_UNUSED to APInt, which already had [[nodiscard]],
and broke GCC 12 buildbots, leading to a revert in #239152:
https://lab.llvm.org/buildbot/#/builders/181/builds/53859
This patch drops the __attribute__((warn_unused)) fallback because an
older compiler like Clang 5.0 would select it and fail when a class
also has [[nodiscard]]. It's always safe to expand this optional
[2 lines not shown]
nvme: drop the S3X single-outstanding-I/O quirk
The quirk's 8KB transfer clamp exposed raw character-device I/O to
the oversized-mapping stall fixed earlier, and its single tracker
turned a stranded request into a complete I/O stall. Without it an
S3X controller runs 128 trackers at its MDTS-derived transfer size
with no retries, failures, or timeouts, at about seven times the
serialized throughput.
Reviewed by: imp, adrian, ngie
Approved by: ngie (co-mentor)
Differential Revision: https://reviews.freebsd.org/D59156
nvme: program the arbitration burst from Identify RAB
The controller's Recommended Arbitration Burst was ignored; the
specification advises matching the Arbitration feature's burst to it
even under plain round robin. Some controllers report unusable
values: programming the Apple S3X with its reported RAB wedged
sustained I/O, so quirked controllers keep their default
configuration. The hw.nvme.arb_burst tunable overrides the
recommendation.
Reviewed by: imp
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D59155
[mlir][ODS] Include headers required by generated enum declarations and definitions
Generated enum declarations and definitions use C++ constructs that are
not declared by any header they include. They therefore relied on the
surrounding source file to include these headers first.
The enum declarations and definitions now include the headers declaring
these constructs, depending on the features of the enums.
The declarations still only forward declare `AsmParser` and `FieldParser`
to keep the generated headers cheap to include.
Similar to #236155 and #238735 but for the enum generator.
Co-authored-by: Claude <noreply at anthropic.com>
[DSE] Extend same ptr operand check to must-aliasing pointers in `storeIsNoop` (#238722)
We have observed a few DSE missed opportunities with a handful of CUDA
APIs that merely annotate a pointer with a cache hint and return it
(notably, `cuda::associate_access_property`). Thus, extend the existing
pointer equality check to must-aliasing pointers as well.
Co-authored-by: Alexander Krolik <akrolik at nvidia.com>
netlink: Pre-register the missing devctl event systems
devctl_notify() can be called with a mutex held. If the event system is
not listed in devctl_systems[], sysevent_get_group() calls
sysevent_new_group(), which calls strdup() with M_WAITOK, and we may end
up sleeping while holding a non-sleepable mutex.
Add the missing systems.
While here, remove the nonexistent KERNEL system.
PR: 299272
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D61161
graphics/qcomicbook: Update to 0.10.0, migrate to Qt6, take maintainership
- Point to https://github.com/valepert/QComicBook fork.
- Raise the compiler floor to C++17.
- Drop deprecation
Approved by: makc (mentor)
Approved by: arrowd (co-mentor)
(cherry picked from commit 418f27c2542824710095a6465d8b2532241af5ce)
graphics/qimgv: Remove Qt5 build option
Make the port build unconditionally with Qt6. The main.cpp patch drops
its Qt version conditional and sets the desktop filename for Qt6 only.
Bump PORTREVISION.
Approved by: arrowd (co-mentor)
(cherry picked from commit 2e6c1efc6d023024a84676b1d0ca72da582e5bcc)
graphics/qcomicbook: Update to 0.10.0, migrate to Qt6, take maintainership
- Point to https://github.com/valepert/QComicBook fork.
- Raise the compiler floor to C++17.
- Drop deprecation
Approved by: makc (mentor)
Approved by: arrowd (co-mentor)
graphics/qimgv: Remove Qt5 build option
Make the port build unconditionally with Qt6. The main.cpp patch drops
its Qt version conditional and sets the desktop filename for Qt6 only.
Bump PORTREVISION.
Approved by: arrowd (co-mentor)
cloudflare-speed-cli: Update to version 1.0.12
Changes since 1.0.11:
- Optional clipboard support (PR #60):
- Ring-only TLS provider (PR #61):
- Removed unused AWS-LC related packages
Provided by Bartosz Kuzma on WIP, thanks!
PR pkg/60969
[mlir][SPIRV] Handle vector stores when unifying aliased resources (#232185)
I hit this while compiling JAX training code to WebGPU through IREE.
The alias-unification pass can select a smaller vector resource, but its
store conversion currently only handles scalars. Handle vector stores by
splitting them into stores of the canonical vector type, preserving
memory-access flags and alignment.
---------
Signed-off-by: anutosh491 <andersonbhat491 at gmail.com>
[mlir][SPIR-V] Add SPIRVToLLVM conversion for CL.ldexp and GL.Ldexp (#237745)
Vector exponents are not covered since llvm.intr.ldexp accepts only a
scalar integer exponent