[LV] Add more tests for FP min/max select rdx without fast-math (NFC) (#242708)
Add tests for select-based FP min/max reductions without fast-math with
data and data-and-control tail folding, that must stay scalar
(ppc_fp128, flushed input or output denormals), with -0.0, NaN and
non-constant double start values, with ninf and nnan selects, with a max
and a min reduction of the same value, together with a maxnum reduction,
and interleaved with VF 1.
math/octave-forge-octave_mermaid_js: Update to 2.0.0 and deprecate.
The latest version of the port seems to require RUN_DEPENDS currently
unavailable on FreeBSD. Anyone who can help is asked to either take
maintainership, or contact the current maintainer.
[CIR] Keep volatile and atomic return loads before cleanups
When FlattenCFG routes a cir.return through a cleanup, it sinks a load
of an entry-block alloca that feeds the return into the block after the
cleanup. For a volatile or atomic load this moved the access past the
cleanup code. Such a load is now spilled to a temporary before the
cleanup, like any other return operand.
Assisted-by: Claude Code (claude-opus-5-5).
[CIR] Keep volatile and atomic return loads before cleanups
When FlattenCFG routes a cir.return through a cleanup, it sinks a load
of an entry-block alloca that feeds the return into the block after the
cleanup. For a volatile or atomic load this moved the access past the
cleanup code. Such a load is now spilled to a temporary before the
cleanup, like any other return operand.
Assisted-by: Claude Code (claude-opus-5-5).
[CIR] Report side effects of volatile loads and memory asm operands
cir.load, cir.get_bitfield and cir.matrix.column_major_load declared only
a read of their address, so dead code elimination erased them when the
result was unused, even when the load was volatile or atomic. A cir.asm
with a memory operand such as "=*m" and no result was erased the same
way. A volatile or atomic load now also reports unknown read and write
effects, as the LLVM dialect does, and an inline asm reports a read and
a write of each memory operand. The new InlineAsmOp::isMemoryOperand
names the operand_attrs encoding of memory operands; the LLVM lowering
uses it too. A cir.asm verifier now checks that operand_attrs has one
entry per operand, each a unit attribute on a pointer operand or an
empty dictionary.
Assisted-by: Claude Code (claude-opus-5-5).
[CIR] Report unknown effects of volatile and atomic stores
cir.store, cir.set_bitfield and cir.matrix.column_major_store declared
only a write of their address, so alias analysis treated a volatile or
atomic store as touching nothing else. Like llvm.store, a volatile or
atomic store now also reads and writes unknown memory. The load effect
helper is generalized to take the access effect and serves both loads
and stores. A new isVolatileOrAtomic() on cir.load and cir.store
replaces the hand-written check in the effects, mem2reg, CIRSimplify
and the ABI rewriter.
Assisted-by: Claude Code (claude-opus-5-5).
[Support] Reject library options in cl::ParseCommandLineOptions (#242689)
Make only cl::parseCommandLineOptions, which takes a context, recognize
library options. The legacy cl::ParseCommandLineOptions now reports
library options as unknown.
cl::ParseCommandLineOptions still has many call sites. Tools that need
library options should switch to cl::parseCommandLineOptions.
LLM-aided