routing: Make ip[6]_tryforward() FIB-aware for local traffic
`ip_tryforward()` and `ip6_tryforward()` checks whether the destination
address is local or not without considering if it belongs to the current FIB.
If the destination is local but not in our FIB, forward it instead
of returning it to ip_input().
PR: 292319
Reviewed by: zlei
MFC after: 1 week
MFC to: stable/15
Differential Revision: https://reviews.freebsd.org/D56353
(cherry picked from commit bf41d86df0d9dc4a1342c579f4e72db3c66b3443)
AMDGPU/GlobalISel: RegbankLegalize rules for merge-like opcodes
Move RegbankLegalize handling for G_BUILD_VECTOR, G_MERGE_VALUES and
G_CONCAT_VECTORS from AMDGPURegBankLegalize to AMDGPURegBankLegalizeRules
by implementing rules for all supported types.
AMDGPU/GlobalISel: RegbankLegalize rules for G_BITCAST (#193025)
Move RegbankLegalize handling for G_BITCAST from AMDGPURegBankLegalize to
AMDGPURegBankLegalizeRules by implementing rules for all supported types.
[lldb] Remove trailing newlines from AppendErrorWithFormat calls (#192965)
This call adds a newline if there isn't one. Changing these will
eventually let us always add a newline, which is in line with the other
methods on CommandReturnObject.
This is a small part of calls found with:
* VSCode search for
`(\.AppendErrorWithFormat\(([\s\r\n]+)?"(?:(?:\\.|[^"\\])*))\\n"` and
replace with `$1"`.
* Asserting that the last character of the format string is not a
newline.
* Manual inspection.
[lldb] Add EXPORT to lldb-tblgen (#192610)
Fixes #192408
You can tell an llvm build to use existing tools using options like
LLVM_NATIVE_TOOL_DIR.
When you do this, the tools are usually still built in case they need to
be part of a later install. For example if you provide a clang-tblgen,
we still build another clang-tblgen as part of the build.
Which means if you install that build, it is a complete install, and if
you are doing a cross build, you get a cross built copy of clang-tblgen
that you can use on the target machine.
In #159812, lldb-tblgen was added to the list of tools to install, so
that installed builds could be used as a base for subsequent builds.
However we were missing the EXPORT flag for lldb-tblgen. As far as I can
[8 lines not shown]
[LV] Add flag to always force a scalable VF when feasible. (#182467)
`-scalable-vectorization=always` means the LV will always favour using
scalable VFs when the cost is valid and scalable vectors are feasible.
This is mostly a hidden flag for experimentation purposes.
lang/algol68g: update the port to version 3.11.3
- Improves STRING handling
- Adds environment enquiry ``eof char''
- New operators CEIL, FIX, FLOOR, FRAC, and TRUNC
- Minor fixes and documentation updates
AMDGPU/GlobalISel: RegbankLegalize rules for undef and constants (#193024)
Move RegbankLegalize handling for G_IMPLICIT_DEF, G_CONSTANT and G_FCONSTANT
from AMDGPURegBankLegalize to AMDGPURegBankLegalizeRules by implementing
rules for all supported types.
[clang-tidy][readability-identifier-length] Add a line count threshold (#185319)
This PR implements the feature described in #185318
A new parameter named `LineCountThreshold` is added to the
`readability-identifier-length` check, which controls how many lines of
code must separate the the last use of a variable from its declaration
for the check to warn. For backwards-compatibility, the default value
for this parameter is set to 0.
Increasing the threshold to 1 allows for short names in one-liners (for
example: `std::transform(..., [](auto i){ return i*i; });`), and in the
general case with `LineCountThreshold = N` a variable is allowed to have
a shorter name than otherwise required if it is never used again after
`N` lines (including its declaration line).
This feature is implemented ~using a secondary `MatchFinder`~ by calling
the `utils::decl_ref_expr::allDeclRefExprs` helper function for each
variable with a short name. For performance reasons, the new piece of
code is short-circuited if `LineCountThreshold` is set to 0 (the default
value).
[ConstantMerge] don't merge constants with COMDAT (#192477)
After merging #190995 (now reverted) the CI failed because ConstantMerge
currently merges constants with differing COMDATs. This can result in a
function referencing globals with a different COMDAT than before the
merge, producing a linking error when that global gets discarded.
It is still possible to merge same comdats, or to merge a non-key comdat
constant into a non-comdat constant.
[libc] Implement shutdown on linux (#192933)
- added the relevant constant definitions
- enabled the entry point on x86_64, aarch64 and riscv
- testing by checking that the call causes an EOF on read (on the
appropriate end)