[AArch64] Enable subreg liveness tracking for streaming functions.
Most use of subreg liveness tracking will be for streaming SME2 functions
where it can use the strided- and contiguous form of the multi-vector LD1,
see #123081 for details.
[AArch64] Add new pass after VirtRegRewriter to add implicit-defs
When SubRegister Liveness Tracking (SRLT) is enabled, this pass adds extra
implicit-def's to instructions that define the low N bits of a GPR/FPR
register to represent that the top bits are written, because all AArch64
instructions that write the low bits of a GPR/FPR also implicitly zero the
top bits.
These semantics are originally represented in the MIR using `SUBREG_TO_REG`,
but during register coalescing this information is lost and when rewriting
virtual -> physical registers the implicit-defs are not added to represent
the the top bits are written.
There have been several attempts to fix this in the coalescer (#168353),
but each iteration has exposed new bugs and the patch had to be reverted.
Additionally, the concept of adding 'implicit-def' of a virtual register
during the register allocation process is particularly fragile and many
places don't expect it (for example in `X86::commuteInstructionImpl` the
code only looks at specific operands and does not consider implicit-defs.
[9 lines not shown]
[AArch64] Let LoadStoreOptimizer handle renamable implicit-defs.
The LoadStoreOptimizer is very conservative with handling instructions
that have implicit-def operands, and only support them for 2 instructions.
However, they can be considered also when marked explicitly as 'renamable'.
[clang-doc] Add friends to class template
This patch also allows comments to be associated with friend
declarations. Currently, it seems like the comments for friend `RecordDecl`
are taken from the actual class declaration, while a friend
function's comments are taken from the actual `friend` declaration.
Unexport ASN1_LONG_UNDEF
This is another one of these weird magic values that nothing outside
of libcrypto uses. Fix a confusing comment in long_i2c() while there.
The skipping behavior is used in particular for omitting the optional
length value in the non-standard OpenSSL-specific DHparam() ASN.1
encoding.
ok jsing kenjiro
[X86][NewPM] Port x86-cf-opt to the New Pass Manager (#174168)
Refactors the pass, adds a NewPM wrapper, and adds test coverage,
similar to previous pass portings.
linuxkpi: Don't clobber result on failure
In kstrto*(), don't assign to *res until we know the conversion is
successful, and address issues that may result in warnings if code
that uses <linux/kstrtox.h> is compiled at high warning levels.
MFC after: 1 week
Sponsored by: Klara, Inc.
Sponsored by: NetApp, Inc.
Reviewed by: bz, emaste
Differential Revision: https://reviews.freebsd.org/D54440
www/gitlab: fixed regressions from
9c7ec30e93f9d4bcf7dd7b213b582ac05138e31fb38ff7a19b6c3dbe3007d1f88d12e600b5a288a8
Could not find compatible versions
Because every version of gitlab-backup-cli depends on bigdecimal ~> 3.1
and bigdecimal >= 3.1, < 4.A could not be found in locally installed gems,
gitlab-backup-cli cannot be used.
So, because Gemfile depends on gitlab-backup-cli >= 0,
version solving has failed.
*** Error code 6
[AMDGPU][NewPM] Format llc-pipeline-npm.ll better (#174161)
This patch makes it so that we print the passes on separate lines which
makes it much easier to read the piepline and look at diffs with most
tooling.