[AMDGPU] Skip printf runtime binding if function signature is unexpected (#177573)
When creating the binding for OpenCL printf calls, we expect the
signature of the function to match the OpenCL specification. If the
signature is unexpected, this patch makes the pass skip creating the
binding to avoid incorrect behavior and crashes.
---------
Signed-off-by: Steffen Holst Larsen <HolstLarsen.Steffen at amd.com>
Co-authored-by: Steffen Holst Larsen <HolstLarsen.Steffen at amd.com>
[AMDGPU] Fix legacy index in fmed3 optimization (#177426)
The `matchFPMed3ToClamp` implementation incorrectly used the old
indexing for arguments from when it was wrapped in an intrinsic
instruction (i.e. the arguments would start at index 2). This missed
case was however in a conditional part of the optimization that would
only be hit if none of the other optimizations were hit. This commit
fixes this path and adds a test ensuring the path is tested in the
future.
Signed-off-by: Steffen Holst Larsen <HolstLarsen.Steffen at amd.com>
Co-authored-by: Steffen Holst Larsen <HolstLarsen.Steffen at amd.com>
databases/tredis: Add terminal UI for Redis
tredis is a TUI for managing Redis servers, supporting multiple
connections, key browsing, all data types, and TLS.
[X86] X86FixupInstTunings - attempt to convert VPERMQri to VINSERTI128rri (#177327)
When the immediate is 0x44, VPERMQ/VPERMPD duplicates the lower 128-bit
lane to both lanes. This is equivalent to inserting the lower 128-bits
into the upper 128-bit position, which VINSERTI128/VINSERTF128 can
potentially do more efficiently on some targets.
This patch enables X86FixupInstTuning to convert:
VPERMQ ymm, ymm, 0x44 -> VINSERTI128 ymm, ymm, xmm, 1
VPERMPD ymm, ymm, 0x44 -> VINSERTF128 ymm, ymm, xmm, 1
Resolves #159410
[LoopPeel] Peel last iteration to enable load widening
In loops that contain multiple consecutive small loads (e.g., 3 bytes
loading i8's), peeling the last iteration makes it safe to read beyond
the accessed region, enabling the use of a wider load (e.g., i32) for
all other N-1 iterations.
Patterns such as:
```
%a = load i8, ptr %p
%b = load i8, ptr %p+1
%c = load i8, ptr %p+2
...
%p.next = getelementptr i8, ptr %p, 3
```
Can be transformed to:
```
%wide = load i32, ptr %p ; Read 4 bytes
[9 lines not shown]
[lldb] Make "help format" test more strict (#178216)
Originally added in a81bd7f1014f316b42bf7274f76a340b833e663b /
https://reviews.llvm.org/D35525, this test either was not strict enough,
or lldb's behaviour has drifted since.
I think the intention was to check exactly when the output of "help
format" would wrap. Which should happen when we have printed up to the
terminal width, minus a few characters because we walk backwards to the
closest whitespace point to break at (so we don't split a word).
I've updated the test to check the exact outputs and cover printing one
line and two instances where we need to split different amounts onto a
second line.
[SystemZ] Enable -fpatchable-function-entry=M,N (#178191)
This PR enables the option `-fpatchable-function-entry` for SystemZ. It
utilizes existing common code and just adds the emission of nops after
the function label in the backend.
SystemZ provides multiple nop options of varying length, making the
semantics of this option somewhat ambiguous. In order to align with what
`gcc` does with that same option, we#re choosing `nopr` as the
canoonical nop for this purpose.
For test, this adapts an existing test file from aarch64.
gnupg2: update to 2.5.17.
Despite the odd minor, 2.5 is the stable branch.
This update also renames the binary from gpg2 to gpg (the corresponding
configure option was removed).
Comment out some now hopefully unnecessary LDFLAGS.${OPSYS}.
Noteworthy changes in version 2.5.17 (2026-01-27)
-------------------------------------------------
* agent: Fix stack buffer overflow when using gpgsm and KEM. This
was introduced with 2.5.13; see the advisory. [T8044]
* tpm: Fix possible buffer overflow in PKDECRYPT. [T8045]
* gpg: Fix possible NULL-deref with overlong signature packets.
[T8049]
[571 lines not shown]
[Mips] Add r5900 (PlayStation 2 Emotion Engine) CPU support (#176666)
This PR adds basic support for the MIPS R5900 CPU, the Emotion Engine
processor used in the PlayStation 2.
**LLVM changes:**
- Add r5900 CPU definition (with soft float support for now)
- Disable instructions not supported by r5900 (64-bit multiply/divide,
LL/SC atomics, COP3)
- Add r5900 specific short loop delay slot fix (hardware errata
workaround)
- Set ISA extension `AFL_EXT_5900` in ELF flags for proper ABI
identification
**Clang changes:**
- Add r5900 as a valid CPU target for `-mcpu=r5900`
- Add r5900 to CPU test coverage
[Clang] prevent assertion in __has_embed parameter recovery at end-of-directive (#175104)
Fixes #175088
---
This PR addresses an assertion failure in the preprocessor triggered
when `__has_embed` parameter parsing reaches end-of-directive while
expecting a parenthesized argument.
[RISCV] Run combineOrToBitfieldInsert after DAG legalize (#177830)
Not combing `OR` into `QC.INSB(I)` before DAG legalization helps known
bits analysis to simplify the code if possible.
(cherry picked from commit 3ed48305ab19bf0090d2ca714a37dd7b0667b6c2)
[ARM] Count register copies when estimating function size (#175763)
`EstimateFunctionSizeInBytes`, in `ARMFrameLowering.cpp`, provides an
early estimate of the compiled size of a function, in a context that
wants to overestimate rather than underestimate.
In some cases it was underestimating severely, by over 20%. The
discrepancy was entirely accounted for by the fact that `COPY`
operations were not being counted at all, even though each one (or at
least each one that survives any post-regalloc optimizations) takes 2
bytes in Thumb or 4 in Arm. This could lead to a compile failure, if the
underestimated function size led frame lowering to not stack LR, but
later, `ARMConstantIslandsPass` needed to insert an intra-function
branch long enough to require a `bl` instruction, needing LR to have
been stacked.
The result of `EstimateFunctionSizeInBytes` was not directly available
for testing, so I added an `LLVM_DEBUG` at the end of the function. That
way, the test file doesn't need to try to make a >2048 byte function
[11 lines not shown]
gnupg: install binaries with '1' suffix
update DESCR to note that this is the old, unsupported version
Remove readline option since readline/bl3.mk is included unconditionally
in the Makefile anyway.
Clean some pkglint.
Bump PKGREVISION.