kern.post.mk: Early fail the build in case of any duplicate objs
Since all the kernel objects are built and placed in the same directory,
a conflict is quite possible when two modules have a file with the same
name. Another conflict possibility is that the source is specified
twice in conf/files.
In order to avoid running into mysterious/unexpected issues caused by
duplicate objects, simply abort the build when such a duplicate is
found.
Of course, a better solution is to refactor the build framework to
eliminate such a limitation, so that a module may choose whatever
filename it likes.
[MLIR][WASM] Introduce the RaiseWasmMLIRPass to convert WasmSSA MLIR to core dialects (#164562)
This is following https://github.com/llvm/llvm-project/pull/154674 and
still related to
https://discourse.llvm.org/t/rfc-mlir-dialect-for-webassembly/86758.
This PR introduces the RaiseWasmMLIRPass. This pass lowers WasmSSA MLIR
to other dialects of the LLVM ecosystem (namely: arith, math, cf and
memref).
This is the first PR of a series of 2 or 3 to introduce the lowering, as
an introduction it brings support for function calls, local and global
variables and handling of arithmetic operations. As explained in the
RFC, most WasmSSA operations have been made to stay close to other
dialects' semantics so that conversion is trivialized.
---------
Signed-off-by: Ferdinand Lemaire <flemairen6 at gmail.com>
Co-authored-by: Ferdinand Lemaire <ferdinand.lemaire at woven-planet.global>
Co-authored-by: Ferdinand Lemaire <flemairen6 at gmail.com>
Revert "[OpenMP][offload] Cross-team reductions with variable number of teams" (#204914)
Reverts llvm/llvm-project#195102 due to some missed debug info issue
revealed by https://lab.llvm.org/buildbot/#/builders/67/builds/7022
bsd.kern.mk: Remove -finline-limit and related compiler parameters
These compiler flags/parameter were inherited from FreeBSD. They
basically meant to ALWAYS inline the functions mark with the 'inline'
keyword. Since modern GCC provides with the 'always_inline' attribute,
it's better to use '__always_inline' annotation for those functions that
must be inlined. As a result, remove the '-finline-limit' and related
parameters to achieve better inlining results; e.g., it avoids
unnecessary over-inlining.
kernel: Adjust inlining annotations for better results
We will be removing the '-finline-limit=8000 ...' compiler flags, which
can change the inlining results. By adjusting the inlining annoations
with proper '__always_inline' annotations, the inlining results become
better and more deterministic.
In the meantime, a few unnecessary '__inline' annotations are removed.
Discussed-with: dillon
[OpenMP][offload] Cross-team reductions with variable number of teams (#195102)
This is a part of a series of patches that rework OpenMP cross-team
reductions.
This patch changes the cross-team reduction runtime to no longer work
through larger number of teams in chunks. Instead, we allocate a
suitable-sized global buffer for the team values and let all teams run
at once. The last team that finishes uses a strided loop to reduce the
team values from the global buffer.
We also use `mapping::getNumberOfThreadsInBlock()` instead of
`omp_get_num_threads()` because the reduction of the team values runs
outside of the parallel region device code, which would make
`omp_get_num_threads()` always return 1. For Generic-SPMD mode, we also
want to use all available threads, which means that we need to copy the
reduction data from LDS (where it lives in that mode by default) to
scratch in codegen before calling the cross-team reduction.
[48 lines not shown]
[DirectX] Handle llvm.dx.resource.getbasepointer intrinsic in DXILResourceAccess pass (#204732)
The `llvm.dx.resource.getbasepointer` intrinsic is emitted for
`Constantbuffer<T>` element access and needs to be translated to
`llvm.dx.resource.load.cbufferrow` calls in the `DXILResourceAccess`
pass. The handling is identical to `llvm.dx.resource.getpointer` with a
0 offset.
Fixes #204234
kern.pre.mk: Remove 'gcc2_compiled.' symbol stripping
This was inherited from FreeBSD and has long been obsolete since GCC 3.
See also: FreeBSD (https://reviews.freebsd.org/D38764)
Teach hugo to listen over TLS without a port appended
Add targets to documentation & website, to serve the website over TLS,
with nice clean URLs. You will need to provide the TLS terminating proxy
yourself.
Differential Revision: https://reviews.freebsd.org/D53930
Approved by: ziaee
Reviewed by: kevans
Event: BSDCan 2026
Sponsored by: SkunkWerks, GmbH
MFV: file 5.47.
(cherry picked from commit e949ce9dc0e6fff26e83904f1008b76d36ba0a37)
file: normalize .result files to ensure trailing newline on install
Some upstream result files introduced in file 5.47 (e.g., bgcode.result)
lack a trailing newline, causing the contrib_file_tests ATF test to
fail with "cmp: EOF on bgcode.result". Generate normalized copies
of the expected results and install those instead.
Fixes: e949ce9dc0e6fff26e83904f1008b76d36ba0a37
(cherry picked from commit f7c0bd206fe4f3a956b3ecb4dc11a7386b85fa22)
MFV: file 5.47.
(cherry picked from commit e949ce9dc0e6fff26e83904f1008b76d36ba0a37)
file: normalize .result files to ensure trailing newline on install
Some upstream result files introduced in file 5.47 (e.g., bgcode.result)
lack a trailing newline, causing the contrib_file_tests ATF test to
fail with "cmp: EOF on bgcode.result". Generate normalized copies
of the expected results and install those instead.
Fixes: e949ce9dc0e6fff26e83904f1008b76d36ba0a37
(cherry picked from commit f7c0bd206fe4f3a956b3ecb4dc11a7386b85fa22)
[LifetimeSafety] Allow configuring lifetimebound fix-it spelling (#204045)
When suggesting `[[clang::lifetimebound]]` fix-its, allow users to
provide a project-specific macro spelling with
`-lifetime-safety-lifetimebound-macro=...`.
If no spelling is configured, use a visible macro whose replacement
tokens spell the attribute, preferring the most recently defined
matching macro, and fall back to `[[clang::lifetimebound]]` or
`__attribute((lifetimebound))` otherwise.
Closes https://github.com/llvm/llvm-project/issues/200232