Skip to content

Commit 0096a5d

Browse files
committed
ARM: Remove override of shouldRewriteCopySrc
All of the overrides of shouldRewriteCopySrc appear to be hacks for bugs in the base implementation, so I'm trying to delete all of the overrides. I was expecting this to find an example issue like the x86 version, but no tests change with this.
1 parent e85c7ea commit 0096a5d

File tree

3 files changed

+2
-21
lines changed

3 files changed

+2
-21
lines changed

llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -961,17 +961,3 @@ bool ARMBaseRegisterInfo::shouldCoalesce(MachineInstr *MI,
961961
}
962962
return false;
963963
}
964-
965-
bool ARMBaseRegisterInfo::shouldRewriteCopySrc(const TargetRegisterClass *DefRC,
966-
unsigned DefSubReg,
967-
const TargetRegisterClass *SrcRC,
968-
unsigned SrcSubReg) const {
969-
// We can't extract an SPR from an arbitary DPR (as opposed to a DPR_VFP2).
970-
if (DefRC == &ARM::SPRRegClass && DefSubReg == 0 &&
971-
SrcRC == &ARM::DPRRegClass &&
972-
(SrcSubReg == ARM::ssub_0 || SrcSubReg == ARM::ssub_1))
973-
return false;
974-
975-
return TargetRegisterInfo::shouldRewriteCopySrc(DefRC, DefSubReg,
976-
SrcRC, SrcSubReg);
977-
}

llvm/lib/Target/ARM/ARMBaseRegisterInfo.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,6 @@ class ARMBaseRegisterInfo : public ARMGenRegisterInfo {
159159
const TargetRegisterClass *NewRC,
160160
LiveIntervals &LIS) const override;
161161

162-
bool shouldRewriteCopySrc(const TargetRegisterClass *DefRC,
163-
unsigned DefSubReg,
164-
const TargetRegisterClass *SrcRC,
165-
unsigned SrcSubReg) const override;
166-
167162
int getSEHRegNum(unsigned i) const { return getEncodingValue(i); }
168163
};
169164

llvm/test/CodeGen/ARM/shouldRewriteCopySrc.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ define float @shouldRewriteCopySrc(double %arg) #0 {
1212
; CHECK-NEXT: @APP
1313
; CHECK-NEXT: nop
1414
; CHECK-NEXT: @NO_APP
15-
; CHECK-NEXT: vmov r0, r1, d16
16-
; CHECK-NEXT: vmov s0, r0
15+
; CHECK-NEXT: vmov.f64 d0, d16
16+
; CHECK-NEXT: @ kill: def $s0 killed $s0 killed $d0
1717
; CHECK-NEXT: vpop {d8, d9, d10, d11, d12, d13, d14, d15}
1818
; CHECK-NEXT: bx lr
1919
bb:

0 commit comments

Comments
 (0)