machine/ieeefp.h: include <sys/cdefs.h>
The <machine/ieeefp.h> headers wrap their deprecated FPU control
prototypes in __BEGIN_DECLS/__END_DECLS but rely on the includer to
have pulled in <sys/cdefs.h>. Including <floatingpoint.h> first on
arm, arm64, powerpc and riscv (or amd64 <machine/ieeefp.h> with
__IEEEFP_NOINLINES__) fails with "unknown type name '__BEGIN_DECLS'".
This breaks e.g. devel/py-pyinstaller.
Suggested by: jhb
Reviewed by: jhb
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D59659
(cherry picked from commit 9d50245a0f1333e10cc1c4dda16878cd79a7c42b)
(cherry picked from commit 252500da3a45a89d91c276db88f9669314cc2dfa)
machine/ieeefp.h: include <sys/cdefs.h>
The <machine/ieeefp.h> headers wrap their deprecated FPU control
prototypes in __BEGIN_DECLS/__END_DECLS but rely on the includer to
have pulled in <sys/cdefs.h>. Including <floatingpoint.h> first on
arm, arm64, powerpc and riscv (or amd64 <machine/ieeefp.h> with
__IEEEFP_NOINLINES__) fails with "unknown type name '__BEGIN_DECLS'".
This breaks e.g. devel/py-pyinstaller.
Suggested by: jhb
Reviewed by: jhb
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D59659
(cherry picked from commit 9d50245a0f1333e10cc1c4dda16878cd79a7c42b)
[mlir] Detect hasLoop cycles with a single DFS
Calling isRegionReachable for every region the traversal popped made
hasLoop quadratic in the number of region successor edges. Use one
iterative depth-first search from the entry regions instead, in a new
canReachCycle helper. Reaching a region that is still on the DFS path
is a loop, reaching a finished one is not. Each region is queried at
most once, the search stops at the first loop, and the stack holds
one pointer-sized item per entry so small ops need no heap
allocation.
Both traversals now get a region's successors from
RegionBranchOpInterface::getSuccessorRegions(Region &) instead of
asking each terminator with null operand attributes. The in-tree
terminators that override getSuccessorRegions (scf.condition and
cir.condition) return the same regions as their parent op when no
operand is constant.
Restore the dropped debug output. Rename the multi-branch test and
[6 lines not shown]
[mlir] Detect hasLoop cycles with a single DFS
Calling isRegionReachable for every region the traversal popped made
hasLoop quadratic in the number of region successor edges. Use one
iterative depth-first search from the entry regions instead, in a new
canReachCycle helper. Reaching a region that is still on the DFS path
is a loop, reaching a finished one is not. Each region is queried at
most once, the search stops at the first loop, and the stack holds
one pointer-sized item per entry so small ops need no heap
allocation.
Both traversals now get a region's successors from
RegionBranchOpInterface::getSuccessorRegions(Region &) instead of
asking each terminator with null operand attributes. The in-tree
terminators that override getSuccessorRegions (scf.condition and
cir.condition) return the same regions as their parent op when no
operand is constant.
Restore the dropped debug output. Rename the multi-branch test and
[6 lines not shown]
[mlir][SymbolTable] Handle unknown symbol users in SymbolUserMap (#227918)
This PR fixes #226052 treating unknown users record the symbol table
having this specific users instead use the assertion.
Please see my comment here explaining where the bug was introduced!
[here](https://github.com/llvm/llvm-project/issues/226052#issuecomment-5922633002).
[PowerPC] Use an unversioned FreeBSD triple in pr47373.ll (#233652)
pr47373.ll was added in 27714075848e with powerpc64-unknown-freebsd13.0,
but at the time llc defaulted to ELFv1 for all big-endian ppc64
triples, so the generated checks were ELFv1 even though FreeBSD 13
uses ELFv2. 4b09cb2b16eb made llc select ELFv2 for FreeBSD 13+ and
worked around the resulting failure by changing the triple to
freebsd12.0.
Use powerpc64-unknown-freebsd and regenerate the checks. The test
covers vector FDIV lowering without VSX, which is unaffected by the
ABI.
[lldb] Fix a lock-order deadlock in OptionValueFileSpecList::Clone (#233507)
`OptionValueFileSpecList::Clone` locks `m_rmutex` and then copies its
`OptionValue` base, which locks `m_mutex`, while
`OptionValue::GetFileSpecListValue` takes the same two locks in the
opposite order. When several debuggers create targets at once, this
deadlocks on the global `target.debug-file-search-paths` setting and
`TestMultipleDebuggers.py` times out (#233425).
This patch removes the `Clone` override. The copy constructor already
locks `m_rmutex` on its own. The new unit test hangs 10/10 without the
patch, and the test's driver went from 3 hangs in 1920 runs to 0 in 3840
on Windows.
[Flang] Avoid deep template recursion (#233865)
The names of all runtime functions is stored as variadic template
parameters of a `RuntimeTableEntry`, but the preprocessor macro that
creates the template instantiation (`FirMacroExpandKey`) expands to
exactly 50 characters. A recursive function `filter` then was used to
strip the unnecessary trailing `'\0'` characters out of the variadic
template. On the msvc compiler this 50x template recursion hits a
hard-coded limit
([C1202](https://learn.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/fatal-error-c1202)).
#218985 exposed this limted because this 50x template recursion started
to happen in a deeper context, maybe because the instantiation order
stopped making use of a previous memoization.
The updated code is non-recursive, using a constexpr loop instead of
template recursion.
This should fix
[flang-x86_64-windows](https://lab.llvm.org/buildbot/#/builders/166)
[2 lines not shown]
[mlir][tosa] Lower concat to tensor.concat (#231726)
Lower `tosa.concat` directly to `tensor.concat` instead of expanding it
into `tensor.empty` and `tensor.insert_slice` operations.
Update the TosaToTensor conversion tests to check the resulting concat
operations.
[lldb][test] Disable TestLldbGdbServer.py test_Hg_fails_on_minus_one_pid (#234129)
On Windows. It is flaky in GitHub CI and likely not specific to one
architecture. See #138085.
Relates to #232235.
[LoopPeel] Add tests for peeling last iter of already peeled loops. (#234128)
Add tests where peeling from the front is rejected because the loop has
already been peeled, with and without a compare that can be eliminated
by peeling the last iteration.
Aided by Opus 5.5
[AArch64][llvm] Fix incorrect diagnostic (index/immediate in simm9)
Improve the error message in the simm9 diagnostics and use the word
'immediate' instead of 'index'. This was noticed when creating the
CFLT instructions for Armv9.8-A, but would have caused a lot of
unrelated churn if merged as part of that change.
Co-authored-by: Martin Wehking <martin.wehking at arm.com>
x11/owe: New port: High-performance wallpaper engine for Omarchy (video, GIF, stills)
owe is the wallpaper engine of the Omarchy desktop. A small daemon
(owed) follows the Omarchy background symlink and Hyprland state, and
drives a renderer (owe-render) that draws MP4 or GIF video through
libmpv, or still images, on wlr-layer-shell background surfaces. It
pauses playback for fullscreen windows, blocklisted processes, battery
power and idle, and exports a frame feed for the lock screen.
WWW: https://github.com/omacom/owe
Reported by: jkh (new maintainer)
Pull Request: https://github.com/freebsd/freebsd-ports/pull/630
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
graphics/tensaku: New port: Screenshot annotation tool for Wayland
Tensaku is a screenshot annotation tool for Wayland compositors. It
opens a captured image in a GTK4 layer-shell editor with arrows, boxes,
text, highlights, blur, and numbered markers, and copies or saves the
result. Omarchy uses it as the editor behind its screenshot shortcuts.
WWW: https://github.com/jondkinney/tensaku
Reported by: jkh (new maintainer)
Pull Request: https://github.com/freebsd/freebsd-ports/pull/630
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
x11/owe-lockfeed: New port: Lock screen video feed QML module for the owe wallpaper engine
Owe.LockFeed is a QML module that shows the live video frame of the owe
wallpaper engine on a Qt Quick lock screen. It connects to the
owe-render feed socket and maps the shared-memory frames it receives
into a scene graph texture, so the lock screen shows the same moving
wallpaper as the desktop without decoding the video a second time.
WWW: https://github.com/omacom/owe
Reported by: jkh (new maintainer)
Pull Request: https://github.com/freebsd/freebsd-ports/pull/630
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
editors/omawrite: New port: Dead-simple Markdown writing app built with Qt Quick
Omawrite is a dead-simple, distraction-free Markdown writing app built
with Qt Quick. It offers live Markdown syntax highlighting, follows the
system light/dark theme via the XDG desktop portal, and ships its own
embedded iA Writer Mono font. It is part of the Omarchy desktop.
WWW: https://github.com/omacom-io/omawrite
Reported by: jkh (new maintainer)
Pull Request: https://github.com/freebsd/freebsd-ports/pull/630
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
multimedia/omacut: New port: Dead-simple video length trimmer built with Qt Quick and FFmpeg
Omacut is a dead-simple video length trimmer built with Qt Quick. Open a
video, drag the in and out points on the thumbnail strip, and export the
trimmed clip. Probing, thumbnails and the actual cut are done by the
ffmpeg and ffprobe command-line tools. It is part of the Omarchy
desktop.
WWW: https://github.com/omacom-io/omacut
Reported by: jkh (new maintainer)
Pull Request: https://github.com/freebsd/freebsd-ports/pull/630
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
editors/omarchy-nvim: New port: LazyVim based Neovim configuration from Omarchy
omarchy-nvim is the Neovim configuration shipped with Omarchy: the
LazyVim starter configuration plus Omarchy customizations (live theme
reloading, transparency, a remote-session clipboard provider and a few
defaults).
WWW: https://github.com/omacom/omarchy-pkgs
Reported by: jkh (new maintainer)
Pull Request: https://github.com/freebsd/freebsd-ports/pull/630
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[mlir][SPIR-V] Add Volatile function parameter round-trip tests (#232195)
The deserializer accepts Volatile function parameter decorations since
#230611 made it keep every unit decoration. Add round-trip tests for
function definitions and imported declarations, including Volatile
combined with Alignment and FuncParamAttr decorations, so the Volatile
path is covered explicitly.
graphics/omasnap: New port: Native Wayland screenshot and annotation overlay for Hyprland
Omasnap is a native Wayland screenshot and annotation overlay built for
Hyprland and the Omarchy desktop. It captures the screen through the
ext-image-copy-capture protocol, then lets you crop, draw, highlight,
blur, add text, OCR a region with Tesseract, pin snapshots on screen and
copy or save the result.
WWW: https://github.com/omacom/omasnap
Reported by: jkh (new maintainer)
Pull Request: https://github.com/freebsd/freebsd-ports/pull/630
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
x11/hyprland-preview-share-picker: New port: Hyprland screen share picker with window and monitor previews
hyprland-preview-share-picker is an alternative screen share picker for
xdg-desktop-portal-hyprland. It shows live previews of windows and
monitors in a GTK4 layer-shell dialog, supports region selection through
an external tool such as slurp, and is styled with SCSS and configured
through a YAML file described by an installed JSON schema.
WWW: https://github.com/WhySoBad/hyprland-preview-share-picker
Reported by: jkh (new maintainer)
Pull Request: https://github.com/freebsd/freebsd-ports/pull/630
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>