math/wide-integer: New port: Generic C++ template for extended width unsigned/signed integral types
Wide-integer implements a generic C++ template for extended width
unsigned and signed integral types.
This C++ template header-only library implements drop-in big integer
types such as uint128_t, uint256_t, uint384_t, uint512_t, uint1024_t,
uint1536_t, etc.
These can be used essentially like regular built-in integers.
Corresponding signed integer types such as int128_t, int256_t, and the
like can also be used.
Reuired for net-p2p/transmission 4.1.0.
PR: 292846
Co-authored-by: Vladimir Druzenko <vvd at FreeBSD.org>
devel/small: New port: C++ small containers
C++ standard template library optimized small containers.
Reuired by net-p2p/transmission 4.1.0.
PR: 292846
Co-authored-by: Vladimir Druzenko <vvd at FreeBSD.org>
lang/gcc12: Fix patch for Darwin aarch64
The 4 previously added patches have been made on top of gcc-12.5.0.diff.
For other architectures, these patches are broken. This commit fixes
this issue by merging the 4 patches to gcc-12.5.0.diff.
[emacs] Rework tablegen mode
This commit reworks tablegen-mode to be derived from prog-mode and
removes a lot of the manual work that define-derived-mode does for you
these days, along with fixing other lints (such as an over-long
summary).
This is a major version bump because td-decorators-face has been
renamed to tablegen-decorators-face in order to not pollute other
namespaces.
[NFC][emacs] Fix emacs lists in the LLVM and MLIR modes
This mainly involved explicitly declaring minimum emacs versions for
setq-local and adding a lexical-binding annotaton.
The commit also removes some workarounds from the MLIR mode for Emacs
23 (!).
textproc/krep: [NEW PORT] High-performance string search utility
krep is an optimized string search utility designed for maximum throughput and
efficiency when processing large files and directories. It is built with
performance in mind, offering multiple search algorithms and SIMD acceleration
when available.
Note: Krep is not intended to be a full replacement or direct competitor to
feature-rich tools like grep or ripgrep. Instead, it aims to be a minimal,
efficient, and pragmatic tool focused on speed and simplicity.
Krep provides the essential features needed for fast searching, without the
extensive options and complexity of more comprehensive search utilities. Its
design philosophy is to deliver the fastest possible search for the most common
use cases, with a clean and minimal interface.
WWW: https://github.com/davidesantangelo/krep/
Approved by: db@, yuri@ (Mentors, implicit)
Differential Revision: https://reviews.freebsd.org/D55357
[flang][OpenMP]Fix versioning for implicit linear clause (#181791)
The versioning of the implicit linear clause was set at OpenMP 4.5.
However, versions v5.0 and v5.2 also allow implicit linearisation, which
was missed earlier. This PR fixes this.
OpenMP v5.0 (2.19.1.1) : "_The loop iteration variable in the associated
do-loop of a simd construct with just one associated do-loop is linear
with a linear-step that is the increment of the associated do-loop_."
OpenMP v5.2 (5.1.1) : "_The loop iteration variable in the associated
loop of a simd construct with just one associated loop is linear with a
linear-step that is the increment of the associated loop_"
OpenMP v6.0 (7.1.1) : "_The loop-iteration variable in any affected loop
of a loop or simd construct is lastprivate_."
Fixes: https://github.com/llvm/llvm-project/issues/179345
AMDGPU: Libcall expand fast pow/powr/pown/rootn for float case (#180553)
This is to eliminate the special case global unsafe math options
in these functions from the library. The core operation only
uses about 4 instructions, and then there's an additional prolog
and/or epilog to fixup special cases.
I have an alternative patch which implements this by using separate
entrypoints in the library, and having the pass replace the calls
instead of this full handling. However, given the unfortunate state
of library development, it requires a full year to make cross project
changes. This is the most expedient path to deleting the control
library;
in the future we can do libcall emission when compiler has the real
ability to properly emit new calls.
This is mostly a direct port of these functions:
https://github.com/ROCm/llvm-project/blob/amd-staging/amd/device-libs/ocml/src/powF_base.h
[23 lines not shown]
mvc: BaseListField: shared implementation of $internalStaticOptionList, proof of concept for https://github.com/opnsense/core/issues/9816
Wrap static access in protected functions which ensures content is static per inherited class:
hasStaticOptions()
getStaticOptions()
setStaticOptions(array)
resetStaticOptions()
if_gre: Add netlink support with tests
Migrate to new if_clone KPI and implement netlink support
for gre(4). Also refactor some of the gre specific ioctls.
Reviewed by: glebius, zlei
Differential Revision: https://reviews.freebsd.org/D54443
[MemProf] Optimize BitcodeReader stack id lookups (#182097)
Introduce StackIdToIndex to ModuleSummaryIndexBitcodeReader to cache the
mapping from module-local stack id indices to the global index in the
ModuleSummaryIndex's StackIds vector. This avoids repeated hash lookups
when processing callsite and allocation records.
This reduced the thin link time for a large target built with memprof
by ~16%.
Also add assertions to ensure STACK_IDS records are processed once and
that the cache is empty initially.
[clang][dataflow] Cache getModeledFields (#180878)
Cache getModeledFields at the DataflowAnalysisContext level, since
different contexts could have different ModeledFields for the same type,
and helps cap the memory usage by being scoped. This isn't the most
sharing we can get, but still effective (~70% hit rate). Otherwise, the
underlying getFieldsFromClassHierarchy is repeated many times and can
end up taking 4.6% of a run (geomean across some benchmarks), compared
to 40% for parsing, and 5.3% for querySolver for the same benchmarks. So
not insignificant since we also wonder if querySolver is expensive.
Also change the return type to a reference, now that it is not fresh Set
each time (though that copy is minor).
[WebKit Checkers] Trivial analysis should check destructors of function parameters and local variables (#181576)
This PR fixes the bug in TrivialFunctionAnalysisVisitor that it wasn't
checking the triviality of destructors of function parameters and local
variables. This meant that code calls a non-trivial desturctors such as
RefPtr<T>::~RefPtr<T> which calls T::~T to be incorrectly treated as
trivial, resulting in false negatives.
To do this, we manually visit every function parameter and local
variable declaration and check the triviality of its destructor
recursively.
Also fix a bug that we were checking isVirtualAsWritten instead of
isVirtual in IsFunctionTrivial.
---------
Co-authored-by: Balazs Benics <benicsbalazs at gmail.com>
[mlir][LLVM] Fix verifier crash for llvm.blockaddress with missing function (#181519)
### Whats the Problem
Fix verifier crash in `llvm.blockaddress` when the referenced function
symbol is missing by guarding null before `dyn_cast`.
Adds regression test using `-verify-diagnostics` to ensure invalid IR
emits an error instead of aborting.
### Why it happened
`SymbolTable::lookupNearestSymbolFrom` may return null, and `dyn_cast`
on a non-existent value triggers an assertion in `mlir-opt`.
### Whats the Fix
Split symbol lookup returning early if lookup fails or symbol is not an
`LLVMFuncOp`.
Verifier now reports “expects an existing block label target” instead of
hitting `dyn_cast` assert.
Fixes #181451