security/sequoia-chameleon-gnupg: re-update some more crates
Most notably, the downgrade of nettle-sys in the process of updating
libc broke the build.
Pointy-hat to: asomers
man4: Install mgb.4 on all architectures
mgb(4) is not x86-only now, so install its manpage everywhere and make
if_mgb.4 link creation work, which is already on all architectures.
Sponsored by: The FreeBSD Foundation
man4: Install mgb.4 on all architectures
mgb(4) is not x86-only now, so install its manpage everywhere and make
if_mgb.4 link creation work, which is already on all architectures.
Sponsored by: The FreeBSD Foundation
[LiveDebugValues] Add a limit on the number of stack slot indexes (#225950)
MLocTracker reserves a machine location for every subregister index of
every tracked stack slot, so on targets with a large number of
subregister indexes the memory and time cost of spill tracking grows
sharply.
Add -livedebugvalues-max-stack-slot-idxes as a counterpart to the
existing -livedebugvalues-max-stack-slots, stopping spill tracking when
a target exceeds it.
[AMDGPU][CodeGen] Split downward RP tracker auto/manual modes (NFC) (#231862)
Many of the core methods of `GCNDownwardRPTracker` use a combination of
a `*MI` and `UseInternalIterator` arguments to determine whether they
should rely on program order or use user-provided instructions to
determine the next instruction to advance over to compute RP changes.
This ties two different use cases together that should never mix, and I
find that it makes it hard to track what is happening.
This splits the two use cases cleanly using different classes inheriting
from a new base class `GCNDownwardRPTrackerBase`.
- `GCNDownwardRPTracker` (same class name as before) now only supports
iteration following program order (`UseInternalIterator==true`).
- `GCNManualDownwardRPTracker` only supports iteration following
user-provided MIs. This only has one usage, in the scheduler.
I find this simplifies the code significantly. It also eliminates a
useless call to `advanceBeforeNext` that happened when
`UseInternalIterator==false` in the `advance` method.
[bazel][libc] Add missing deps to __support_printf_core_printf_converter (#232407)
#230246 (509679cf9c9d) added includes of
src/__support/CPP/type_traits.h, src/__support/wctype_utils.h, and
hdr/types/size_t.h to printf_core converter headers.
Add the corresponding :__support_cpp_type_traits,
:__support_wctype_utils, and :types_size_t dependencies to
__support_printf_core_printf_converter in libc/BUILD.bazel.
[LAA] Add tests for retrying runtime checks with accesses (NFC) (#232103)
When retrying with runtime checks, all accesses of DepCands classes with
unknown dependences are checked against each other, including pairs for
which the checks always fail.
RegAllocGreedy: Skip redundant hint recoloring walks (#231099)
Each broken hint starts a walk over its copy-connected registers. When
many broken hints share one large component, as happens after PHI
elimination splits many critical edges into a block, the same component
is walked over and over, which is quadratic.
A walk that recolors nothing changes no assignments, so a later walk
from any register it reached would also recolor nothing. Skip those
seeds until the next recoloring.
On a stress test with 4000 split critical edges, Greedy drops from 40.8G
to 3.8G instructions.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[mlir][vector] Preserve dynamic mask bounds in shape cast folding (#229699)
Fixes `ShapeCastCreateMaskFolderBoundaryUnitDim` so that folding
`vector.shape_cast` across `vector.create_mask` only removes boundary
unit dimensions when every corresponding mask bound is known to be
constant one.
The fix:
- inspects exactly `numDimsToDrop` mask operands,
- rejects the rewrite if any removed `vector.create_mask` bound is not
constant one,
- fixes the analogous slice calculation for `vector.constant_mask`.
Adds regression tests covering leading, trailing, and mixed dynamic mask
bounds.
Fixes #229017.
Co-authored-by: Purnima Shrivastava <purnimashrivastava05@.com>
[Clang] [CUDA] Fix lambda numbering for reopened namespaces (#231606)
Have `getManglingNumberContext()` use the primary `DeclContext` to make
sure that reopened namespaces share a mangling context; otherwise, we
may end up with symbol collisions between lambdas in different namespace
blocks.
Fixes #231096.
Assisted-by: Codex
[flang-rt] Fix FORT_CONVERT_UNIT parsing hang when strtok_r nulls the save pointer (#230736)
The test fort_convert.f90 hangs on AIX. ParseFortConvertUnit() checks
whether the save pointer is null to decide if a call to strtok_r (or
strtok_s) is the first one. This depends on the value of the save
pointer, which POSIX leaves unspecified. glibc happens to leave it
pointing at the terminating '\0' after the last token. Other libc (e.g.
AIX) set it to null instead. With those libraries, the next call passes
the original string again and tokenizing starts over from the beginning.
The fix is to call strtok_r by passing the string on the first call and
nullptr on every call after that, without looking at the save pointer.
https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html
Assisted-by: IBM Bob
[CodeGen,MC] Make CodeGenOptions and MCCLOptions per-context (#232365)
Follow-up to #232210: drop perContext = false from CodeGenOptions and
MCCLOptions.
* TargetPassConfig stores `Opts` as a member; a callDefaultCtor
specialization replaces its default constructor.
* MCSchedModel::getResourceBufferSize takes the reservation station
scale factor. llvm-mca passes it through mca::PipelineOptions to the
ResourceManager and to its scheduler and timeline views. InstrBuilder
and TargetSchedModel only distinguish sizes -1, 0, and 1, which
scaling preserves, so they read the unscaled BufferSize.