[flang] Undefine HUGE after including cmath (#236221)
Older glibc versions expose HUGE through <cmath> after Flang's headers
have undefined it. This breaks the RealValueImpl::HUGE definition and
calls, as well as the RealValue unit tests and their HUGE test name.
The glibc version I could reproduce the issue on was 2.26.
java/openjdk21: Version 21.0.13.0.3 more cert fixes
Update to latest upstream patch version to address more issues with the
eMudhra certificate incident.
See also: https://openjdk.org/emudhra
MFH: 2026Q4
Security: CVE 2026-114820
Security: JDK-8395690
Sponsored by: The FreeBSD Foundation
(cherry picked from commit a952ceac5d3c19984214bdbf9daaf49b97f9c25e)
[InstCombine] Generalize existing pattern from "abs(val) != 0 -> val != 0" to "abs(val) == 0 -> val == 0" (#233763)
Generalize fold of `(c ? x : -x) != 0` to `x != 0` by moving the pattern
to stripNullTest() and thus also supporting `==` predicates and other
patterns supported by that helper.
The missed pattern is noticed in Google Abseil's demangler
(https://github.com/abseil/abseil-cpp/blob/master/absl/debugging/internal/demangle.cc).
Proof: https://alive2.llvm.org/ce/z/7WQeXT
Fixes #233753
Assisted-by: Qwen3.7-Plus, which helps me locate the existing pattern
instead of opening a new pattern.
ipfw: fix off-by-one error in bdel()
After deleting an item from a sorted array, bdel() moves the tail
following it, but the size of the data to move was calculated with
an off-by-one error, causing memmove() to read one element past the
end of the array. This can happen when the table is full for ifidx
or numarray algorithms.
Obtained from: Yandex LLC
MFC after: 1 week
Sponsored by: Yandex LLC
[AMDGPU] Custom lower dynamic insertelt on wide vectors of 16-bit elements (#232288)
Currently, in case of dynamic-index `insertelement` into v8, v16 and v32
of i16, f16 and bf16 was set to Expand. At -O1 and above, single inserts
were expanded into a select per element and chains of inserts were
folded into a stack temporary. At -O0, every insert went through the
stack unconditionally.
This patch extends the existing `v_bfi_b32` custom lowering, previously
limited to 64-bit vectors, to the 16-bit wide vectors as well, making
`INSERT_VECTOR_ELT` as now Custom for them, so legalization uses the
custom lowering at all optimization levels, and the generic DAGCombiner
chain fold, which only applies to Expand types, no longer fires.
In 'lowerINSERT_VECTOR_ELT' each 64-bit sized piece updates with `(Mask
& splat(Val)) | (~Mask & Piece)`, where only the piece holding the index
gets a nonzero mask, alongwith skipping `performInsertVectorEltCombine`
that use select-per-element expansion for such types, since the custom
lowering is cheaper. wider i8 vectors still use the stack.
[flang][AddAliasTags] OpenMP privatization is a local allocation (#236201)
OpenMP privatization generates code which looks a bit like this
```
%host = ...
omp.parallel private(@privatizer %host -> %private_copy : !fir.ref<type>) {
%priv = fir.declare %private_copy ... -> !fir.ref<type>
}
```
`fir::AliasAnalysis` already correctly categorises accesses to these
private variables (`%priv` in this example) as local allocations. It
reports the source operation for the allocation as being the
`fir.declare` operation (as there is no allocation operation visible in
mlir).
When AddAliasTags processed this access it did not handle allocations
having `fir.declare` as their source and so was not able to give it the
local allocation tag. This commit fixes that by treating `fir.declare`
[15 lines not shown]
java/openjdk21: Version 21.0.13.0.3 more cert fixes
Update to latest upstream patch version to address more issues with the
eMudhra certificate incident.
See also: https://openjdk.org/emudhra
MFH: 2026Q4
Security: CVE 2026-114820
Security: JDK-8395690
Sponsored by: The FreeBSD Foundation