[alpha.webkit.UncountedCallArgsChecker] Protect the const member getter's this argument (#201147)
This PR fixes a bug that when a const member variable getter is
detected, we don't check if its object argument is kept alive for the
duration of the function call.
[GlobalISel] Do not depend on the RuleMatcher at MatchTable emission (#200799)
Some PredicateMatchers/MatchAction/OperandRenderers relied on accessing
RuleMatcher at emission as a crutch.
Instead, make these classes collect all necessary information in the
constructor so the `emit` methods don't depend on RuleMatcher anymore.
The primary motivation for this is that I've been looking at ways to
optimize the MatchTable better,
and the fact that Predicates/Actions/Renderers are not "pure" objects,
in the sense that they keep
accessing a bunch of data all over the place even as late as emission,
was a consistent pain.
This is NFCI. There are no changes to any of the match table for
AMDGPU/AArch64 in this patch.
This patch has a bunch of noise due to function signature changes so
I'll highlight the following interesting changes:
[15 lines not shown]
[InstCombine] Fix assertion in GEP exact div/shr index canonicalization (#201431)
When canonicalizing the index of `(gep ptr, (div/shr exact X, C))`,
visitGetElementPtrInst builds the new index with Builder.CreateBinOp and
then sets the exact flag via
`cast<BinaryOperator>(NewOp)->setIsExact()`. If X is a constant (as can
be proved during InstCombine), the folding builder constant-folds NewOp
to a non-BinaryOperator, so the cast asserts.
Fix this by adding a CreateExactBinOp API, so the exact flag is set on creation.
Fixes #190324.
[mlir][EmitC] Convert MemRef::DeallocOp (#194591)
Add `memref.dealloc` lowering to EmitC by mapping pointer-backed
deallocations to `void*` cast + `free()` call. This complements the
existing `memref.alloc` lowering to `malloc()` / `aligned_alloc()` and
ensures the pass emits the required standard library include when
`free()` is used.
Assisted-by: Codex (refine implementation + tests). I reviewed all code
and tests before submission.
[AMDGPU][InstCombine] Match ds_swizzle rotate mode for cyclic lane shuffles (#199004)
Follow-up to 17cc4f77109d [AMDGPU][InstCombine] Optimize constant
shuffle patterns (#192246).
Adds matchDsSwizzleRotatePattern to recognise shuffles of the form
dst_lane = (src_lane + N) % 32 (N in [1, 31]) and lower them to a single
ds_swizzle with rotate-mode encoding (ROTATE_MODE_ENC | N << 5),
available on GFX9+. The bitmask mode cannot express such rotations since
the carry between bit positions makes the per-bit mapping
non-independent. On wave64 the pattern is accepted only when
hasPeriodicLayout<32> confirms both 32-lane groups rotate by the same
amount. Wave32-only ID forms (mbcnt.lo alone) are correctly rejected on
wave64 targets.
Co-authored-by: Barbara Mitic <Barbara.Mitic at amd.com>
[LoongArch] Fix FP_EXTEND legalization for v2f32 (#201260)
FP_EXTEND may reach ReplaceNodeResults due to a Custom action for
v2f32 results, but no target-specific lowering is required.
Fixes #198339
[BOLT][AArch64] Transform cmpbr ~> cmp + br when inversion not possible (#185731)
When reordering blocks we may have to invert branches. Sometimes this
isn't possible for compare-and-branch instructions because the immediate
value would overflow/underflow after the adjustment. In such cases I am
splitting the instruction into a compare followed by a branch. For this
to be legal we should be sure that the condition flags are not being
clobbered. Liveness analysis may help here.
axgbe: XXX leftovers to figure out
axgbe: several patches from 22.1 not yet present in FreeBSD
axgbe: remove old annotations and a bit of whitespace cleanup
This is a stub from applying f45a2d1e5a + b9eca9d898 on top of
the upstreamed changes. The enable_rss remove is correct and
looks like an oversight in the upstreaming. About the others
I'm not sure but since we have them on file here we can discuss
and rearrange.
tk: updated to 8.6.18
8.6.18
Aqua: Non-menubar menu invisible if toplevel is on another display (chavez).
(bug) [a91b24] Correct macOSVersion on future macOS for older SDK builds (chavez)
(bug) [d93d96] Pointer arithmetic with NULL in ImgGetPhoto() (chavez)
(bug) [6c4795] leak in XCreateBitmapFromData() in ImgGetPhoto() (chavez)
(new) [04e173] Add support for Copy/Cut/Paste keys in X11 (nijtmans)
(bug) [95da0f] tkpWinRopModes[GXnoop] is R2_NOT, should be R2_NOP (chavez)
(bug) [2c240b] Install pkg-config file (oscarfv)
(bug) [816739] Install man pages (oscarfv)
[40 lines not shown]
axgbe: XXX leftovers to figure out
axgbe: several patches from 22.1 not yet present in FreeBSD
axgbe: remove old annotations and a bit of whitespace cleanup
This is a stub from applying f45a2d1e5a + b9eca9d898 on top of
the upstreamed changes. The enable_rss remove is correct and
looks like an oversight in the upstreaming. About the others
I'm not sure but since we have them on file here we can discuss
and rearrange.
axgbe: gracefully handle i2c bus failures
In (unknown) situations it seems the i2c bus can have trouble,
while nothing about the current link state has changed, the driver
would react by going into a link down state, and start busylooping
on up to 4 cores. Even if there was a valid link, such spinning
on a cpu by a kernel thread would wreak havoc to existing and
new connections.
This patch does the following:
1. If such a bus failure occurs, we keep the last known link state.
2. Prevent busy looping by implementing the lockmgr() facility to
be able to sleep while the i2c code waits on the i2c ISR. We cap
this with a timeout.
3. Pin the admin queues to the last CPU in the system, to prevent
other scenarios where busy looping might occur from landing on CPU
0, which especially seems to cause a lot of issues.
Given the design constraints both in hardware and in software,
[9 lines not shown]
axgbe: LED control for A30 platform
Since the I/O expander chip does not do a reset when soft power
cycling, the driver will first turn off all LEDs when initializing,
although no specific routine seems to be called when powering down.
This means that the LEDs will stay on until the driver has booted up,
after which the driver will be in a consistent state.
17691 acpi_get_possible_irq_resources() will always succeed
Reviewed by: Jason King <jason.brian.king+illumos at gmail.com>
Reviewed by: Toomas Soome <tsoome at me.com>
Reviewed by: Gordon Ross <Gordon.W.Ross at gmail.com>
Approved by: Hans Rosenfeld <rosenfeld at grumpf.hope-2000.org>
18147 viona_rx should not interrupt the guest if all packets are dropped
Reviewed by: ixi meow <illumos at iximeow.net>
Reviewed by: Andy Fiddaman <illumos at fiddaman.net>
Reviewed by: Toomas Soome <tsoome at me.com>
Approved by: Hans Rosenfeld <rosenfeld at grumpf.hope-2000.org>
axgbe: several patches from 22.1 not yet present in FreeBSD
This is a stub from applying f45a2d1e5a + b9eca9d898 on top of
the upstreamed changes. The enable_rss remove is correct and
looks like an oversight in the upstreaming. About the others
I'm not sure but since we have them on file here we can discuss
and rearrange.
axgbe: remove old annotations and a bit of whitespace cleanup
[DAG] Fold INT_TO_FP( FP_TO_INT (x) ) to FTRUNC(X) (#198477)
Extends the `foldFPToIntToFP` DAG Combine so that it can now be applied
when `FTRUNC` has a custom lowering, and given that `INT_TO_FP
(FP_TO_INT (X))` is not already legal.
On AArch64 targets with SVE, this change simplifies the codegen of
`INT_TO_FP (FP_TO_INT (X))` conversions by making use of the `frintz`
instruction.