[NFC][AArch64] ConditionOptimizer: refine cmp/cond instruction update code (#186724)
Split modifyCmp() into updateCmpInstr() and updateCondInstr() to
separate the concerns of updating the compare and its controlling
conditional. Rename parseCond() to parseCondCode() and return the
CondCode directly rather than via an out-parameter.
Also add applyCmpAdjustment() to pair the two update calls at a higher
level of abstraction, reducing call site verbosity.
[libc++][NFC] Rename the template parameter of __make_transparent (#186435)
Renaming from _Tp to _ArgumentType makes it clearer that we're passing
the argument type intended for the comparator, which allows checking
whether *that specific use* of the comparator would be transparent.
Fixes #186396
Reland "[DomTree] Assert non-null block for pre-dom tree" (#187005)
Reland #186790 with fix for SCEV. A loop can have more than one latch,
in which case getLoopLatch returns null.
[AMDGPU][GlobalISel] Add RegBankLegalize rules for atomic fmin/fmax (#182824)
Add register bank legalization rules for
G_ATOMICRMW_FMIN/G_ATOMICRMW_FMAX (flat, global, LDS) and
G_AMDGPU_BUFFER_ATOMIC_FMIN/G_AMDGPU_BUFFER_ATOMIC_FMAX (S32 and S64)
under -new-reg-bank-select. Update existing GlobalISel tests to use the
new pass and add a new MIR test for register bank assignment.
audio/exaile: fix runtime with recent gstreamer update
Gstreamer 1.28 introduced breaking change to python API, so add a quick
fix obtained from here: https://github.com/exaile/exaile/issues/999
Reported by: Keith <ukyo-nyan at theia.ocn.ne.jp> (private email)
[CIR][AArch64] Upstream NEON shift left builtins (#186406)
This PR adds CIR generation for the following AArch64 NEON builtins:
__builtin_neon_vshld_n_s64 and __builtin_neon_vshld_n_u64 (constant
shifts)
extracted the constant value and use it directly for shift left
__builtin_neon_vshld_s64 and __builtin_neon_vshld_u64 (variable shifts)
there is an existing function to handles SISD (SIngle Instruction Single
Data), reusing this to create the right CIR instructions
__builtin_neon_vshld_s64 -- call i64 @llvm.aarch64.neon.sshl.i64(i64
[[A]], i64 [[B]])
__builtin_neon_vshld_u64 -- call i64 @llvm.aarch64.neon.ushl.i64(i64
[[A]], i64 [[B]])
[18 lines not shown]
[MLIR][Interfaces] Make `getMutableSuccessorOperands` overridable on `ReturnLike` ops (#186832)
Move the `getMutableSuccessorOperands` implementation from `ReturnLike`
trait to the `RegionBranchTerminatorOpInterface` to allow overriding of
the implementation. This allows to have the trait on operations that are
not a return of all of their operands. This can be used, for example, to
implement custom `ReturnLike` terminator that consumes non-returned
operands in combination with `func.func`.
The `RegionBranchTerminatorOpInterface` now provides a default
implementation for the `getMutableSuccessorOperands` method that returns
all of the operands.
[sancov] add -fsanitize-coverage=trace-pc-entry-exit (#185972)
Add a SanCov flag for calling dedicated hook functions on function entry
and exit. This flag can be used either in combination with
-fsanitize-coverage=trace-pc (in which case this patch changes which
hook is called for the entry BB, and generates an additional hook call
before return), or it can be used by itself (in which case only the
dedicated entry/exit callbacks are invoked).
This can be used to track the call stack throughout a sancov trace.
cc @vitalybuka @dvyukov