[InstCombine] Fix InstCombine pass to sink llvm.assume calls (#229658)
When trying to sink a GEP instruction into the loop preheader the
InstCombine pass ignores and deletes an llvm.assume call that sets the
alignment for the pointer of the GEP instruction which later passes
depend on. This patch sinks such llvm.assume calls while sinking a
dependent instruction.
Fixes https://github.com/llvm/llvm-project/issues/226698.
[alpha.webkit.UnretainedLocalVarsChecker] Treat the collection of a fast enumeration as the origin of its element (#230818)
alpha.webkit.UnretainedLocalVarsChecker reported every element variable
of an Objective-C fast enumeration such as "for (T *x in collection)"
since the variable has no initializer, even when the collection was kept
alive by a RetainPtr local variable.
The element of a fast enumeration is kept alive by its collection, which
can't be mutated during the enumeration. So treat the collection as the
initial value of the element, as in "T *x = collection;". Because the
collection is evaluated before the loop body is entered, a guardian
local variable only needs to outlive the loop body; it can be declared
in the same scope as the loop as long as the loop body doesn't mutate
it.
The collection is a full-expression of its own so a temporary smart
pointer in the collection is destroyed before the loop body is entered
and isn't considered safe.
Authored with Claude Code.
[alpha.webkit.UncountedLocalVarsChecker] Don't treat a const operator call on a guardian as a mutation (#230900)
GuardianVisitor treated `guardian->method()` as a mutation of the
guardian because the implicit object argument of a member operator call
had no corresponding parameter, and the check fell back to the non-const
type of the guardian itself. Skip the implicit object argument when the
operator is a const member function, and only apply the argument offset
for implicit object member operators so that arguments of non-member
operators map to the right parameters.
Also treat passing a guardian to a const reference parameter as
non-mutating by checking the constness of the referenced type instead of
the reference type.
Coded with Claude code.
Merge tag 'input-for-v7.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input fixes from Dmitry Torokhov:
- A fix for the ati_remote2 sysfs attributes handling, resolving type
confusion after conversion to dev_groups
- Updates to the xpad joystick driver adding support for the Corsair
Novablade Pro controller (wired and 2.4 GHz wireless) and a newer
hardware revision of the 8BitDo Pro 2 Wired Controller for Xbox.
* tag 'input-for-v7.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: xpad - add support for 8BitDo Pro 2 Wired Controller for Xbox
Input: xpad - add support for Corsair Novablade Pro
Input: ati_remote2 - fix type confusion in device attribute handlers
[AMDGPU][SplitModule] Add entry points for unreachable call cycles
A function in a call cycle always has an incoming direct call, so
`SplitGraph` never makes it an entry point. If no kernel and no other
entry point reaches the cycle, the cycle is assigned to no partition.
This can hit an assertion in `verifyGraph`.
In this PR, we visit the unreached nodes in reverse post-order of the
direct call edges, and make each node that is still unreached an entry
point. Only the outermost unreached cycles get one, so their callees
are not copied into other partitions.
[NFC][AMDGPU] Add a test showing unreachable call cycles in module splitting
If no entry point reaches a call cycle, `AMDGPUSplitModule` creates no
entry point for it. In assertion builds, `verifyGraph()` fails. In
release builds, no partition defines the functions in the cycle.
Add a test that shows the current crash.
[docs] Update obsolete Phabricator references for GitHub workflows (#229542)
Use GitHub pull requests in the contribution and code-review guidance,
remove obsolete Phabricator contact handles and infrastructure listings,
and update source links to their current locations.
Assisted-by: Codex
[AMDGPU][SplitModule] Add entry points for unreachable call cycles
A function in a call cycle always has an incoming direct call, so
`SplitGraph` never makes it an entry point. If no kernel and no other
entry point reaches the cycle, the cycle is assigned to no partition.
This can hit an assertion in `verifyGraph`.
In this PR, we visit the unreached nodes in reverse post-order of the
direct call edges, and make each node that is still unreached an entry
point. Only the outermost unreached cycles get one, so their callees
are not copied into other partitions.
[NFC][AMDGPU] Add a test showing unreachable call cycles in module splitting
If no entry point reaches a call cycle, `AMDGPUSplitModule` creates no
entry point for it. In assertion builds, `verifyGraph()` fails. In
release builds, no partition defines the functions in the cycle.
Add a test that shows the current crash.
[clang-tidy][docs] Fix ExplicitConstructorCheck example links (#229932)
Point the contribution guide at the current
misc/ExplicitConstructorCheck header and implementation. Replace the
obsolete Phabricator source-browser link with the GitHub source link.
Assisted-by: Codex
*/*: Rename KDE_APPLICATIONS6_SHLIB_VER to KDE_PIM6_SHLIB_VER to avoid confusion
Although KDE PIM uses Gear version for tarballs, it still uses
internal PIM version for its own libraries.
textproc/markterm: Prevent fetching from internet
The vendored shard.yml has a postinstall script that tries to fetch and
regenerate unicode files at build time. Use sed to disable them.
Sponsored by: SkunkWerks, GmbH
Reported by: pkg-fallout
games/xray-16: Fix build against math.h declaring rsqrt() in recent 16
FreeBSD's <math.h> now declares double rsqrt(double), which clashes with
the engine's own rsqrt() helper:
src/xrCore/_vector3d.h:359:8: error: exception specification in
declaration does not match previous declaration
359 | double rsqrt(double v) noexcept;
/usr/include/math.h:556:9: note: previous declaration is here
556 | double rsqrt(double);
Rename the engine helper to xr_rsqrt() in its declaration, its definition
and its four call sites so it no longer collides with the libm symbol.
PR: 299297
Sponsored by: UNIS Labs (vvd, commit patch)
libpfctl: Fix the counts returned by pfctl_ina_define()
The counts of a table definition were stored only if the caller's
variables already held a non-zero value, and read uninitialised ones
otherwise. pfctl_ina_define() passes the address of two uninitialised
locals and sums them up.
Reviewed by: kp
Fixes: 219ce3063840 ("pf: convert DIOCRINADEFINE to netlink")
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D60614
[MLGO][RegAlloc] Update test expectations after #228618 (#230973)
Test fixes after #228618: SlotIndex distances and resulting LiveInterval
sizes changed.
Update libexpat to version 2.8.5.
Changes relevant for OpenBSD have been backported earlier. Compiler
warning #1362 has been disabled, it does not work with gcc 4.2.1.
Move the hash table declarations into a separate header file as
this is needed for #1355. Convert salt test to non deprecated
XML_SetHashSalt16Bytes() function. Library bump is not necessary.
OK deraadt@
update to py3-dulwich-1.2.17
make a start at trying to allow rust/no-rust builds, but I'm not sure if
there's a good way to add SUPDISTFILES for the crates..