AMDGPU: Move R600 subtarget features to R600Features.td
Split the R600 SubtargetFeature definitions and
R600FrontendVisibleFeatures out of R600Processors.td, mirroring
GCNFeatures.td.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
AMDGPU: Move GCN subtarget features to GCNFeatures.td
Move the GCN SubtargetFeature definitions, the FeatureISAVersion lists
and AMDGPUFrontendVisibleFeatures out of AMDGPU.td, so they can be used
without parsing the instruction, register and intrinsic definitions.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
AMDGPU: Move scheduling model defs to AMDGPUSchedModels.td
Split the SchedMachineModel definitions out of SISchedule.td so the
processor definitions can be parsed without the InstRW and other
instruction-dependent scheduling information.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[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