[ci][ids] Fix pattern prefix check (#176334)
The prefix check did not include the trailing /, so llvm-c headers were
treated like llvm headers, resulting in incorrect suggestions to use
LLVM_ABI where LLVM_C_ABI was already present.
See
https://github.com/llvm/llvm-project/pull/176309#issuecomment-3757987748
for an example.
dwc: improve IPv4 transmit checksum offloading
This patch provides two improvements for TCP/IPv4 and UDP/IPv4
transmit checksum offloading:
(1) Use *CIC_SEG instead of *CIC_FULL, since FreeBSD always provides
a pseudo header checksum.
(2) Don't make transmit IPv4 header checksum offloading a prerequisite
for TCP/IPv4 or UDP/IPv4 transmit checksum offloading.
This is the root cause of PR 291696, since right now the epair
interface does not support transmit IPv4 header checksum offloading,
but TCP/IPv4 and UDP/IPv4 transmit checksum offloading.
PR: 291696
Reviewed by: Timo Voelker
Tested by: Marek Benc
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D54395
[DA] Use ScalarEvolution::isKnownPredicate (#170919)
DA uses `DependenceInfo::isKnownPredicate` instead of
`ScalarEvolution::isKnownPredicate` in several places. The former is
intended to be a "wrapper" for the later. Specifically, it performs the
following processes:
- Replace `zext(X) cmp zext(Y)` with `X cmp Y`.
- Replace `X >=s Y` with `X - Y >=s 0`
- Replace `X <=s Y` with `X - Y <=s 0`
- Replace `X >s Y` with `X - Y >s 0`
- Replace `X <s Y` with `X - Y <s 0`
The first one can return an incorrect result when the most significant
bit of `X` and `Y` are different. Everything other than the first one
can be incorrect when `X - Y` overflows. Actually, when a `SCEVUnknown`
is involved (e.g., `%n <s %n + 1` will be `0 <s 1`), this function often
returns a result that ignore the possibility of overflow.
[4 lines not shown]
dhcrelay: relax the check for present addresses #9369
get_interface_ip(v6) is much too specific for what we're trying to
validate against here. Instead use the existing ifconfig data and
simply make sure if any address from the family is set. In the IPv6
link-local case that might be strange, but the effect on working
setups is zero in either case.
It could be considered removing this validation which originates from
the legacy code and just let the daemon fail to start, but the log
message is much nicer and effective for debugging purposes.
textproc/py-pygtkspellcheck: new port had been added (+)
Simple but quite powerful spellchecking library for GTK
written in pure Python, based on Enchant and PyGObject.
[lldb][windows] switch to Python 3.11 for the non ARM64 release builds (#175796)
This patch is a follow up to
[RFC#89434](https://discourse.llvm.org/t/rfc-sync-python-versions-on-windows/89434).
Python 3.11 is the first official Python.org release to have an arm64
installer on Windows, which is why it's the version used to build the
toolchain on arm64 Windows. The x86 and x64 variants of the toolchain
both use Python 3.10 which can be confusing for users who get different
install dependencies based on their architectures.
This patch syncs all the required Pythons to install the toolchain, by
bumping the requirements to 3.11 for x86, x64 and arm64 Windows.
[libc++][test] Fix `constexpr` stdver. for tests for `find_if(_not)` (#176303)
Until C++20, `std::find_if(_not)` were not `constexpr`, so uses of
`TEST_CONSTEXPR_CXX17` make the test functions ill-formed, no diagnostic
required in C++17 mode.
The uses were introduced in 2b4b26ea84fd9c95d0ff25ce338c15ea5e74a4e4,
while the transformation looked incorrect - `TEST_CONSTEXPR_CXX20`
should be used instead.
Drive-by changes: Fix comments in both changed test files to match the
actually standardized wording.
[analyzer] Teach `unix.BlockInCriticalSection` about `std::scoped_lock` (#176134)
The checker knows that `std::lock_guard` and `std::unique_lock`
introduce critical sections, but doesn't know about the newer
`std::scoped_lock`.
[LIT][LLVM-STRINGS]Make stdin tests shell-consistent (#176139)
The fix updates the llvm-strings stdin lit tests to use `printf` instead
of `echo -n` when generating input via stdin.
The behavior of `echo -n` is not portable and varies across shells and
platforms, particularly on AIX where `/bin/sh` handles `-n` and escape
processing differently from GNU-compatible shells. This causes the tests
to fail despite correct llvm-strings functionality.
In contrast, `printf` has well-defined, POSIX-specified semantics and
provides consistent handling of newlines, escape sequences, and
non-printable characters. Using `printf` eliminates the dependency on
shell-specific `echo` behavior and makes the tests deterministic.
[clang] Fix options handling in ClangExtDefMapGen.cpp (#176116)
Also, remove some unused includes.
Fixes https://github.com/llvm/llvm-project/issues/176118
Now, running `clang-extdef-mapping` with no options results in the
following error message:
```sh
error: clang-extdef-mapping: Not enough positional command line arguments specified!
Must specify at least 1 positional argument: See: ./build/Debug/bin/clang-extdef-mapping --help
```
[LoopVectorize] Support vectorization of overflow intrinsics (#174835)
Enables support for marking overflow intrinsics `uadd`, `sadd`, `usub`,
`ssub`, `umul` and `smul` as trivially vectorizable.
Fixes #174617
---------
Signed-off-by: vishruth-thimmaiah <vishruththimmaiah at gmail.com>
[MLIR][shard] checking for correct&full sharding annotations (#176000)
Before trying to partition a block or operation, check that it is fully
annotated with `shard.shard` ops. This gives useful error messages
instead of random errors later on.
[mlir] Fix build after #175815 (#176332)
Fix this build error, which is reported by some compilers after #175815:
```
error: operands to ?: have different types ‘mlir::Operation::result_range {aka mlir::ResultRange}’ and ‘mlir::ValueRange’
return successor.isParent() ? getOperation()->getResults() : ValueRange();
```