[AMDGPU] Omit hardwired-on SRAMECC ELF mode
Mirror #227740 for SRAMECC. Without on/off modes, SRAMECC is implied
by EF_AMDGPU_MACH; encoding a mode makes consumers infer an
unsupported :sramecc+ modifier.
Depends on #225540.
Change-Id: I7bf76efbb86c7030eae36dc06ca7da0dd64cce87
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
[AMDGPU] Add SRAMECC on/off mode capability (#225540)
Distinguish SRAMECC hardware support from selectable on/off modes,
mirroring XNACK. Preserve selectable modes on existing targets and use
the new capability for target-ID validation, defaults and printing,
module flags, and disassembly.
[SanitizerCoverage] Don't let noipa affect comdat selection (#228182)
On non-ELF targets, SanitizerCoverage only puts a function's coverage
arrays in a comdat if the function isn't interposable.
`isInterposable()`
also returns true for `noipa` function definitions by default, but
`noipa` doesn't affect linkage. Query
`isInterposable(/*CheckNoIPA=*/false)` so `noipa` functions get the same
comdat treatment as other functions with the same linkage.
This is one of a few refinements of noipa identified while working on
making optnone imply noipa - without these refinements,
optnone-implies-noipa, might substantially change clang -O0 codegen. I'm
open to discussing whether these refinements are the right direction,
though.
Assisted-By: Claude
[DebugInfo] Support global addresses in variable locations (#218722)
This patch adds support for global address locations to SelectionDAG,
GlobalISel and AsmPrinter. The actual implementation is very similar to
how constants are being handled so most code changes are very
mechanical.
The motivation for adding global address support is the Swift compiler
and it is needed even in unoptimized code. For example, the standard
libary implements the empty array with a global "empty array storage"
singleton object, so it can show up as the location of array values.
Another very common use-case are references to type metadata, which is
also accessed via global symbols.
It is even possible to motivate this with a C exmple:
extern int g; int *p = &g;
also produces the dbg_value with a global value.
[17 lines not shown]
[llvm-profdata] Remove exitWithError and LSan leak workaround
With all subcommands propagating llvm::Error to main, exitWithError,
exitWithErrorCode, and the LSan leak suppression workaround are no
longer needed.
Assisted-by: Gemini
[NFCI][llvm-profdata] Propagate Error in loadInput and mergeWriterContexts
Propagate Error from loadInput and mergeWriterContexts in mergeInstrProfile,
supplementInstrProfile, and overlapInstrProfile. In mergeInstrProfile's
ThreadPool, catch errors from worker threads, stop scheduling new jobs,
and return the first encountered fatal error.
Ensure ~WriterContext() consumes any pending unhandled errors in
WriterContext::Errors upon destruction.
Not NFC as destructors are run on the stack and ThreadPool workers exit
earlier on error.
Assisted-by: Gemini
[NFCI][llvm-profdata] Propagate Error in merge subcommand
Change merge_main and its helpers to return Error and handle it
with reportError in main.
Not NFC as destructors are run on the stack.
Assisted-by: Gemini
[NFCI][llvm-profdata] Propagate Error in show subcommand
Change show_main and its helpers to return Error and handle it
with reportError in main.
Not NFC as destructors are run on the stack.
Assisted-by: Gemini
[NFCI][llvm-profdata] Propagate Error in overlap subcommand
Change overlap_main and its helpers to return Error and handle it
with reportError in main.
Not NFC as destructors are run on the stack.
Assisted-by: Gemini
[NFCI][llvm-profdata] Propagate Error in order subcommand (#228154)
Change order_main to return Error and handle it with reportError
in main.
Not NFC as destructors are run on the stack.
Assisted-by: Gemini
Linux: don't fail send/recv on job control stop
Suspending a zfs send or receive that writes to or reads from a pipe
with ^Z kills it: "cannot send: signal received" for send, and
"internal error: Bad file descriptor" plus an abort for receive.
On Linux the stream is written in the ioctl thread itself. A pending
SIGTSTP makes a blocking pipe_write()/pipe_read() return -ERESTARTSYS
or a short count, and the send/recv path treats that as a fatal error.
issig() already knows how to stop the thread on SIGSTOP/SIGTSTP (commit
414f7249d), but it is only reached after the I/O error has been
recorded.
Retry the interrupted kernel_write()/kernel_read() in zfs_file_write()
and zfs_file_read() when issig() reports that the pending signal was
only a stop signal: the thread stops there, and the I/O continues from
where it stopped once it is resumed. Any other signal still aborts the
operation as before.
[3 lines not shown]
net-mgmt/harica: [NEW PORT] Go client for the HARICA API
harica is a Go package for interacting with the HARICA API - the current
TLS certificate service provider for the GÉANT community
PR: 299024
Sponsored by: PANS Jarosław
[clangd] DefineInline: only trigger on the declaration that has the body (#227534)
The "Move function body to declaration" tweak (DefineInline) is offered on a redeclaration that follows the definition, and then fails when applied.
### Reproduction
```
printf 'void h(void) {}\nvoid h(void);\n' > /tmp/p3.c
clangd --check=/tmp/p3.c 2>&1 | grep -E 'DefineInline|All checks'
```
Before (also reproduces with clangd 17.0.6 and 19.1.7):
```
tweak: DefineInline ==> FAIL: Couldn't find semicolon for target declaration.
All checks completed, 1 errors
```
After:
[20 lines not shown]
mips: Avoid shifting into sign bit by using unsigned type instead.
Maybe this loop should do arithmetic in the other direction? But at
least left shifts on unsigned t-bit types are reduced mod 2^t and not
undefined, so this is a simpler change to avoid UB.
PR port-evbmips/60812: UBSan: Undefined Behavior in [sys-src] member
access within misaligned address [..] for type '[..]' which requires
128 byte alignment
[Matrix] Implement matrix support for the `select` intrinsic (#227753)
Closes #184487.
This PR implements the matrix api for `select`, adds matrix codegen
tests, matrix sema tests, and SPIRV matrix backend tests. DirectX matrix
backend tests were not added because no DirectX backend changes were
made.
Assisted-by: Claude Opus 4.8
[Matrix] Implement matrix support for the `select` intrinsic (#227753)
Closes #184487.
This PR implements the matrix api for `select`, adds matrix codegen
tests, matrix sema tests, and SPIRV matrix backend tests. DirectX matrix
backend tests were not added because no DirectX backend changes were
made.
Assisted-by: Claude Opus 4.8
Add NTS support for NTP servers
NTP servers can now be authenticated with Network Time Security (RFC 8915)
using chrony's per-source `nts` option.
- system.ntpserver gains `nts`. Saving an NTS server without `force` runs
NTS key establishment (TLS 1.3, ALPN ntske/1, system trust store; see
middlewared.utils.ntp) and then checks the NTP server and port it
negotiates. maxpoll is capped at 21 with NTS so that chrony's key refresh
interval stays longer than the poll interval.
- chrony.conf renders `authselectmode prefer`: while any NTS server is
configured, servers without NTS (including DHCP-provided ones) are not used.
- system.security gains `require_nts` (off by default), which renders
`authselectmode require`. It can only be enabled with an NTS server
configured. While it is set, servers without NTS are refused and the last
NTS server cannot be deleted. Changing it restarts chronyd on both
controllers.
- The database migration adds time.cloudflare.com and ntppool1.time.nl with
NTS to systems still on exactly the TrueNAS default NTP servers that are
[16 lines not shown]
[mlir][LLVM] Use a disjoint scope domain when inlining noalias
This matches recent changes to the LLVM inliner.
AI disclosure: Claude wrote the code, I wrote the commit message and
have done initial review.
[mlir][LLVM] Add disjointScopes to AliasScopeDomainAttr
This also updates the MLIR-side inliner to clone disjoint domains
while cloning alias scopes, matching changes to LLVM.
AI disclosure: Claude wrote the code, I wrote the commit message and
looked at the code.
[AMDGPU] Use a disjoint scope domain for merged LDS structs
When lowering LDS values, all the values are mutually disjoint, so we
can use the newly-added disjoint scopes feature to simplify the IR.
AI disclosure: Claude wrote this and I reviewed it and wrote the
commit message