Mk/bsd.port.mk: Drop the strip parameter from PATCHFILES passed to do-fetch.sh
After recent changes to handling of do-fetch.sh in bsd.port.mk, the
strip parameters (e.g., ":-p1") are no longer dropped before do-fetch.sh
receives patch files.
As a result, a strip parameter of a patch file might be interpreted as a
group instead and get prepended to the patch file, resulting in warnings
like:
```
$ make makesum
===> License MIT accepted by the user
=> e3efbb5923f638b38087a3f616906d9d4fdaf6f2.patch doesn't seem to exist in /var/cache/distfiles.
=> Attempting to fetch p1e3efbb5923f638b38087a3f616906d9d4fdaf6f2.patch
fetch: p1e3efbb5923f638b38087a3f616906d9d4fdaf6f2.patch: No such file or directory
```
Reviewed by: mat
[4 lines not shown]
[Support] Correct UTF-8 error handling in ConvertEBCDIC (#185176)
`ConverterEBCDIC::convertToEBCDIC()` previously decoded only ASCII and
UTF-8 sequences beginning with `C2` or `C3`. Consequently, an incomplete
three- or four-byte sequence was reported as
`std::errc::illegal_byte_sequence`, even though the `TextEncoding`
contract uses `std::errc::invalid_argument` for incomplete input.
Decode each UTF-8 sequence using LLVM's shared `convertUTF8Sequence()`
utility before checking whether the decoded code point is supported by
the EBCDIC-1047 conversion table.
The resulting error handling is:
- Incomplete prefixes that can still form valid UTF-8 return
`std::errc::invalid_argument`.
- Malformed UTF-8 returns `std::errc::illegal_byte_sequence`.
- Valid UTF-8 code points outside U+0000 through U+00FF return
`std::errc::illegal_byte_sequence`.
[11 lines not shown]
hn: Refresh VF RSS configuration after link recovery
A VF can finish initialization or reset recovery after hn's handoff-time
RSS query returned ENXIO. In that case hn suppresses synthetic receive
hash metadata, but previously left it disabled even after the VF could
answer the queries again.
Queue an RSS refresh on a VF link-up notification, using the existing VF
worker in both transparent and non-transparent modes. Revalidate the
association, active VF path, administrative state, and carrier under
hn_lock before querying and reconfiguring synthetic RSS. Coalesce the
requests with an atomic flag and retain a request while capability
forwarding temporarily excludes the worker. Keep the existing query
validity checks and unsupported-query fallback unchanged.
This is a one-shot refresh, not a readiness poll. Recovery without a
link-up notification, or a query that still fails during the refresh,
does not trigger another retry by itself. A later link-up or normal
handoff can query again. Consuming the request while the VF path is
[17 lines not shown]
hn: Refresh VF RSS configuration after link recovery
A VF can finish initialization or reset recovery after hn's handoff-time
RSS query returned ENXIO. In that case hn suppresses synthetic receive
hash metadata, but previously left it disabled even after the VF could
answer the queries again.
Queue an RSS refresh on a VF link-up notification, using the existing VF
worker in both transparent and non-transparent modes. Revalidate the
association, active VF path, administrative state, and carrier under
hn_lock before querying and reconfiguring synthetic RSS. Coalesce the
requests with an atomic flag and retain a request while capability
forwarding temporarily excludes the worker. Keep the existing query
validity checks and unsupported-query fallback unchanged.
This is a one-shot refresh, not a readiness poll. Recovery without a
link-up notification, or a query that still fails during the refresh,
does not trigger another retry by itself. A later link-up or normal
handoff can query again. Consuming the request while the VF path is
[17 lines not shown]
iavf: Reschedule pending virtchnl replies after the processing budget
The VC worker ignores the pending count returned by iavf_process_adminq.
If a pass exhausts its message budget, replies can remain in the receive
ring without another interrupt to schedule the worker. During init,
the iflib admin task cannot provide a backstop because init holds the
context lock while waiting for ENABLE_QUEUES to complete.
Reschedule the VC worker after a successful pass with messages remaining.
Keep the per-pass budget and do not retry AdminQ errors. Stop
self-rescheduling once detach clears INITIALIZED; the existing polling
and reset-recovery gates continue to exclude asynchronous processing.
Validation: reproduced the timeout on a three queue E835 VF under
Hyper-V. Temporary tracing showed a successful ENABLE_QUEUES reply
already in the guest receive ring after a three-message pass left two
messages pending. With the fix and no tracing, a GENERIC kernel with
WITNESS and INVARIANTS passed three batches of 30 down/up and MTU
1500/9000 cycles without enable/disable timeouts.
[3 lines not shown]
iavf: Reschedule pending virtchnl replies after the processing budget
The VC worker ignores the pending count returned by iavf_process_adminq.
If a pass exhausts its message budget, replies can remain in the receive
ring without another interrupt to schedule the worker. During init,
the iflib admin task cannot provide a backstop because init holds the
context lock while waiting for ENABLE_QUEUES to complete.
Reschedule the VC worker after a successful pass with messages remaining.
Keep the per-pass budget and do not retry AdminQ errors. Stop
self-rescheduling once detach clears INITIALIZED; the existing polling
and reset-recovery gates continue to exclude asynchronous processing.
Validation: reproduced the timeout on a three queue E835 VF under
Hyper-V. Temporary tracing showed a successful ENABLE_QUEUES reply
already in the guest receive ring after a three-message pass left two
messages pending. With the fix and no tracing, a GENERIC kernel with
WITNESS and INVARIANTS passed three batches of 30 down/up and MTU
1500/9000 cycles without enable/disable timeouts.
[3 lines not shown]
[CIR] Add cir.ptr_mask (#224143)
`cir.ptr_mask` ANDs a pointer with an integer mask and gives back a
pointer, lowering to llvm.intr.ptrmask. Paired with `cir.ptr_stride` it
rounds a pointer up to an alignment the way classic's
emitRoundPointerUpToAlignment does, without the round trip through an
integer that would lose provenance.
llvm.ptrmask needs the mask at exactly the target's pointer index width,
so the lowering extends or truncates it first. GEP takes an index of any
width, so `cir.ptr_stride` never needed this.
Assisted-by: Cursor / claude-opus-5
[X86][Hexagon] Remove the INSERT_VECTOR_ELT soft promotion workarounds (#223628)
SoftPromoteHalfOperand now handles INSERT_VECTOR_ELT, so neither target
needs to intercept the node on the scalar type to keep the type
legalizer from failing with "Do not know how to soft promote this
operator's operand!".
X86 did exactly what the generic code does: bitcast the vector to its
integer counterpart, insert an i16 and bitcast the result back. Hexagon
built the same vXi16 insert, and that one is still custom lowered
through the regular HVX path.
Both target hooks become unreachable once the operation actions are
gone, because the element operand is promoted to i16 before LegalizeDAG
runs, so drop them as well.
No codegen change: X86/bfloat.ll,
X86/vector-shuffle-combining-avx512bf16.ll and the autohvx tests that
insert into half or bfloat vectors (hfinsert.ll,
[13 lines not shown]
[clang][Sema] Fix tautological type check in sameFunctionParameterTypeLists (#224500)
hasSameType had duplicate parameters, which meant we weren't actually
checking if the function signatures are equal, so in the case they
aren't we could incorrectly accept ambiguous overload resolutions.
Fixes https://github.com/llvm/llvm-project/issues/224499
[TailRecElim] Handle discarded-call return conflicts with a shift accumulator (#221694)
Fixes a follow-up miscompile from #181331, reported by nikic in
https://github.com/llvm/llvm-project/pull/181331#issuecomment-5509668449,
similar but unrelated to #214503.
`findBaseCaseRetConstant` only scanned live `ret` instructions to check
that a shift accumulator's base case is consistent everywhere. A sibling
call site that discards its own recursive call and returns a fixed
constant is eliminated earlier, so its `ret` is already gone by the time
the scan runs. The scan missed it and `cleanupAndFinalize` would
silently replace that constant with the accumulator value.
With this PR we also check the false-value of already-inserted selects
for consistency, bailing out the accumulator transform on conflict.
---------
Signed-off-by: Federico Bruzzone <federico.bruzzone.i at gmail.com>
[offload] add context to olMemAlloc* (#222677)
This is the last part of the context refactor. This patch:
- Adds context param to all memory allocation functions.
- Routes ptr info through the plugins instead of a global map.
- Removes allocation tracking from liboffload.
- olGetMemInfo(OL_MEM_INFO_DEVICE) now returns INVALID_ARGUMENT for host
allocations, which have no per-device affinity.
Assisted-by: Claude Opus 4.7
[flang][cuda] Record implicit managed attribution in module files
An attribute the compiler applied under -gpu=mem:managed is written into the
module file the same way a user-written one is, so a reader cannot tell them
apart. It then treats the attribute as a user requirement: allocating such a
component in a DEVICE object is rejected, and the memory space the user did
ask for on the object no longer wins.
Spell the distinction in the module file as MANAGED(IMPLICIT), modelled on
INTENT(IN): CUDA-data-attr gains an optional parenthesized qualifier, carried
by a new CUDADataAttrSpec parse-tree node in AttrSpec and ComponentAttrSpec.
ATTRIBUTES(...) keeps the bare attribute, so the qualifier cannot be written
there.
The attribute itself is still written out, so a component keeps the same
memory space no matter which options a consumer is compiled with.
Also stop an implicitly applied attribute from making a module a definer of
CUDA symbols. Without this, adding -gpu=mem:managed to a module's build
rejects its OpenACC-only consumers over an attribute the user never wrote.
[SLP]Do not stop the seed scan when a dependent seed is skipped
The dependency check leaves the current window short, and the
not-enough-instructions exit then ends the whole start-position scan for
the current VF, so later independent operations are never tried. Keep
scanning from the next position when the shortfall was caused by a
skipped dependent seed.
Fixes #224286
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/224606