[M68k] Use UADDO_CARRY/USUBO_CARRY instead of ADDC/ADDE/SUBC/SUBE.
Type legalization now expands wide add/sub using UADDO/USUBO and
UADDO_CARRY/USUBO_CARRY, which are lowered to M68kISD::ADD/SUB and
M68kISD::ADDX/SUBX with the carry passed through CCR.
ADDX/SUBX no longer receive a glue operand, so their verifyTargetNode
waivers can be removed.
This improves the code for i64 uadd/usub.with.overflow. Previously the
overflow bit was computed by redoing the subtraction, and usubo also
saved and restored CCR.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
[M68k] Only fold carry into ADDX/SUBX from flags that set X. NFCI
combineCarryThroughADD replaces (ADD (SETCC COND_CS, Flags), -1) with
Flags. For SETCC/BRCOND users that is fine because they read C, but
ADDX/SUBX read the X flag. CMP, TST, logical ops, MUL and BTST set C
without changing X, so folding their flags into ADDX/SUBX would use a
stale X.
Only do the fold for ADDX/SUBX when the flags come from M68kISD::ADD,
SUB, ADDX or SUBX, which set X equal to C. I could not find a case that
currently reaches the fold with other flags, so no test changes.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
[M68k] Consistently use MVT::i8 for CCR values. (#235554)
This fixes some of the waivers in M68kSelectionDAGInfo.cpp. SUBX is
still broken for other reasons.
[sanitizer_common][test] Disable NolibcMain on Android (#235565)
Sanitizer-x86_64-Test-Nolibc is only built when `NOT ANDROID` in
`compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt`.
Assisted-by: Gemini
[cmake] Findzstd: probe AIX .a archives for loader section
On AIX, shared libraries are conventionally packaged as .a archives
containing shared-object members. The existing heuristic in Findzstd
classifies any .a file (other than Cygwin .dll.a import libraries) as a
static library, based solely on the file suffix.
Fix this by probing the found library with "dump -X32_64 -T" on AIX.
A loader section in the output indicates a shared-object member; absent
that, the archive is treated as a genuine static library. The file-suffix
heuristic is preserved unchanged for all other platforms.
---------
Assisted-by: IBM Bob
[compiler-rt][test] XFAIL C++ ABI / operator new tests on Android (#235557)
Temporary suppression to fix
https://lab.llvm.org/buildbot/#/builders/sanitizer-x86_64-linux-android.
After #196388, both `libclang_rt.asan-*-android.so` and
`libc++_shared.so` link static `libc++abi.a`, resulting in duplicate
`libc++abi` symbols and state across the two shared libraries.
Assisted-by: Gemini
[M68k] Use UADDO_CARRY/USUBO_CARRY instead of ADDC/ADDE/SUBC/SUBE.
Type legalization now expands wide add/sub using UADDO/USUBO and
UADDO_CARRY/USUBO_CARRY, which are lowered to M68kISD::ADD/SUB and
M68kISD::ADDX/SUBX with the carry passed through CCR.
ADDX/SUBX no longer receive a glue operand, so their verifyTargetNode
waivers can be removed.
This improves the code for i64 uadd/usub.with.overflow. Previously the
overflow bit was computed by redoing the subtraction, and usubo also
saved and restored CCR.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
[M68k] Only fold carry into ADDX/SUBX from flags that set X. NFCI
combineCarryThroughADD replaces (ADD (SETCC COND_CS, Flags), -1) with
Flags. For SETCC/BRCOND users that is fine because they read C, but
ADDX/SUBX read the X flag. CMP, TST, logical ops, MUL and BTST set C
without changing X, so folding their flags into ADDX/SUBX would use a
stale X.
Only do the fold for ADDX/SUBX when the flags come from M68kISD::ADD,
SUB, ADDX or SUBX, which set X equal to C. I could not find a case that
currently reaches the fold with other flags, so no test changes.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
[BPF] Describe the CO-RE subarray test functions (#235475)
The subarray test in 6636b41a18af gave both functions an empty debug
signature. This exposed an uninitialized prototype type ID during BTF
emission on the MemorySanitizer builder [1].
Describe the pointer each function takes and returns, and retain the
parameter names for BTF.
[1]: https://lab.llvm.org/buildbot/api/v2/logs/42872009/raw
Assisted-by: OpenAI Codex
[AVR][NFC] Drop stale comment (#235479)
Spotted at random - this function already implements the behavior
mentioned by the comment (we do `if (STI.hasLowByteFirst()) {` couple of
lines below).
[libc][math] Implement double precision cosh correctly rounded to all rounding modes.
Use shared exp(x) +- exp(-x) evaluations with sinh from https://github.com/llvm/llvm-project/pull/235097.
Assisted-by: Gemini for analysis and refactoring.
Merge tag 'for-7.4-part2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
Pull more btrfs updates from David Sterba:
"This removes unused code of free space caching, disabled in 7.3
(commit 545e560a5b0f: "btrfs: disable v1 space cache").
It's been the original free space cache feature, superseded by free
space tree (4.5) and mkfs default since 5.15. The grace period was
sufficiently long, backward compatibility still exists with a
performance impact, effectively as if mounted with '-o nospace_cache'"
* tag 'for-7.4-part2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
btrfs: remove TRANS_JOIN_NOLOCK
btrfs: stop reading free space inodes from the commit root
btrfs: stop special-casing free space inodes in the delalloc accounting
btrfs: remove the free space inode special cases from the COW paths
btrfs: remove the free space inode ordered extent special cases
btrfs: remove BTRFS_RESERVE_FLUSH_FREE_SPACE_INODE
btrfs: remove the free space cache trimming ranges
[13 lines not shown]
Merge tag 'ext4_for_linus-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 updates from Ted Ts'o:
"Add support for buffered iomap support in ext4. This is not enabled by
default, but requires the buffered_iomap mount option, as this mode
does not support online defragmentation, inline data, fsverify,
fscrypt, non-extent inodes, and data=journal mode. If buffered_iomap
is enabled, ext4 will fall back to the original I/O code path
automatically if necessary. Large writes show significant performance
improvements when buffered iomap is enabled.
There are also miscellaneous bug fixes and improvements, including for
fast commit and avoiding deadlocks and out-of-bound reads when
handling corner cases involving corrupted file systems"
* tag 'ext4_for_linus-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (41 commits)
ext4: introduce a mount option for iomap buffered I/O path
ext4: partially enable iomap for the buffered I/O path of regular files
ext4: add tracepoints for EOF block zeroing and disksize-grow I/O
[18 lines not shown]
[SPARC] Accept % prefix and alias register names in getRegisterByName (#234875)
The frontend accepts named register variables spelled with a % prefix
and aliases like sp and fp, but getRegisterByName did not match.
Strip an optional leading `%` from the register name before the lookup,
and add fp and sp as aliases for i6 and o6.
Fix #225926.
[LV] Add tests for diff checks of ptrs accessed more than once (NFC) (#235514)
Add a test with a pointer that is stored twice after the load of another
pointer, which currently uses range checks.
Also access %A with a larger step than %B in sinkable_predicated_store
(if-pred-stores.ll), which would otherwise use diff checks with the next
change. Range checks add the scoped noalias metadata sinking the
predicated stores requires.
Merge tag 'ntfs-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/ntfs
Pull ntfs updates from Namjae Jeon:
"New features:
- Implement ioctls to list, read, write, and remove named streams on
files and directories. Provide optional file:stream pathname access
through streams_interface=windows, exposing streams as regular file
descriptors with support for mmap, locking, truncation, and
allocation.
- Support file attribute queries and updates through FS_IOC_GETFLAGS
and FS_IOC_SETFLAGS. Store immutable, append-only, nodump, and
noatime settings in the private $LINUXFLAGS extended attribute and
restore them when loading inodes. Also report compression,
encryption, and the mount-wide case-folding policy as read-only
attributes.
Other changes:
[131 lines not shown]
Merge tag 'exfat-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat
Pull exfat updates from Namjae Jeon:
- Use the recalculated append position when advancing valid_size, dirty
all pages involved in valid-data extension, and zero invalid tails on
partial overwrites. Write-protect the folio spanning the old EOF and
zero its post-EOF range when extending a file, ensuring subsequent
mmap writes advance valid_size.
- Make valid_size and zeroed_size atomic to prevent torn reads and lost
updates. Hold the invalidate lock during truncation, and drain
in-flight direct I/O before buffered writes, buffered fallback, and
page-cache operations that extend valid_size.
- Fall back to single-cluster allocation when a buffered write cannot
allocate its entire range, allowing writes to consume the remaining
free space and return a short count.
[57 lines not shown]
Merge tag 'ksmbd-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/smb
Pull smb server updates from Namjae Jeon:
- Add extended SMB2 directory information support.
Implement FileIdExtdDirectoryInformation, FileId64ExtdDirectoryInformation,
FileId64ExtdBothDirectoryInformation, FileIdAllExtdDirectoryInformation,
and FileIdAllExtdBothDirectoryInformation, including reparse tags, file
attributes, and initialized response padding.
- Track unsigned 64-bit lock ranges in the server lock index, with
conflict detection, blocking waits, cancellation, rollback, and
cleanup for ranges beyond the VFS signed-offset limit.
- Add configurable per-connection session limits.
Reserve slots for new sessions and multichannel bindings, release
them during failure and cleanup, and expose the configured limit
[133 lines not shown]
Merge tag 'nfs-for-7.4-1' of git://git.linux-nfs.org/projects/anna/linux-nfs
Pull nfs client updates from Anna Schumaker:
"New Features:
- Modernize the direct I/O path
- Size the LAYOUTGET reply buffer for wide flexfiles layouts
- Flexfiles device notifications and caching for wide striped layouts
- isolate mTLS client credentials by network namespace
Bugfixes:
- Various localio, flexfiles, xprtrdma, and TLS fixes
- Merged bugfixes from Trond that he was unable to send during the 7.3-rc cycle
Other Cleanups and Improvements:
- Split up pNFS block layout and SCSI layout support"
* tag 'nfs-for-7.4-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (68 commits)
nfs/localio: pin UUIDs during global invalidation
NFSv4/flexfiles: fail I/O to the data server once a lock is lost
[19 lines not shown]