[MIPS][clang] make `_Complex` ABI match GCC (#212119)
fixes https://github.com/llvm/llvm-project/issues/212109
From the edits to the release notes:
- On MIPS, a `_Complex` value with an integer element type is now
returned packed
into a single integer register when it fits in one, matching GCC. A
`_Complex char` or
`_Complex short`, and on N32/N64 also a `_Complex int`, is no longer
returned
with one part per register. `-fclang-abi-compat=23` restores the
previous
behavior. (#GH212109)
- On MIPS N32/N64, a `_Complex float` or `_Complex double` argument is
now packed
into integer registers, or onto the stack, once there is no longer room
[5 lines not shown]
[AArch64] NFC: simplify isCopyInstrImpl expression (#212487)
To something more intuitive by applying the following logic:
* `!isVirtual()` -> `isPhysical()`
* `!isPhysical()` -> `isVirtual()`
* `(a || b) && (!a || c)` -> `(!a && b) || (a && c)`
[libc++][NFC] Clean up atomic_support.h (#212464)
We don't support any compilers which don't have the atomic builtins, so
we don't need to check whether they exist. There is also no need for an
anonymous namespace, since all the functions are inline.
[mlir][toy] Fix Ch6/Ch7 llvm-lowering tests (#212118)
Add missing `| FileCheck %s` to `RUN` lines so `CHECK` lines can be
verified. Also correct the expected result from `30` to `36`. The result
should be `6*6=36`.
The example in the tutorial is correct (`3.600000e+01`).
https://mlir.llvm.org/docs/Tutorials/Toy/Ch-6/
Signed-off-by: Felix Ye <felixyjs at gmail.com>
[lldb][NFC] Explicitly list unsupported DWARF expression opcodes (#210363)
This PR addresses
[#202251](https://github.com/llvm/llvm-project/issues/202251).
Several opcodes recognized by LLDB's DWARF expression decoding logic
currently have no explicit `case` in `DWARFExpression::Evaluate`. They
therefore reach the generic default path, which makes it unclear whether
their evaluator status is intentional or an omission.
Explicitly list the affected opcodes and group them with the existing
`DW_OP_xderef`, `DW_OP_xderef_size`, `DW_OP_call2`, and `DW_OP_call4`
cases. All twelve known but unsupported opcodes now share an
`unimplemented opcode` return, while `default` remains responsible for
unknown and vendor-handled opcodes. No opcode evaluation semantics
change.
The affected opcodes are `DW_OP_call_ref`, `DW_OP_constx`,
`DW_OP_const_type`, `DW_OP_regval_type`, `DW_OP_deref_type`,
[7 lines not shown]
[VPlan] Compute cost of some VPWidenIntOrFpInductions in VPlan (#202232)
Add initial implementation of VPWidenIntOrFpInductionRecipe::computeCost,
handling un-truncated inductions.
For the first patch, only compute costs in VPlan if there are no
truncated inductions (in that case, there are additional differences for
the cost model, as previously we would not cost the truncate properly)
and the vector loop won't get unrolled (no induction cost).
Note that some decision change. This is due to the legacy cost model
computing the cost of the original IR, where the induction is scaled in
the loop in each iteration (e.g. with mul), while in the vector loop we
scale the increment, and there is just an add to increment the
induction. This is more accurate than the legacy cost computation.
PR: https://github.com/llvm/llvm-project/pull/202232
[SLP]Initial support for copyables in fmuladd intrinsic
Adds llvm.fmuladd as a main operation for copyable elements. A
non-fmuladd lane V is modeled as fmuladd(0.0, -0.0, V), which equals
-0.0 + V == V for every V. Only the addend operand is supported for
now; multiplicand operands may be added later.
Reviewers: bababuck, hiraditya, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/211245
clang: Use NVPTX TargetParser for OpenMP unified-addressing check
processRequiresDirective enumerated every OffloadArch value in a switch
only to error on nvptx architectures older than sm_60. Replace it with
NVPTX::supportsUnifiedAddressing() applied to the parsed target CPU so
we don't need to keep adding cases here every time a new target is
added.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[flang] Remove legacy stack-arrays and memory-allocation-opt passes
The unified allocation-placement pass now supersedes both the heap-to-stack
stack-arrays pass and the stack-to-heap memory-allocation-opt pass, and is the
default in the FIR optimizer pipeline. Remove the two legacy passes: their
TableGen definitions, the MemoryAllocation.cpp source, the memory-allocation-opt
command-line options, the enable-allocation-placement fallback switch, and the
addMemoryAllocationOpt pipeline helper. The pass-only portions of
StackArrays.cpp are dropped while its analysis and rewrite pattern, now shared
with allocation-placement, are kept.
The legacy tests are retargeted onto allocation-placement to show it reproduces
both prior behaviors: the stack-arrays tests use "stack-arrays=true", and the
memory-allocation-opt tests use the default policy (runtime-sized and big
constant-size temporaries go on the heap).
[flang] Enable allocation-placement pass by default
Make the unified allocation-placement pass the default in the FIR optimizer
pipeline in place of the legacy stack-arrays and memory-allocation-opt passes,
by defaulting -enable-allocation-placement to true. Passing
-enable-allocation-placement=false restores the legacy passes for comparison.
Add a -disable-allocation-placement switch that skips the pass entirely (wired
through addAllocationPlacement like the other optimizer passes), so codegen
tests can opt out of placement policy independently of the legacy fallback.
Update the pipeline-dump tests to expect AllocationPlacement, and disable the
pass in the alloca/allocmem codegen tests (alloc.fir, coordinateof.fir) so they
keep testing lowering rather than placement policy. Document the unified pass,
its policy, thresholds, and options in fstack-arrays.md.
[flang] Wire allocation-placement into the optimizer pipeline (default off) - memory passes unification [3/5] (#210745)
Add a hidden -enable-allocation-placement flag that, when set, replaces
the stack-arrays and memory-allocation-opt passes in the default FIR
optimizer pipeline with the unified allocation-placement pass. The flag
is off by default, so the legacy passes remain the default path and
behavior is unchanged.
When enabled, the pass runs with its default byte-size thresholds; the
-fstack-arrays strategy is forwarded through the new stackArrays option.
Assisted-by: AI
[lldb] Fix crash on creating string error (#212503)
It crashes because the `default` error string may not be a format string
compared to the `fallback` error string
textproc/treemd: update to 0.6.0
[0.6.0] - 2026-07-22
Added
- Remote Markdown documents - Open https:// URLs directly or use github:owner/repo shorthand to browse a repository's README
- GFM and Obsidian callouts - Render blockquote callouts such as > [!NOTE] with dedicated labels and styling
- Generated man pages - treemd --man-page prints a complete manual page suitable for installation with man
- Query-language documentation and integration coverage - Added user and implementation guides plus end-to-end fixtures for selectors, pipelines, expressions,
and section extraction
Changed
- Query evaluation and section extraction were unified - Chained selectors and pipelines now preserve their input context, while all heading-based extraction
uses the parser's byte offsets and code-block-aware structure
- Interactive editing is transactional - Checkbox and table edits are computed by pure, fence-aware transforms and recorded only after a successful edit; live
reload refuses to overwrite buffered changes
- TUI interaction was modernized - Esc consistently backs out, q quits, text-entry fields share editing shortcuts, status messages have a unified lifecycle,
and help/footer/palette content follows the active keybindings and theme
[19 lines not shown]
shells/oh-my-posh: update to 29.37.0
Features
add darken() and lighten() color shade functions (273394c), closes #7725
jujutsu: expose change ID prefix and rest (e84d617)
NVPTX: Add target names in TargetParser
Track the canonical sm name and other target information.
This will eventually be used to reduce the pain of maintaining
OffloadArch in clang; all of the dijoint targets share an
enum which makes target specific covered switches annoying.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
graphics/tesseract: unbreak build/packaging (+)
tesseract 5.5.3 now require asciidoctor to generate manpages instead of old asciidoc
Point port to textproc/rubygem-asciidoctor to get a right tool
PR: 297131
Approved by: portmgr blanket (fix build/packaging)
Switch rad and ractl to use imsgbuf_get.
Trivial conversion since the imsg_get return value is only used to check
for error and an empty queue.
OK florian@