[Github] Label `VectorTo*` conversion PRs as `mlir:vector` (NFC) (#241352)
The `VectorTo*` conversion directories (e.g., `VectorToLLVM`,
`VectorToGPU`) do not match the existing `mlir/**/*Vector/**` glob, so
PRs touching them (e.g., #238761, #241078) were not labeled
`mlir:vector`. Match them explicitly so they are picked up by the
[Vector project board](https://github.com/orgs/llvm/projects/68/).
Follow-up to #238387.
Signed-off-by: Federico Bruzzone <federico.bruzzone.i at gmail.com>
Per discussion w/ Tsutsui-san, switch hp300 to the new pmap_68k.
There are still issues with old HP MMU systems, but those systems
currently have problems even with the old pmap, and because there
is no design issue with the new pmap and the HP MMU, we should not
let these old, rare machines block the switch for everything else.
pmap_changebit(): The CPUSHP is only necessary on the 68040/68060 if
the critical page attributes (W, CM) have changed; if we're just
clearning U or M, it can be skipped.
While here, simplify the initialization of proto-PTEs; PTE40_CM_WT == 0,
so we don't actually need a separate case for it that's distinct from the
non-PTE51_CI for the other MMUs variants.
nuageinit: Add support for uid
Adds support for specifying an explicit UID when creating users through nuageinit. Both numeric and string UID values are supported. Invalid or negative UIDs are rejected. The new uid option is documented in nuageinit(7). Existing automatic UID allocation remains unchanged when no UID is specified. A UID already in use or out of range is left to pw(8) to reject.
PR: 293716
Reported by: Einar Bjarni Halldórsson <einar at isnic.is>
Reviewed by: dtxdf, bapt
Signed-off-by: Kushagra Chauhan <zenzesama at gmail.com>
Differential Revision: https://reviews.freebsd.org/D61174
[flang][OpenMP] Lower iterator modifiers in map and motion clauses
An iterator modifier on a MAP, TO, or FROM clause expands each list item into
one locator per iterator value, so a single clause can map or update
scattered elements such as `a(idx(i))` without listing them or transferring
the whole array. The OpenMP dialect represents these entries since #197047;
this patch lowers them from Flang for TARGET DATA, TARGET ENTER/EXIT DATA,
and TARGET UPDATE.
For example, `!$omp target update to(iterator(i=1:n): a(i), b)` becomes:
entries = omp.iterator(i = 1 to n) {
yield map_info(base = a, bounds = element i)
}
target_update(iterated_maps = entries, ordinary_maps = [b])
Each locator is expanded only over the iterators it references, and locators
without one are mapped as before. Keeping the array base and selecting
elements or sections through map bounds handles explicit-shape and
[12 lines not shown]
p1003_1b: Add capability mode checks
The sched_* syscalls can operate either on the calling process (by
setting pid = 0) or by specifying a pid. They are allowed in capability
mode, but previously were not scoped to only operating on the calling
process.
Reviewed by: olce
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57346
[NvlinkWrapper] opt-remarks-filter -> opt-remarks-passes (#241045)
`renderRemarksOptions` in Clang's `CommonArgs.cpp` translates
`-foptimization-record-passes` to `--plugin-opt=opt-remarks-passes`.
`lld` expects that, but `clang-nvlink-wrapper` currently expects
`--plugin-opt=opt-remarks-filter` instead, producing errors like:
```
clang-nvlink-wrapper: Unknown command line argument opt-remarks-passes=inline
```
In `NVLinkOpts.td` for `clang-nvlink-wrapper`, this patch adds
`--plugin-opt=opt-remarks-passes` and makes
`--plugin-opt=opt-remarks-filter` an alias. If there are no users of the
latter, we can consider removing it.
Assisted-by: LLM
[CIR] Make cir.condition exit to the loop, not to itself (#240971)
The loop-exit successor of `cir.condition` was
`RegionSuccessor(getOperation())`, which names the condition op instead
of the loop around it. An operation successor names the op that control
resumes after, and the loop's own `getSuccessorRegions` names the loop
for the same edge. MLIR's dataflow analyses use that op.
DeadCodeAnalysis recorded the exit as a predecessor of the point after
`cir.condition`, so dense analyses never saw control leave a
`cir.while`, `cir.for` or `cir.do` without a cleanup region. The forward
state after such a loop kept its initial value, and the backward state
at the condition ignored the code after the loop. The fix names the
loop. The control-flow unit test hid the mismatch because it compared op
and terminator successors by region only. It now compares whole
successors, so it fails without the fix.
For example, in this function:
```mlir
[20 lines not shown]
[mlir][SPIR-V] Add pattern rollback option to convert-spirv-to-llvm (#241149)
Mirror the option in convert-to-llvm, convert-gpu-to-nvvm and
convert-scf-to-cf
On SPIR-V modules disabling rollback cuts executed CPU instructions in
this pass by 23% (26% on modules > 16 KB), with output equal after
instsimplify
NAS-145034 / 27.1.0 / reuse restic parents across snapshot paths (by tyvsmith) (#20191)
- avoid rereading unchanged files when timestamped snapshot paths
prevent restic parent matching
- group by host and task tag to keep parent selection isolated between
tasks
## Validation
- exercised an equivalent patch on a running TrueNAS 25.10.7 system with
restic 0.16.4: a snapshot backup of 113,790 files went from 804s to
145s, reusing all file data
- verified parent IDs in an isolated repository using the upstream
command builder: subsequent backups selected the same task's parent
across changing paths, even when another task had a newer backup
- changed a file, backed it up, and compared restored contents byte for
byte
- checked that non-snapshot, absolute-path, and zvol commands remained
unchanged
[12 lines not shown]
devel/py-opentelemetry-semantic-conventions: import py-opentelemetry-semantic-conventions-0.66b2
This library contains generated code for the semantic conventions
defined by the OpenTelemetry specification.
[CopyProf] Intercept new/delete and track per-object cost.
This intercepts the C++ `new` and `delete` operators, so that all
heap memory owned by a copy is tracked.
Using per-object state tracking, reports now tell the user how much
accumulated memory a copy is worth and whether it allocated.
This is useful for filtering of reports.
RFC: https://discourse.llvm.org/t/rfc-copysanitizer-csan-detecting-unneccessary-object-copies-at-runtime/91038
Attributor: Only seed AAAddressSpace if there is a flat address space
AAAddressSpace was created for the pointer operand of every load and store,
but without a flat address space it gives up in initialize. Don't seed it
in that case; it is still created on demand. NFC.
CTMark instructions:u with -attributor-enable=full:
O3: -0.05%
ThinLTO: -0.18%
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[CopyProf] Intercept C heap functions. (#235454)
A copy that owns heap memory is only unnecessary if that memory is not
modified either. This intercepts the libc heap functions and routes them
to the CopyProf allocator, which marks memory allocated while copying as
copy, and checks the shadow memory of memory freed during destruction.
Memory allocated inside a d'tor is marked as copy as well, so that
freeing temporaries does not suppress reports.
Now that `malloc` is intercepted, `strndup` and `realpath` are
intercepted as well.
RFC:
https://discourse.llvm.org/t/rfc-copysanitizer-csan-detecting-unneccessary-object-copies-at-runtime/91038
Stack: #237763 → #232851 → #235453 → #235454 (this PR) → #235455
NAS-140886 / 27.0.0-BETA.1 / Simplify `LongString` (#18887)
Our current `LongString` implementation boxes all strings in
`LongStringWrapper`. Sometimes it's transparent, but sometimes we need
to unbox it explicitly, which leads to quite ugly code. This is a better
implementation that does not need that.
(cherry picked from commit 4cab7ceb0073f176525771847ac013d1341b12c8)