[AMDGPU] Handle AVGPR pressure in a bank-aware manner (#231388)
Distribute AVGPR pressure across ArchVGPR and AGPR banks. Follow the
register allocator, first charge AVGPRs to ArchVGPRs and then to AGPRs.
Controlled by -amdgpu-avgpr-banking, ON by default.
Summary of test changes:
New tests added:
avgpr-banking-agpr-alloc.mir: Make sure amdgpu-agpr-alloc is honored by
banking codepath.
avgpr-banking-bank-excess.mir: Check candidate bank excess.
avgpr-banking-rigid-peak.mir: Check that peak ArchVGPR and AVGPR
pressure at different region points are handled properly by the banking
codepath.
avgpr-banking.ll: Most of the register pressure comes from use of
AVGPRs. Without banking, some schedules are thought to spill and are
reverted. With banking, they are kept. Neither finally spills, which the
test also checks.
[12 lines not shown]
www/nginx-module-auth-krb5: Add New Port
Sources of the auth_krb5 module, which authenticates HTTP clients with
SPNEGO/GSSAPI (Kerberos), so a browser that already holds a valid ticket is
logged in without a password prompt. The nginx ports build
ngx_http_auth_spnego_module.so from here when their HTTP_AUTH_KRB5 option is
enabled.
www: https://github.com/stnoonan/spnego-http-auth-nginx-module
Sponsored by: Netzkommune GmbH
www/{nginx,nginx-devel,freenginx}: 3rd-party modules management
Build the dynamic_upstream, ip2location and auth_krb5 modules from their own
www/nginx-module-* ports instead of inline GH_TUPLE sources, like the other
3rd-party modules. The auth_krb5 GSSAPI substitution moves to pre-configure,
where the sources now arrive. Put the BROTLI option block in the same order
as the rest.
Sponsored by: Netzkommune GmbH
www/nginx-module-ip2location: Add New Port
Sources of the ip2location module, which looks up the client address in an
IP2Location BIN database and exposes country, region, city, coordinates and
more as nginx variables. The nginx ports build ngx_http_ip2location_module.so
from here when their HTTP_IP2LOCATION option is enabled.
www: https://github.com/ip2location/ip2location-nginx
Sponsored by: Netzkommune GmbH
www/nginx-module-dynamic-upstream: Add New Port
Sources of the dynamic_upstream module, which reconfigures the peers of an
nginx upstream at run time over an HTTP API -- add, remove, up, down,
weight -- and keeps DNS-named peers in sync in the background, for http and
stream upstreams. The nginx ports build ngx_http_dynamic_upstream_module.so
from here when their DYNAMIC_UPSTREAM option is enabled.
www: https://github.com/sysadmin-labs/nginx-dynamic-upstream-module
Sponsored by: Netzkommune GmbH
[clang][bytecode][NFC] Explicitly set gnu++17 for arrays test. (#240438)
This test uses variable-length arrays, which are a GNU extension.
Although `-std=gnu++17` is the default, we oughtn't leave it implicit
here, as neither `-std=c++17` nor `-std=gnu++20` meet the expectations
of the test.
[mlir][acc] Remove all acc.on_device in ACCSpecializeForDevice (#240227)
ACCSpecializeForDevice only folded acc.on_device when its device type
operand was a compile-time constant. Inline the definition of the
acc_on_device runtime function even for cases where the operand is not a
constant, so that there is no need for a device side runtime for
OpenACC.
[lldb][test] Check the SBError from SBTarget.Launch in API tests (#239174)
Many API tests use `target.Launch` but they don't check the `error` like
`self.assertSuccess(error)` after. Instead, they do `process.IsValid()`
or `self.assertTrue(process, PROCESS_IS_VALID)`, neither can catch the
launch failure.
This commit adds `self.assertSuccess(error)` after `target.Launch` to
correctly assert that the process is launched. Also, in case of launch
failure due to the flakiness of tests, the fail is `AssertionError:
'process exited with status -1 (...)'` so `lldbflakes.py` can rerun the
test.
[mlir][CIR] Use DefaultValuedEnumProp for enum property defaults (NFC) (#240554)
Switch the remaining enum properties that spell their default as a
`DefaultValuedProp<EnumProp<E>, "ns::E::Case">` string to
`DefaultValuedEnumProp<E, Case>` (added in #240360), which takes the
case def and checks at TableGen time that it belongs to the enum. The
cases of the Ptr dialect's `PtrAddFlags`/`PtrDiffFlags` and CIR's
`VisibilityKind` get named defs for this. Generated code is unchanged
apart from the default value now being spelled fully qualified.
Assisted-by: Claude Code (Claude Fable 5.1).
[SystemZ] Properly honor musttail attribute (#239638)
In the previous implementation, a call labeled musttail which ended up
not being lowered to a tail call was silently lowered to a regular call
instead, just as it would be for a tail call pursued for optimization
purposes, rather than for semantic correctness. This commit changes this
so that the musttail attribute is honored by the SystemZ backend, and
thus brings it in line with what is already done in the other backends.
Note that this means that some compilations which used to miscompile
silently will now fail loudly instead.
upgrade: tell which packages require a new one
The summary listed the packages a transaction installs without saying
why they come in. The solver now records the packages which need a
package it installs on their behalf, and the summary prints them:
bar: 1.0 (required by foo)
lib/libifconfig: Fix pointer-sign warnings
Fix all pointer-sign warnings generated when compiling libifconfig.
One of these warnings comes from the misuse of snl_add_msg_attr_string
for a byte array. Though userland treats carpr_key as a string, it is
actually an array of bytes. Handle it as such in libifconfig.
While here, fix a small consistency nit in ifconfig_sfp_get_sfp_dump.
Signed-off-by: Ryan Moeller <rmoeller.dev at gmail.com>
Reviewed by: imp, zlei
Pull Request: https://github.com/freebsd/freebsd-src/pull/1850
(cherry picked from commit 20cd1b475a1ef9dfca30726999aa1b9a02d5bc39)
[mlir][MemRefToLLVM][NFC] Share checks between conversion entry points (#237349)
Use the same default FileCheck prefix for `finalize-memref-to-llvm` and
`convert-to-llvm` in `memref-to-llvm.mlir`, since both entry points
produce the same IR for these inputs. Remove duplicate interface checks
and incomplete trailing delimiters without changing the input IR.
Run absence checks separately and bound them with output split markers
so that detailed positive checks do not shorten their scope. Keep the
32-bit checks focused on index-width-dependent rank and dimension
lowering, and drop the redundant 32-bit subview checks.
Assisted-by: Codex / GPT-6
Merge commit 72a20b8e2987 from llvm git (by Gabriel Baraldi):
[SLPVectorizer] Check std::optional coming out of getPointersDiff (#175784)
Fixes https://github.com/llvm/llvm-project/issues/175768
There are other unchecked uses std::optional in this pass but I couldn't
figure out a test that triggers them
This fixes a clang crash in the SLP vectorizer, hit when building
audio/csound on powerpc64le. The hardened libc++ traps on the disengaged
optional, so clang dies with exit code 133. The second hunk is adapted to
llvm 21, where analyzeConstantStrideCandidate() is still isStridedLoad().
Reviewed by: dim
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D61354
[libc] Use a syscall wrapper for getgid
This PR move getgid behind the centralized syscall wrappers, following libc/docs/dev/syscall_wrapper_refactor.md.
[libc] Use a syscall wrapper for gethostname
This PR move gethostname behind the centralized syscall wrappers, following libc/docs/dev/syscall_wrapper_refactor.md.
[libc] Use a syscall wrapper for getppid
This PR move getppid behind the centralized syscall wrappers, following libc/docs/dev/syscall_wrapper_refactor.md.
[libc] Use a syscall wrapper for getuid
This PR move getuid behind the centralized syscall wrappers, following libc/docs/dev/syscall_wrapper_refactor.md.
libclc: Stop requiring SPV_KHR_fma (#226186)
SPV_KHR_fma and the OpenCL Extended Instruction fma are equivalent. The
latter however is required to be supported by OpenCL runtimes where the
former is not.
Let's remove this requirement, because it adds no value over the
functionality in the OpenCL core spec and only makes it more difficult
to consume a SPIR-V that uses optional features.
The use of `SPV_KHR_fma` breaks with e.g. mesa at this point in time and
might only be resolved in a future release.
This should also be backported to llvm-23.1
[flang][OpenACC] Lower contained unstructured seq loops in kernels
An `acc loop seq` whose loop has an early exit is lowered as an
unstructured acc.loop that privatizes its induction variables, but its
DOs then hit the "unstructured do loop in acc kernels" TODO. Lower them
as plain control flow when the acc.loop privatizes the DO's induction
variable and the construct enclosing the `acc loop seq` is lowered
structurally, so the seq loop's control flow stays contained.
[NFC][Docs] Fix typos across clang, flang, and mlir documentation (#240115)
Fix various doubled word typos and a spelling error across documentation
in the clang, flang, and mlir subprojects.
Assisted-by: Antigravity