[ADT] Avoid map storage for small SmallMapVector (#196473)
SmallMapVector previously used SmallDenseMap for its index, which still
initializes and maintains map storage even when the number of entries is
tiny.
Teach MapVector to support a vector-only small mode. While the entry
count stays
within the configured small size, operations use the underlying vector
directly.
When the size grows past the threshold, the map index is built and
subsequent
operations use the regular MapVector path.
This mirrors the small-size strategy used by SmallSetVector.
Fix a longstanding bug on 64 bit ports with ABIs requiring sign-extension when returning 32-bit values in registers. Alpha, MIPS N64, RISCV.
With these ABIs it is necessary for the syscall return code to manually
sign-extend all 32-bit return values. If we don't, everything may look
just fine, until a syscall return value is spilled to the stack and then
reloaded. At that point, the zero-extended form produced by C assignment
into the 64-bit register for return to userspace will be sign-extended
upon reload, producing a different, corrupt value which will fail comparisons.
This was observed with a getuid() != geteuid() deep inside sshd on N64, on an
unusual system that had some very large UIDs with bit 31 set - but is quite
difficult to reproduce with small tests, since register pressure and compiler
behavior determine whether the conditions necessary to trigger the bug will
exist.
The easiest way to see whether a new target needs this treatment is to
look at its GCC configuratrion; if its PROMOTE_MODE has UNSIGNEDP = 0
for SImode, the sign-extension in syscall() is necessary.
[AtomicExpand] Add bitcasts when expanding load atomic vector
AtomicExpand fails for aligned `load atomic <n x T>` because it
does not find a compatible library call. This change adds appropriate
bitcasts so that the call can be lowered. It also adds support for
128 bit lowering in tablegen to support SSE/AVX.
[clang-tidy] comment braced and parenthesized init arguments (#180408)
Handle arguments like `{}`, `Type{}` and `Type()` in
`bugprone-argument-comment` and
add coverage for `initializer_list` and designated initializers.
Fixes: https://github.com/llvm/llvm-project/issues/171842
devel/gradle: Update to Makefile
* Fix to avoid installing conflicting versions of the package
MFH: 2026Q2
(cherry picked from commit 4e03f520e512e8576730912cf97cc149dd9e5613)
devel/gradle: Update to version 9.5.0
Updates from 9.3.1 to 9.5.0:
* Task provenance in reports and failure messages
* Type-safe accessors for precompiled Kotlin Settings plugins
* Java 26 support
* Non-class-based JVM tests
* Enhanced console progress bar
ChangeLog: https://github.com/gradle/gradle/compare/v9.3.1...v9.5.0
py-gobject3*: move pygobject-types.h to -common package
The header is included by pygobject.h, which is already
installed by the -common package.
Bump PKGREVISION.
Add missing direct includes for bit.h/SwapByteOrder.h. NFC (#196843)
These translation units use llvm::endianness, llvm::byteswap,
llvm::has_single_bit, or sys::IsLittleEndianHost without explicitly
including the header that declares them. They currently compile only
because llvm/ADT/Hashing.h transitively pulls in
llvm/Support/SwapByteOrder.h (which includes llvm/ADT/bit.h).