[mlir][nvgpu] Don't swizzle shared memory rows that aren't a power of 2 (#237179)
`nvgpu-optimize-shared-memory` miscompiles memrefs whose rows aren't a
power
of 2 long. The swizzle XORs the index of each 16-byte vector in a row
with low
bits of the row index. When a row holds a power of 2 number of vectors,
the
result is always an index in the same row, so the swizzle only reorders
each
row. Otherwise, the result can be past the end of the row: the access
then
lands in the next row and overwrites one of its vectors, or past the end
of
the buffer for the last rows.
Skip such memrefs and leave their accesses unswizzled.
Assisted-by: Claude
[orc-rt] Add sps::lookupInJITDylib controller-call wrapper (#239494)
sps::lookupInJITDylib asks the controller to look up a SymbolLookupSet
in the JITDylib identified by the given key address, calling the
controller handler identified by the new
orc_rt_tag_sps_lookupSymbolsInJITDylib tag.
Clients index the result by lookup-set position, so a controller result
whose length doesn't match the lookup set is reported as an error rather
than passed on.
This commit also adds DirectControllerAccess to the unit-test utilities:
a ControllerAccess that routes executor-to-controller calls to handlers
registered by tag and runs them on the calling thread. The new tests use
it to check that arguments and results survive the round trip; lookup
semantics belong to the controller and aren't tested here.
[Flang][OpenMP] Warn about SAVE variables in MAP w/o ALWAYS modifier (#209134)
When mapping a variable that has the SAVE attribute, a MAP clause is not
effective unless it has the ALWAYS modifier. The reason is that the
reference count of the variable on the device is infinite and thus no
data transfer occur when ALWAYS is not present. This is a common source
of errors and the compiler should warn about this behavior.
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot at users.noreply.github.com>
[CIR][AMDGPU] Look through address_space views of __retval in insertSRetStores (#239151)
Summary:
- On AMDGPU, a non-trivial record is returned through a default address
space `sret` pointer, but `CIRGen` puts `__retval` in addrspace(5) and
uses it through an `address_space` cast.
- `insertSRetStores` replaced the alloca with the sret pointer even
though the types differ. The cast then became an identity cast:
`%0` = cir.cast address_space %arg0 : !cir.ptr<!rec_NT> ->
!cir.ptr<!rec_NT>`
- When the types differ, replace the alloca's `address_space` views with
the sret pointer instead, and erase the alloca once its return loads are
gone.
- Test: `amdgpu-sret-nontrivial.cir`
Relates to: https://github.com/llvm/llvm-project/issues/220471
Assisted by : claude opus 5.5
[clang] Update C++ DR status page (#239482)
This is a follow-up for #237113 that contains missing updates for the
C++ DR status page and fixes a typo in an issue status comment (it
didn't make it to the status page last time, so no one noticed).
www/{nginx,nginx-devel,freenginx}: 3rd-party modules management
Build the echo, headers_more, eval, set_misc, srcache, rds_json, rds_csv,
xss and drizzle modules from their own ports instead of bundling the
sources here.
Sponsored by: Netzkommune GmbH
www/nginx-module-set-misc: Add New Port
Sources of the set_misc module, which adds extra set_* directives on top
of the nginx development kit. Built by the nginx ports when their
SET_MISC option is enabled.
Sponsored by: Netzkommune GmbH
www/nginx-module-srcache: Add New Port
Sources of the srcache module, which provides subrequest based response
caching. Built by the nginx ports when their SRCACHE option is enabled.
Sponsored by: Netzkommune GmbH
www/nginx-module-xss: Add New Port
Sources of the xss module, which wraps JSON output in a JavaScript
callback. Built by the nginx ports when their XSS option is enabled.
Sponsored by: Netzkommune GmbH
www/nginx-module-rds-json: Add New Port
Sources of the rds_json module, which turns resty-dbd-stream output into
JSON. Built by the nginx ports when their RDS_JSON option is enabled.
Sponsored by: Netzkommune GmbH
www/nginx-module-rds-csv: Add New Port
Sources of the rds_csv module, which turns resty-dbd-stream output into
CSV. Built by the nginx ports when their RDS_CSV option is enabled.
Sponsored by: Netzkommune GmbH
www/nginx-module-headers-more: Add New Port
Sources of the headers_more module, which sets, adds and clears request
and response headers. Built by the nginx ports when their HEADERS_MORE
option is enabled.
Sponsored by: Netzkommune GmbH
www/nginx-module-echo: Add New Port
Sources of the echo module, built by the nginx ports when their ECHO
option is enabled.
Sponsored by: Netzkommune GmbH
www/nginx-module-eval: Add New Port
Sources of the eval module, which evaluates a subrequest response into
variables. Built by the nginx ports when their HTTP_EVAL option is
enabled.
Sponsored by: Netzkommune GmbH
www/nginx-module-drizzle: Add New Port
Sources of the drizzle module, which talks to MySQL and Drizzle servers
and streams the result for the rds_json or rds_csv filters. Built by the
nginx ports when their DRIZZLE option is enabled.
Sponsored by: Netzkommune GmbH
databases/libdrizzle: Parse the handshake of newer MySQL servers
Accept a server greeting that is longer than the old fixed layout, so a
connection to MySQL 5.6 and later, including 8.4, no longer fails with
"bad packet size". The trailing auth plugin data is ignored, the native
scramble is read as before.
Sponsored by: Netzkommune GmbH
[flang] Treat stack save/restore and fir.unreachable as not accessing memory (#239240)
These operations do not declare memory effects, so the alias analysis
assumed they may modify and reference any memory. They do not access
memory: answer NoModRef for them.
[tsan] Intercept C11 thrd_create, thrd_join and thrd_detach on glibc (#238768)
glibc implements thrd_create, thrd_join and thrd_detach by calling its
internal pthread functions directly, so the pthread interceptors never
see C11 threads. A thread created with thrd_create has no ThreadState
and crashes on its first instrumented access or intercepted call
(#199585).
Intercept them, forwarding to the real functions. thrd_create starts the
thread in a C11 trampoline, __tsan_c11_thread_start_func, and reuses the
pthread_create bookkeeping; reports strip the trampoline from thread
stacks, as they do __tsan_thread_start_func. thrd_exit needs no
interceptor.
Only glibc needs this: FreeBSD, NetBSD and Android implement the C11
functions with the public pthread functions, which are already
intercepted. The new SANITIZER_INTERCEPT_C11_THREADS will also be used
by the other sanitizers that need these interceptors.
Assisted-by: Claude
[DSE] Drop outdated header docs (NFC) (#239143)
Literally every sentence in the current documentation is wrong. Drop them, it's
easy to find the implementation file with more accurate documentation.