Skip to content

Commit 94bd0a8

Browse files
committed
Move some TargetRegisterInfo to AArch64RegisterInfo
1 parent d091259 commit 94bd0a8

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
#include "AArch64RegisterBankInfo.h"
1515
#include "AArch64RegisterInfo.h"
16+
#include "AArch64Subtarget.h"
1617
#include "MCTargetDesc/AArch64MCTargetDesc.h"
1718
#include "llvm/ADT/STLExtras.h"
1819
#include "llvm/ADT/SmallVector.h"
@@ -492,7 +493,7 @@ static bool isFPIntrinsic(const MachineRegisterInfo &MRI,
492493

493494
bool AArch64RegisterBankInfo::isPHIWithFPConstraints(
494495
const MachineInstr &MI, const MachineRegisterInfo &MRI,
495-
const TargetRegisterInfo &TRI, const unsigned Depth) const {
496+
const AArch64RegisterInfo &TRI, const unsigned Depth) const {
496497
if (!MI.isPHI() || Depth > MaxFPRSearchDepth)
497498
return false;
498499

@@ -506,7 +507,7 @@ bool AArch64RegisterBankInfo::isPHIWithFPConstraints(
506507

507508
bool AArch64RegisterBankInfo::hasFPConstraints(const MachineInstr &MI,
508509
const MachineRegisterInfo &MRI,
509-
const TargetRegisterInfo &TRI,
510+
const AArch64RegisterInfo &TRI,
510511
unsigned Depth) const {
511512
unsigned Op = MI.getOpcode();
512513
if (Op == TargetOpcode::G_INTRINSIC && isFPIntrinsic(MRI, MI))
@@ -544,7 +545,7 @@ bool AArch64RegisterBankInfo::hasFPConstraints(const MachineInstr &MI,
544545

545546
bool AArch64RegisterBankInfo::onlyUsesFP(const MachineInstr &MI,
546547
const MachineRegisterInfo &MRI,
547-
const TargetRegisterInfo &TRI,
548+
const AArch64RegisterInfo &TRI,
548549
unsigned Depth) const {
549550
switch (MI.getOpcode()) {
550551
case TargetOpcode::G_FPTOSI:
@@ -582,7 +583,7 @@ bool AArch64RegisterBankInfo::onlyUsesFP(const MachineInstr &MI,
582583

583584
bool AArch64RegisterBankInfo::onlyDefinesFP(const MachineInstr &MI,
584585
const MachineRegisterInfo &MRI,
585-
const TargetRegisterInfo &TRI,
586+
const AArch64RegisterInfo &TRI,
586587
unsigned Depth) const {
587588
switch (MI.getOpcode()) {
588589
case AArch64::G_DUP:
@@ -620,7 +621,7 @@ bool AArch64RegisterBankInfo::onlyDefinesFP(const MachineInstr &MI,
620621

621622
bool AArch64RegisterBankInfo::prefersFPUse(const MachineInstr &MI,
622623
const MachineRegisterInfo &MRI,
623-
const TargetRegisterInfo &TRI,
624+
const AArch64RegisterInfo &TRI,
624625
unsigned Depth) const {
625626
switch (MI.getOpcode()) {
626627
case TargetOpcode::G_SITOFP:
@@ -684,8 +685,8 @@ AArch64RegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
684685

685686
const MachineFunction &MF = *MI.getParent()->getParent();
686687
const MachineRegisterInfo &MRI = MF.getRegInfo();
687-
const TargetSubtargetInfo &STI = MF.getSubtarget();
688-
const TargetRegisterInfo &TRI = *STI.getRegisterInfo();
688+
const AArch64Subtarget &STI = MF.getSubtarget<AArch64Subtarget>();
689+
const AArch64RegisterInfo &TRI = *STI.getRegisterInfo();
689690

690691
switch (Opc) {
691692
// G_{F|S|U}REM are not listed because they are not legal.

llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.h

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
namespace llvm {
2323

2424
class TargetRegisterInfo;
25+
class AArch64RegisterInfo;
2526

2627
class AArch64GenRegisterBankInfo : public RegisterBankInfo {
2728
protected:
@@ -123,25 +124,26 @@ class AArch64RegisterBankInfo final : public AArch64GenRegisterBankInfo {
123124
/// \returns true if \p MI is a PHI that its def is used by
124125
/// any instruction that onlyUsesFP.
125126
bool isPHIWithFPConstraints(const MachineInstr &MI,
126-
const MachineRegisterInfo &MRI,
127-
const TargetRegisterInfo &TRI,
128-
unsigned Depth = 0) const;
127+
const MachineRegisterInfo &MRI,
128+
const AArch64RegisterInfo &TRI,
129+
unsigned Depth = 0) const;
129130

130131
/// \returns true if \p MI only uses and defines FPRs.
131132
bool hasFPConstraints(const MachineInstr &MI, const MachineRegisterInfo &MRI,
132-
const TargetRegisterInfo &TRI, unsigned Depth = 0) const;
133+
const AArch64RegisterInfo &TRI,
134+
unsigned Depth = 0) const;
133135

134136
/// \returns true if \p MI only uses FPRs.
135137
bool onlyUsesFP(const MachineInstr &MI, const MachineRegisterInfo &MRI,
136-
const TargetRegisterInfo &TRI, unsigned Depth = 0) const;
138+
const AArch64RegisterInfo &TRI, unsigned Depth = 0) const;
137139

138140
/// \returns true if \p MI only defines FPRs.
139141
bool onlyDefinesFP(const MachineInstr &MI, const MachineRegisterInfo &MRI,
140-
const TargetRegisterInfo &TRI, unsigned Depth = 0) const;
142+
const AArch64RegisterInfo &TRI, unsigned Depth = 0) const;
141143

142144
/// \returns true if \p MI can take both fpr and gpr uses, but prefers fp.
143145
bool prefersFPUse(const MachineInstr &MI, const MachineRegisterInfo &MRI,
144-
const TargetRegisterInfo &TRI, unsigned Depth = 0) const;
146+
const AArch64RegisterInfo &TRI, unsigned Depth = 0) const;
145147

146148
/// \returns true if the load \p MI is likely loading from a floating-point
147149
/// type.

0 commit comments

Comments
 (0)