[flang][cuda] Add cuf.launch_config attribute recording a kernel directive's launch configuration (#229980)
Add a `cuf.launch_config` attribute to the CUF dialect, together with a
`getLaunchConfigAttrName()` helper for the attribute name.
The attribute records how a `!$cuf kernel do` directive spelled its
launch configuration: the number of dimensions the directive names, and
each grid dimension as written. A grid dimension left to the compiler is
spelled `*`, a constant by its value, and a variable by its name.
```mlir
#cuf.launch_config<dims = 2 : i64, grid = ["*", "*"]>
```
[BOLT] Match mmap events by build id (#229596)
Profiling on a host running two versions of the target binary with `perf
-a` might result in a profile containing mmap events from the desired
target and the second copy of that binary. In this case, perf2bolt will
attribute samples from both processes to the target binary. Match by
build id to filter samples.
Co-authored-by: Alexey Moksyakov <moksyakov.alexey at huawei.com>
[flang][cuda][semantics] Reject unguarded host-only and device-only calls in CUDA HOST,DEVICE procedures (#228176)
Previously, semantic checking allowed host-only and device-only calls
throughout a HOST,DEVICE procedure. This change requires unguarded
callees to support both its host and device versions.
A condition that checks the intrinsic ON_DEVICE permits host-only and
device-only calls in its guarded arms. The allowance includes one-line
IF statements, nested branches, and USE aliases. In an IF/ELSE IF chain,
a guard also applies to subsequent ELSE IF and ELSE arms. Guards
established inside an arm remain local to that arm.
When an ON_DEVICE arm, or its associated plain ELSE arm, contains an
unconditional RETURN, the allowance extends to the continuation after
the IF. Unconditional BLOCK constructs propagate these guards. A RETURN
in an unrelated IF/ELSE IF arm does not establish a continuation guard.
Unrelated branches restore their incoming checking context while
retaining an enclosing guard.
[37 lines not shown]
Merge tag 'soc-fixes-7.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull SoC fixes from Arnd Bergmann:
- Four distinct issues in TEE firmware, all fairly minor
- Five devicetree mistakes on NXP i.MX8, lx2160a and Qualcomm
based machines, one of these may cause file system corruption
from an incorrect SD card supply voltage
- Five fixes for clk drivers on new Qualcomm platforms,
addressing issues with incorrect enable states
* tag 'soc-fixes-7.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
MAINTAINERS: update my email address
tee: optee: ffa: support shared memory offsets on large-page kernels
optee: register TEE devices only once fully initialized
tee: shm: reject zero-sized allocations in tee_dyn_shm_alloc_helper()
arm64: dts: imx8mp-var-dart-sonata: Fix Sonata SD I/O supply
[10 lines not shown]
Merge tag 'usb-mtu3.2026.10.06a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu
Pull tracing fix from Paul McKenney:
"Fix a double-dereference splat in TP_printk in usb mtu3. This was a
pre-existing bug that can corrupt tracing output, but which was
exposed this cycle by additional checking that was added to the
tracing subsystem.
This splat is reporting a double-dereference that can result in
garbage traces being dumped due to the possibility of the TP_printk()
being executed without the benefit of main memory being present.
The fix is to move the extra dereference from TP_printk() time to
TP_fast_assign() time"
* tag 'usb-mtu3.2026.10.06a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
usb: mtu3: Fix double dereference in TP_printk
[Flang] Generalize intrinsic CUBLAS USE association (#220024)
This PR generalizes the work done in
[PR#217455](https://github.com/llvm/llvm-project/pull/217455) to work
for the entire cublas library.
Merge tag 'urgent.2026.10.01a' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux
Pull RCU fix from Paul McKenney:
"Fix spurious WARN_ON() for rcu_segcblist_n_cbs() in
cleanup_srcu_struct()
This issue was introduced by 78a38cbf6f20 ("srcu: Queue
sdp->work when the delay timer is successfully deleted")
during this merge window.
Enough people are hitting this that I am sending it now
rather than waiting for the next merge window. Especially
given that it is a simple one-liner"
* tag 'urgent.2026.10.01a' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux:
srcu: Fix WARN_ON() for rcu_segcblist_n_cbs() in cleanup_srcu_struct()
[flang] Diagnose and optionally repair missing MODULE procedure prefixes (#220783)
This change diagnoses submodule procedure definitions that match a
separate module procedure interface but omit the required `MODULE`
prefix.
Without the extension, Flang leaves an unprefixed definition as a local
procedure. `-Wportability` or `-pedantic` diagnoses a likely missing
prefix without changing the program.
The new `-fimplicit-module-prefix` option provides an opt-in
compatibility mode that binds a matching definition in the current
source to its ancestor module interface. Definitions read from module
files retain the interpretation chosen when those files were produced.
`-Wimplicit-module-prefix` or `-pedantic` reports when the repair is
applied; the diagnostic can be suppressed without disabling the repair.
Since this extension cannot distinguish an omitted prefix from an
intentionally local procedure with the same name as an ancestor
[8 lines not shown]
[clang-repl] Handle mllvm args for clang-repl before calling executeAction (#197133)
Fixes #178139
This work is built on top of discussions done in
https://github.com/llvm/llvm-project/pull/132670
Making a fresh PR cause the branch is a a year old and a bit outdated.
### Problem Statement : This is a 3 part problem statement. Imagine our
compiler builder args look like this
```
CB.SetCompilerArgs({
"-v",
"-xc++",
"-std=c++23",
"-Xclang", "-iwithsysroot/include/compat",
"-fwasm-exceptions",
"-mllvm", "-wasm-enable-sjlj"
});
[118 lines not shown]
[X86] Make EXTRQI/INSERTQI SDTypeProfile accurate and enable verifyTargetNode (#229655)
The type profile says the type needs to be v2i64, but it is created with
v16i8, v8i16, or v2i64 type.
Relax the type profile to allow this and add extra isel patterns to make
isel continue to work.
I judged that this was easier than adding bitcasts.
[OpenMPOpt][PGO] Set entry count on merged parallel wrapper (#221654)
When OpenMPOpt merges adjacent parallel regions, it creates a new
wrapper (*..omp_par) that calls the original outlined callbacks through
a single __kmpc_fork_call.
Preserve profiling information for the merged wrapper by assigning it
the
largest function_entry_count from the original callbacks. Also preserve
callsite counts for calls to the original callbacks, since SamplePGO may
otherwise treat them as cold once the wrapper itself has profile data.
[flang] Reject MODULE prefix in abstract interface body (#212980)
Issue: Flang accepts a MODULE prefix on a function or subroutine inside
an ABSTRACT INTERFACE. C1547 allows MODULE only on a module subprogram,
or on a nonabstract interface body in a module or submodule.
Fixes #208200
Root cause
- BeginSubprogram() only enforced the module/submodule half of C1547. An
abstract interface inside a module or submodule still has that scope, so
the check passed.
- In PushSubprogramScope(), an abstract interface body takes the
isAbstract() path, sets ABSTRACT, and never looks at hasModulePrefix, so
the prefix was ignored with no diagnostic.
```
if (isAbstract()) {
SetExplicitAttr(*symbol, Attr::ABSTRACT);
} else if (hasModulePrefix) {
[21 lines not shown]
[Flang][HLFIR] Lower PACK(array, .TRUE.) to hlfir.reshape (#220860)
When the PACK mask is the compile-time scalar .TRUE., the result is
equivalent to RESHAPE(array, [SIZE(array)]). Lower all PACK calls to
hlfir.pack, then simplify pack(array, .TRUE.) to hlfir.reshape with an
index-typed SHAPE temporary in SimplifyHLFIRIntrinsics. Variable or
array masks, VECTOR, and non-trivial or polymorphic operands continue to
use the runtime PACK path.
Add regression tests for character and real(k) PACK with scalar .TRUE.
Relanding the patch #213603 after fixing the regression
---------
Co-authored-by: Cursor <cursoragent at cursor.com>
ipmi(4): improve debugging for ioctl(IPMICTL_SEND_COMMAND)
Add a knob to debug ioctl(IPMICTL_SEND_COMMAND). Log the IPMI NetFn and
Cmd fields, followed by a hexdump of the request data. Upon completion,
log the hexdump of the response data.
Reviewed by: adrian, imp, ngie
Sponsored by: Vdura
Differential Revision: https://reviews.freebsd.org/D59514
Add various defaulted postfix operator overloads with restrictions and error checks
Introduce new structures demonstrating defaulted postfix increment and decrement operators with various qualifiers such as `__restrict__`, `volatile`, and `const`. Include error checks for invalid return types and parameter types in defaulted operators. Enhance the handling of placeholder types and clarify the rules around defaulted operators in the context of C++ concepts and templates.
[tsan][go] Relax alignment for 128-bit Go atomic args buffer access (#213123)
The Go 128-bit atomic helpers added by #196833 read and write the
128-bit value through an a128* cast of the u8* args buffer (e.g.
*(a128*)(a + 8)). Clang treats a128* as requiring 16-byte alignment and
emits MOVAPS or MOVDQA on x86_64. The Go runtime only guarantees 8-byte
alignment of the args buffer, so a+8 may not be 16-byte aligned. The
misaligned MOVAPS raises GP and causes a SIGSEGV.
Use an 8-byte-aligned typedef (`using a128_u64 ALIGNED(8) = a128;`) for
args buffer accesses so Clang emits unaligned 128-bit moves (MOVDQU).
The target address of the atomic operation itself (`*(a128**)a`) is
always 16-byte aligned from the Go side.