[KnownFPClass] Correct subnormal handling in ldexp (#225904)
Uses the `applyInputDenormalMode` and `applyOutputDenormalMode` helpers
to fix subnormal handling for `KnownFPClass::ldexp`.
I also skipped the "never-subnormal" deduction for `ppcf128`.
Similar to https://github.com/llvm/llvm-project/pull/215094, but
only focusing on fixing incorrect deductions.
tests/netinet6: fix ndp_del_gu_success flakiness
The test pinged an unanswered address and then deleted the resulting
INCOMPLETE neighbor entry.
The kernel frees that entry after about 3s, so on a loaded VM,
ndp -d could run too late and fail with ENOENT.
Configure 2001:db8::2 on epair0b so the ping gets a reply and the
entry becomes REACHABLE.
Approved by: pouria
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D60348
devel/redasm: prepare the port for modern versions of CMake
Synchronize cmake_minimum_required(VERSION 3.10) across all
components and switch to new CMP0048 policy.
[InstCombine] Preserve profile metadata when folding fneg selects (#228754)
Reuse select metadata in the fneg transformations when profile metadata
fixes are enabled.
Remove obsolete profcheck XFAIL entries for the now-passing InstCombine
tests.
---------
Co-authored-by: Aiden Grossman <aidengrossman at google.com>
[SimplifyLibCalls] Add initial support for non-8-bit bytes
The patch makes CharWidth argument of `getStringLength` mandatory
and ensures the correct values are passed in most cases.
This is *not* a complete support for unusual byte widths in
SimplifyLibCalls since `getConstantStringInfo` returns false for those.
The code guarded by `getConstantStringInfo` returning true is unchanged
because the changes are currently not testable.
[ValueTracking] Make isBytewiseValue byte width agnostic
This is a simple change to show how easy it can be to support unusual
byte widths in the middle end.
[DataLayout] Add byte specification
This patch adds byte specification to data layout string.
The specification is `b:<size>`, where `<size>` is the size of a byte
in bits (later referred to as "byte width").
Limitations:
* The only values allowed for byte width are 8, 16, and 32.
16-bit bytes are popular, and my downstream target has 32-bit bytes.
These are the widths I'm going to add tests for in follow-up patches,
so this restriction only exists because other widths are untested.
* It is assumed that bytes are the same in all address spaces.
Supporting different byte widths in different address spaces would
require adding an address space argument to all DataLayout methods
that query ABI / preferred alignments because they return *byte*
alignments, and those will be different for different address spaces.
This is too much effort, but it can be done in the future if the need
arises, the specification reserves address space number before ':'.
[ValueTracking] Add CharWidth argument to getConstantStringInfo (NFC)
The method assumes that host chars and target chars have the same width.
Add a CharWidth argument so that it can bail out if the requested char
width differs from the host char width.
Alternatively, the check could be done at call sites, but this is more
error-prone.
In the future, this method will be replaced with a different one that
allows host/target chars to have different widths. The prototype will
be the same except that StringRef is replaced with something that is
byte width agnostic. Adding CharWidth argument now reduces the future
diff.
[IRBuilder] Add getByteTy and use it in CreatePtrAdd
The change requires DataLayout instance to be available, which, in turn,
requires insertion point to be set. In-tree tests detected only one case
when the function was called without setting an insertion point, it was
changed to create a constant expression directly.
[IR] Account for byte width in m_PtrAdd
The method has few uses yet, so just pass DL argument to it. The change
follows m_PtrToIntSameSize, and I don't see a better way of delivering
the byte width to the method.
[IR] Make @llvm.memset prototype byte width dependent
This patch changes the type of the value argument of @llvm.memset and
similar intrinsics from i8 to iN, where N is the byte width specified
in data layout string.
Note that the argument still has fixed type (not overloaded), but type
checker will complain if the type does not match the byte width.
Ideally, the type of the argument would be dependent on the address
space of the pointer argument. It is easy to do this (and I did it
downstream as a PoC), but since data layout string doesn't currently
allow different byte widths for different address spaces, I refrained
from doing it now.
[flang][NFC] Add missing license and fix short first line (#229647)
- Fix shorter first line than 80 characters
- Add missing license at the top of some files
Assisted-by: AI
[IndirectBrExpand] Preserve profile weights (#227784)
We can derive the weights for the created select instruction from the
weights of the indirectbr instructions that are used to compose it.
This is a no-op most of the time outside of some contexts, but
production users that utilize PGO do enable this (e.g., the kernel).
[InstCombine] Fix profile propagation in foldNestedSelects (#229635)
We can recover profile information for one of the created selects given
the condition is either the same as an existing select or the direct
inverse. For the other we have to mark the profile as unknown.
graphics/spirv-tools: Update to 2026.4
This is identical to 2026.4.rc2 except the version number. So no
version bumps of dependent ports are necessary.
Changelog: https://github.com/KhronosGroup/SPIRV-Tools/blob/v2026.4/CHANGES
Reported by: GitHub (watch releases)
net/samba423: add LMDB selection options (LMDB0 / LMDB1)
This patch introduces a new radio option group (LMDBG1) allowing
users to select between LMDB 0.9 (databases/lmdb0) and LMDB 1.0
(databases/lmdb), following the pattern used in mail/postfix.
Summary of changes:
- Introduced LMDBG1 radio option group with LMDB0 and LMDB1 choices.
- Added LMDB0 to OPTIONS_DEFAULT to preserve existing default behavior.
- Updated _LMDB_DEPDENDS for AD_DC / DEVELOPER builds to depend on
databases/lmdb when LMDB1 is selected, defaulting to databases/lmdb0.
- Guarded FORTIFY_UNSAFE with .ifnmake portclippy to prevent portclippy
warnings.
Inspired by mail/postfix workaround of the problem with LMDB.
PR: 299147
Approved by: samba (kiwi)
[BoundsSafety][NFC] Build an incomplete CountAttributedType for a late-parsed attribute
Add Sema::ProcessLateParsedTypeAttr. It validates a late-parsed
counted_by-family attribute in type position and wraps the type in a
CountAttributedType whose count is filled in once the enclosing record
is complete.
LateParsedTypeAttribute is owned by the Parser, which Sema cannot depend
on. Sema therefore reads the attribute's kind, location and type slot
through a callback.
No functional change: nothing creates late-parsed type attributes yet,
so ProcessLateParsedTypeAttr is never invoked. The next commit wires it
up.
Assisted-by: Opus 5.5
[AIX][libc++] Forward-declare locale functions in aix.h when _XOPEN_SOURCE < 700 (#220508)
On AIX, the following locale function `uselocale` is only declared in
`usr/include/locale.h` when `_XOPEN_SOURCE > 700`.
This causes a failure in the test
`libcxx/test/extensions/posix/xopen_source.gen.py` which tests
`_XOPEN_SOURCE ` against 500, 600 and 700, with the following error:
```
#__locale_dir/support/aix.h:36:72: error: no member named 'uselocale' in the global namespace; did you mean 'setlocale'?
```
The fix here is to forward declare `uselocale` inside `aix.h` and make
it visible.
---------
Co-authored-by: himadhith <himadhith.v at ibm.com>
kk_KZ.PT154 locale: Add missing toupper/tolower mappings.
This was missing a tolower mapping (MAPLOWER) from the lower case
(ASCII) letters into themselves (which is required to work), and worse
was also missing a toupper mapping (MAPUPPER) from the lower case (ASCII)
letters into their upper case equivalents.
Whether the actual (non ASCII) letter upper/lower mappings are all
correct, I am not sure, but I very much doubt it.
Detected and reported by RVP@ in:
https://mail-index.netbsd.org/tech-userlevel/2026/08/15/msg015003.html
www/pomerium: update to 0.33.4
While here:
- Set Pdeathsig on the envoy child process so that it is terminated
when pomerium exits, matching the behavior on Linux.
- Stop enabling reuse_port on FreeBSD: Envoy force-disables it for
TCP listeners on non-Linux platforms and logs a warning for each
listener.