[llvm] [WIP][PowerPC] Add phony subregisters to cover the high half of the VSX registers. (PR #94628)
Stefan Pintilie via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 20 07:51:34 PDT 2024
================
@@ -3672,6 +3672,14 @@ bool RegisterCoalescer::joinVirtRegs(CoalescerPair &CP) {
// having stale segments.
LHSVals.pruneMainSegments(LHS, ShrinkMainRange);
+ LHSVals.pruneSubRegValues(LHS, ShrinkMask);
+ RHSVals.pruneSubRegValues(LHS, ShrinkMask);
+ } else if (TrackSubRegLiveness && !CP.getDstIdx() && CP.getSrcIdx()) {
+ LHS.createSubRangeFrom(LIS->getVNInfoAllocator(),
+ CP.getNewRC()->getLaneMask(), LHS);
+ mergeSubRangeInto(LHS, RHS, TRI->getSubRegIndexLaneMask(CP.getSrcIdx()), CP,
+ CP.getDstIdx());
+ LHSVals.pruneMainSegments(LHS, ShrinkMainRange);
LHSVals.pruneSubRegValues(LHS, ShrinkMask);
RHSVals.pruneSubRegValues(LHS, ShrinkMask);
----------------
stefanp-ibm wrote:
I'm not sure what you mean by RHS doesn't contain any subregs. I think I remember seeing subregs on both the RHS and LHS in IR. Taken from one of our tests for example:
```
%48:vsrprc = INSERT_SUBREG %45, killed %47, %subreg.sub_vsx0
```
This is probably not what you mean...
https://github.com/llvm/llvm-project/pull/94628
More information about the llvm-commits
mailing list