[llvm] [AMDGPU] misched: avoid subregister dependencies (PR #140255)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 24 08:37:10 PDT 2025
================
@@ -468,6 +468,28 @@ class LLVM_ABI TargetRegisterInfo : public MCRegisterInfo {
return false;
}
+ /// Returns true if the two subregisters are equal or overlap.
+ /// The registers may be virtual registers.
+ bool subRegsOverlap(Register RegA, unsigned SubA, Register RegB,
+ unsigned SubB) const {
+ if (RegA == RegB && SubA == SubB)
+ return true;
+ if (RegA.isVirtual() && RegB.isVirtual()) {
+ if (RegA != RegB)
+ return false;
+ LaneBitmask LA = getSubRegIndexLaneMask(SubA);
+ LaneBitmask LB = getSubRegIndexLaneMask(SubB);
+ return (LA & LB).any();
+ }
----------------
arsenm wrote:
Because the interference is an assignment decision for the virtual register. It's context dependent on the lane mask and position in the function
https://github.com/llvm/llvm-project/pull/140255
More information about the llvm-commits
mailing list