diff options
author | Petar Jovanovic <petar.jovanovic@mips.com> | 2018-06-06 16:36:30 +0000 |
---|---|---|
committer | Petar Jovanovic <petar.jovanovic@mips.com> | 2018-06-06 16:36:30 +0000 |
commit | 8cb6a521be9abebc2174353dcb7025f9674023fb (patch) | |
tree | a36229923524e9fe9d9c7422a0df307f25c1914f | |
parent | 64541ff29733ada162a392e83d9580691c5d1378 (diff) | |
download | bcm5719-llvm-8cb6a521be9abebc2174353dcb7025f9674023fb.tar.gz bcm5719-llvm-8cb6a521be9abebc2174353dcb7025f9674023fb.zip |
Change TII isCopyInstr way of returning arguments(NFC)
Make TII isCopyInstr() return MachineOperands through pointer to pointer
instead via reference.
Patch by Nikola Prica.
Differential Revision: https://reviews.llvm.org/D47364
llvm-svn: 334105
-rw-r--r-- | llvm/include/llvm/CodeGen/TargetInstrInfo.h | 5 | ||||
-rw-r--r-- | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp | 9 | ||||
-rw-r--r-- | llvm/lib/Target/ARM/ARMBaseInstrInfo.h | 4 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/Mips16InstrInfo.cpp | 9 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/Mips16InstrInfo.h | 4 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MipsSEInstrInfo.cpp | 19 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MipsSEInstrInfo.h | 4 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.cpp | 9 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.h | 4 |
9 files changed, 36 insertions, 31 deletions
diff --git a/llvm/include/llvm/CodeGen/TargetInstrInfo.h b/llvm/include/llvm/CodeGen/TargetInstrInfo.h index 115c3a1f949..f6dbe31ca50 100644 --- a/llvm/include/llvm/CodeGen/TargetInstrInfo.h +++ b/llvm/include/llvm/CodeGen/TargetInstrInfo.h @@ -849,8 +849,9 @@ public: /// If the specific machine instruction is a instruction that moves/copies /// value from one register to another register return true along with /// @Source machine operand and @Destination machine operand. - virtual bool isCopyInstr(const MachineInstr &MI, MachineOperand &Source, - MachineOperand &Destination) const { + virtual bool isCopyInstr(const MachineInstr &MI, + const MachineOperand *&SourceOpNum, + const MachineOperand *&Destination) const { return false; } diff --git a/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp b/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp index 8c7de5fc7c1..4b589f5b447 100644 --- a/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp +++ b/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp @@ -935,8 +935,9 @@ void ARMBaseInstrInfo::copyPhysReg(MachineBasicBlock &MBB, Mov->addRegisterKilled(SrcReg, TRI); } -bool ARMBaseInstrInfo::isCopyInstr(const MachineInstr &MI, MachineOperand &Src, - MachineOperand &Dest) const { +bool ARMBaseInstrInfo::isCopyInstr(const MachineInstr &MI, + const MachineOperand *&Src, + const MachineOperand *&Dest) const { // VMOVRRD is also a copy instruction but it requires // special way of handling. It is more complex copy version // and since that we are not considering it. For recognition @@ -948,8 +949,8 @@ bool ARMBaseInstrInfo::isCopyInstr(const MachineInstr &MI, MachineOperand &Src, (MI.getOpcode() == ARM::VORRq && MI.getOperand(1).getReg() != MI.getOperand(2).getReg())) return false; - Dest = MI.getOperand(0); - Src = MI.getOperand(1); + Dest = &MI.getOperand(0); + Src = &MI.getOperand(1); return true; } diff --git a/llvm/lib/Target/ARM/ARMBaseInstrInfo.h b/llvm/lib/Target/ARM/ARMBaseInstrInfo.h index d4db997326a..b54be15097b 100644 --- a/llvm/lib/Target/ARM/ARMBaseInstrInfo.h +++ b/llvm/lib/Target/ARM/ARMBaseInstrInfo.h @@ -201,8 +201,8 @@ public: const DebugLoc &DL, unsigned DestReg, unsigned SrcReg, bool KillSrc) const override; - bool isCopyInstr(const MachineInstr &MI, MachineOperand &Src, - MachineOperand &Dest) const override; + bool isCopyInstr(const MachineInstr &MI, const MachineOperand *&Src, + const MachineOperand *&Dest) const override; void storeRegToStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, diff --git a/llvm/lib/Target/Mips/Mips16InstrInfo.cpp b/llvm/lib/Target/Mips/Mips16InstrInfo.cpp index 593dafbb9fc..219f1ad3358 100644 --- a/llvm/lib/Target/Mips/Mips16InstrInfo.cpp +++ b/llvm/lib/Target/Mips/Mips16InstrInfo.cpp @@ -97,11 +97,12 @@ void Mips16InstrInfo::copyPhysReg(MachineBasicBlock &MBB, MIB.addReg(SrcReg, getKillRegState(KillSrc)); } -bool Mips16InstrInfo::isCopyInstr(const MachineInstr &MI, MachineOperand &Src, - MachineOperand &Dest) const { +bool Mips16InstrInfo::isCopyInstr(const MachineInstr &MI, + const MachineOperand *&Src, + const MachineOperand *&Dest) const { if (MI.isMoveReg()) { - Dest = MI.getOperand(0); - Src = MI.getOperand(1); + Dest = &MI.getOperand(0); + Src = &MI.getOperand(1); return true; } return false; diff --git a/llvm/lib/Target/Mips/Mips16InstrInfo.h b/llvm/lib/Target/Mips/Mips16InstrInfo.h index 85e06f7287c..8190be6187e 100644 --- a/llvm/lib/Target/Mips/Mips16InstrInfo.h +++ b/llvm/lib/Target/Mips/Mips16InstrInfo.h @@ -53,8 +53,8 @@ public: const DebugLoc &DL, unsigned DestReg, unsigned SrcReg, bool KillSrc) const override; - bool isCopyInstr(const MachineInstr &MI, MachineOperand &Src, - MachineOperand &Dest) const override; + bool isCopyInstr(const MachineInstr &MI, const MachineOperand *&Src, + const MachineOperand *&Dest) const override; void storeRegToStack(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, diff --git a/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp b/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp index f31cc3defb4..04c4fdb0b6a 100644 --- a/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp +++ b/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp @@ -211,25 +211,26 @@ static bool isReadOrWritToDSPReg(const MachineInstr &MI, bool &isWrite) { /// We check for the common case of 'or', as it's MIPS' preferred instruction /// for GPRs but we have to check the operands to ensure that is the case. /// Other move instructions for MIPS are directly identifiable. -bool MipsSEInstrInfo::isCopyInstr(const MachineInstr &MI, MachineOperand &Src, - MachineOperand &Dest) const { +bool MipsSEInstrInfo::isCopyInstr(const MachineInstr &MI, + const MachineOperand *&Src, + const MachineOperand *&Dest) const { bool isDSPControlWrite = false; // Condition is made to match the creation of WRDSP/RDDSP copy instruction // from copyPhysReg function. if (isReadOrWritToDSPReg(MI, isDSPControlWrite)) { - if (!MI.getOperand(1).isImm() || !(MI.getOperand(1).getImm() == (1<<4))) + if (!MI.getOperand(1).isImm() || MI.getOperand(1).getImm() != (1<<4)) return false; else if (isDSPControlWrite) { - Src = MI.getOperand(0); - Dest = MI.getOperand(2); + Src = &MI.getOperand(0); + Dest = &MI.getOperand(2); } else { - Dest = MI.getOperand(0); - Src = MI.getOperand(2); + Dest = &MI.getOperand(0); + Src = &MI.getOperand(2); } return true; } else if (MI.isMoveReg() || isORCopyInst(MI)) { - Dest = MI.getOperand(0); - Src = MI.getOperand(1); + Dest = &MI.getOperand(0); + Src = &MI.getOperand(1); return true; } return false; diff --git a/llvm/lib/Target/Mips/MipsSEInstrInfo.h b/llvm/lib/Target/Mips/MipsSEInstrInfo.h index cc97b59fee2..fc55716d598 100644 --- a/llvm/lib/Target/Mips/MipsSEInstrInfo.h +++ b/llvm/lib/Target/Mips/MipsSEInstrInfo.h @@ -47,8 +47,8 @@ public: const DebugLoc &DL, unsigned DestReg, unsigned SrcReg, bool KillSrc) const override; - bool isCopyInstr(const MachineInstr &MI, MachineOperand &Src, - MachineOperand &Dest) const override; + bool isCopyInstr(const MachineInstr &MI, const MachineOperand *&Src, + const MachineOperand *&Dest) const override; void storeRegToStack(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp index 1eda236a2bc..7f749b5a19b 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.cpp +++ b/llvm/lib/Target/X86/X86InstrInfo.cpp @@ -6852,11 +6852,12 @@ void X86InstrInfo::copyPhysReg(MachineBasicBlock &MBB, llvm_unreachable("Cannot emit physreg copy instruction"); } -bool X86InstrInfo::isCopyInstr(const MachineInstr &MI, MachineOperand &Src, - MachineOperand &Dest) const { +bool X86InstrInfo::isCopyInstr(const MachineInstr &MI, + const MachineOperand *&Src, + const MachineOperand *&Dest) const { if (MI.isMoveReg()) { - Dest = MI.getOperand(0); - Src = MI.getOperand(1); + Dest = &MI.getOperand(0); + Src = &MI.getOperand(1); return true; } return false; diff --git a/llvm/lib/Target/X86/X86InstrInfo.h b/llvm/lib/Target/X86/X86InstrInfo.h index 1cc3fad6bcf..8e502470c66 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.h +++ b/llvm/lib/Target/X86/X86InstrInfo.h @@ -394,8 +394,8 @@ public: void copyPhysReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const DebugLoc &DL, unsigned DestReg, unsigned SrcReg, bool KillSrc) const override; - bool isCopyInstr(const MachineInstr &MI, MachineOperand &Src, - MachineOperand &Dest) const override; + bool isCopyInstr(const MachineInstr &MI, const MachineOperand *&Src, + const MachineOperand *&Dest) const override; void storeRegToStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, unsigned SrcReg, bool isKill, int FrameIndex, |