[ProfCheck] Exclude merge functions test
7d2d4f695d7f2907f790a107f84d3c5ed58cb531 added this test, exposing
existing profcheck breakage within the merge functions pass. Exclude it
for now until we get to merge functions.
[LoopPeel] Peel last iteration to enable natural-sized load widening
In loop that contain multiple consecutive small loads (e.g., 3 bytes
loading i8s), peeling the last iteration makes it safe to read beyond
the accessed region, enabling a wider load (e.g., i32) for all other
N-1 iterations.
This optimization targets patterns like:
```
%a = load i8, ptr %p
%b = load i8, ptr %p+1
%c = load i8, ptr %p+2
...
%p.next = getelementptr i8, ptr %p, 3
```
Which can be transformed to:
```
%wide = load i32, ptr %p ; Read 4 bytes
[9 lines not shown]
[DAGCombiner] Relax nsz constraint with fp->int->fp optimizations (#164503)
`NoSignedZerosFPMath` isn't a hard requirements and in some contexts we
can still apply the truncation without worrying. For example, in cases
where the users of this sequence are overwriting the sign-bit (fabs) or
simply ignoring it (fcmp).
I think the same logic can be applied elsewhere for other DAG
optimizations.
[clang-tidy] Merge `ClangTidyModuleRegistry.h` into `ClangTidyModule.h` (#173231)
As far as I can tell, the only effect of having
`ClangTidyModuleRegistry.h` be a separate header is that it forces you
to include two headers instead of one before you can actually define
your clang-tidy module.
src.conf: Add WITH_LLVM_LINK_STATIC_LIBRARIES build knob
In commit 2e47f35be5dc libllvm, libclang and liblldb were converted into
private shared libraries. This allowed clang, lld, lldb, and other llvm
tools to be linked against these shared libraries, which makes them
smaller and avoids duplication.
However, this also comes at the cost of some performance, since the
dynamic libraries are quite large, and contain lots of long symbols
(mangled C++ identifiers).
Add a WITH_LLVM_LINK_STATIC_LIBRARIES build knob that can be used to go
back to the previous behavior: libllvm, libclang and liblldb are built
as internal static libraries, i.e. only available during buildworld, and
fully linked into the various executables such as clang, lld, etc.
PR: 287447
Reviewed by: emaste
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D50956
[clang-tools-extra] Remove use of REQUIRES: shell (#173313)
REQUIRES: shell does not have the intended effect now that the internal
shell is enabled by default and only prevents tests from running on
Windows. This patch removes the directive for portable tests and
switches it to a UNSUPPORTED: system-windows tag for non-portable tests
to make the intention more clear.
kmem: don't add __GFP_COMP for KM_VMEM allocations
It hasn't been necessary since Linux 3.13
(torvalds/linux at a57a49887eb33), and since 6.19 the kernel warns if you
use it.
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <robn at despairlabs.com>
Closes #18053
kmem: don't pass __GFP_HIGHMEM to __vmalloc
Since Linux 4.12 (torvalds/linux at 19809c2da28ae) __GFP_HIGHMEM has been
automatically added to calls to __vmalloc() internally, so we don't need
it anymore. This is good, because since 6.19 the kernel warns if you use
__GFP_HIGHMEM.
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <robn at despairlabs.com>
Closes #18053
Linux 6.19: replace i_state access with inode_state_read_once()
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <robn at despairlabs.com>
Closes #18053
[DirectX] Disallow ElementIndex for raw buffer accesses (#173320)
Raw (as in ByteAddress) buffer accesses in DXIL must specify
ElementIndex as undef, and Structured buffer accesses must specify a
value. Ensure that we do this correctly in DXILResourceAccess, and
enforce that the operations are valid in DXILOpLowering.
Fixes #173316
[compiler-rt] Remove REQUIRES: shell lines (#173338)
The shell feature only implies that we are not running on Windows now
that the internal shell is enabled by default everywhere. Remove where
we can and rewrite to the more intentional UNSUPPORTED: system-windows
when we still need to prevent tests from running on Windows.
Services: Intrusion Detection - refactor pcap/netmap selection to "Capture mode" and add new "divert" option.
With divert we can integrate suricata in firewall rules, which makes it easier to bypass large flows.
This change requires the new SO_REUSEPORT_LB option in the kernel in order to distribute traffic over multiple workers.