pf: Use MTX_DUPOK to initialize hash chain mutexes
pf_udp_mapping_insert() may lock more than one row at a time.
Fixes: cd5ff4e841fb ("pf: use hashalloc(9) for key, id, src-node and udp-endpoint hashes")
Reviewed by: kp
Differential Revision: https://reviews.freebsd.org/D56501
[AMDGPU] Report only local per-function resource usage when object linking is enabled (#192594)
With object linking the linker aggregates resource usage across TUs, so
compile-time pessimism and call-graph propagation duplicate the linker's
work or pollute its inputs.
In this mode, skip the per-callsite conservative bumps in
`AMDGPUResourceUsageAnalysis` and assign each resource symbol in
`AMDGPUMCResourceInfo` a concrete local constant instead of building
call-graph max/or expressions.
[CodeGen] Fix non-determinism in MachineBlockHashInfo (#192826)
The previous implementation used `hash_value(MachineOperand)`, which
is not guaranteed to be stable across different executions because it
hashes pointers for certain operand types (like MBB, GlobalAddress,
etc).
Use existing stableHashValue which has no problem.
The rest of the file should the same, but it may break profile
compatibility.
Changing behavior for Operand is not an issue, as existing one is a low
quality RNG.
Code does not have test coverage, it will be fixed in #192911.
Fixes #173933.
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
Move RegbankLegalize handling for G_BITCAST from AMDGPURegBankLegalize to
AMDGPURegBankLegalizeRules by implementing rules for all supported types.
AMDGPU/GlobalISel: RegbankLegalize rules for undef and constants
Move RegbankLegalize handling for G_IMPLICIT_DEF, G_CONSTANT and G_FCONSTANT
from AMDGPURegBankLegalize to AMDGPURegBankLegalizeRules by implementing
rules for all supported types.
[Clang][AMDGPU] Deprecate `amdgpu-num-vgpr` and `amdgpu-num-sgpr`
We will just emit a warning at this moment. This will still take effect for
regular compilation, but in object linking, we will simply ignore them.
[CIR] Implement emitNewArrayInit for constant and strings (#192666)
This patch further fleshes out the emit New ArrayInit for constant and
string variables. Implementation wise, this is pretty much the same as
classic-codegen, however it required a few differences. First, our use
of cir.copy instead of a memcpy call means we had to 'lift' an
dyn_allocated pointer type to the array type. Second, we had to make
some changes to make sure that 'empty' extra init was skipped in a place
we didn't do before.
In order to test this, I found 2 tests from classic-codegen that I
pulled in nearly verbatum. 'Check' lines from paren-list-agg-init.cpp
are converted to LLVM lines with slight relaxation, mostly to make up
for cases where CIR lowering ntroduces extra branches or GEPS on
conversion changes.
new-array-init.cpp's 'Check' lines were particularly bad/not detailed,
so I wrote new ones.
ONE test was commented out, as it requires the rest of emitNewArrayInit
to be implemented.
comms/syncterm: update to 1.8
# changes
* Add RIPterm v1.54.00 pixel-level compatibility
* Add OSC 8 hyperlink support (clickable URLs)
* Add Ctrl+click detects plain-text URLs in terminal output
* Add Support for encrypted dialing directories
* Add support for explicit sort order
* Add native macOS backend (Quartz display, CoreAudio sound)
* Add Wayland backend
* Add named sort profiles with < and > keys to cycle through them
* Add [ and ] keys to navigate between items in edit submenus
* Add Support for web-based main dialing directory
* Add support to allow specifying terminal type for each entry
* Add default cursor style setting
* Add support for modifying UIFC colours
* Add ECMA-48 screen content readback (SSA/ESA/STS)
* Add DEC rectangular area operations (DECERA, DECFRA, DECCRA, DECIC, DECDC)
[22 lines not shown]
[OpenACC] Make sure array-section diag normalizes width for diag (#193013)
The below issue exposed that the comparison of the values was not
properly adjusting the width of the constant values before comparison.
Thus, when we did an addition of the two, it caused an assert in APSInt.
This patch makes sure that the 'adjust width + sign' branch is taken if
the sign or width don't match. Previously we only did this if it was a
sign mismatch.
Fixes: #192783
[CIR] Fix dynamic cast of const types (#192751)
When a dynamic cast was performed using const-qualified values, we were
generating a reference to const-qualified typeinfo but never emitting
such const-qualified typeinfo, leading to an undefined reference at link
time.
This change fixes that by stripping the type qualifiers before
processing the cast. This matches the behavior of classic codegen in
ItaniumCXXABI::emitDynamicCastCall.
ntp_adjtime.2: Increase visibility
+ s/ntp/ntpd/ for correctness + apropos results in document description
+ silence a linter warning by escaping a period with a zero-width space
MFC after: 3 days
(cherry picked from commit b49b3ccd40bda02f530c679f23f42ba9e0e4b2e2)
freebsd-base.7: Break examples into subsections
Break the examples into subsections, so that we can have multi-step
examples.
MFC after: 3 days (to 15 only)
Discussed with: ivy
Differential Revision: https://reviews.freebsd.org/D55526
(cherry picked from commit 5f922bd20d81af4b5759b8f104d5c22ee3e5cd1b)
Bourne shell -> POSIX shell
The FreeBSD shell is a POSIX compatible shell. It evolved over several
decades from the Almquist shell, which was preceeded a decade before
that by the Bourne shell. Most readers today have never seen a Bourne
shell. If someone wants to learn to use our shell, they need to look for
tutorials on the POSIX shell. Align descriptions through out the tree
with this reality, consistent with it's manual and common parlance.
We made a similar change to the doc tree in b4d6eb01540fe.
MFC after: 3 days
Reviewed by: carlavilla
Differential Revision: https://reviews.freebsd.org/D56382
(cherry picked from commit dc140a9fc151f3717bce2157f49070daafa13ec0)
[HLSL][DirectX] Emit convergence control tokens when targeting DirectX (#188792)
This pr allows codegen to generate convergence control tokens. This
allows for a more accurate description of convergence behaviour to
prevent (or allow) invalid control flow graph transforms. As noted, the
use of convergence control tokens is the ideal norm and this follows
that by enabling it for `DirectX`.
This was done now under the precedent of preventing a convergent exit
condition of a loop from being illegally moved across control flow. Test
cases for this are explicitly added.
Please see the individual commits for logically similar chunks.
Unfortunately, it is tricky to stage this in smaller individual commits.
Resolves https://github.com/llvm/llvm-project/issues/180621.https://github.com/llvm/llvm-project/pull/188537 is a pre-requisite of
this passing HLSL offload suite tests.
Assisted by: Github Copilot
[AMDGPU] Report only local per-function resource usage when object linking is enabled
With object linking the linker aggregates resource usage across TUs, so
compile-time pessimism and call-graph propagation duplicate the linker's work or
pollute its inputs.
In this mode, skip the per-callsite conservative bumps in
`AMDGPUResourceUsageAnalysis` and assign each resource symbol in
`AMDGPUMCResourceInfo` a concrete local constant instead of building call-graph
`max`/`or` expressions.