[TargetInstrInfo] Let findCommutedOpIndices take const MachineInstr&
Neither the base implementation of findCommutedOpIndices nor any in-tree target modifies the instruction passed in and there is no reason why they would in the future. Committed on behalf of @hvdijk (Harald van Dijk) Differential Revision: https://reviews.llvm.org/D66138 llvm-svn: 372882
This commit is contained in:
parent
f8067c7f7c
commit
5f2d8b2618
|
@ -422,7 +422,8 @@ public:
|
|||
/// findCommutedOpIndices(MI, Op1, Op2);
|
||||
/// can be interpreted as a query asking to find an operand that would be
|
||||
/// commutable with the operand#1.
|
||||
virtual bool findCommutedOpIndices(MachineInstr &MI, unsigned &SrcOpIdx1,
|
||||
virtual bool findCommutedOpIndices(const MachineInstr &MI,
|
||||
unsigned &SrcOpIdx1,
|
||||
unsigned &SrcOpIdx2) const;
|
||||
|
||||
/// A pair composed of a register and a sub-register index.
|
||||
|
|
|
@ -282,7 +282,7 @@ bool TargetInstrInfo::fixCommutedOpIndices(unsigned &ResultIdx1,
|
|||
return true;
|
||||
}
|
||||
|
||||
bool TargetInstrInfo::findCommutedOpIndices(MachineInstr &MI,
|
||||
bool TargetInstrInfo::findCommutedOpIndices(const MachineInstr &MI,
|
||||
unsigned &SrcOpIdx1,
|
||||
unsigned &SrcOpIdx2) const {
|
||||
assert(!MI.isBundle() &&
|
||||
|
|
|
@ -1663,7 +1663,8 @@ MachineInstr *SIInstrInfo::commuteInstructionImpl(MachineInstr &MI, bool NewMI,
|
|||
// This needs to be implemented because the source modifiers may be inserted
|
||||
// between the true commutable operands, and the base
|
||||
// TargetInstrInfo::commuteInstruction uses it.
|
||||
bool SIInstrInfo::findCommutedOpIndices(MachineInstr &MI, unsigned &SrcOpIdx0,
|
||||
bool SIInstrInfo::findCommutedOpIndices(const MachineInstr &MI,
|
||||
unsigned &SrcOpIdx0,
|
||||
unsigned &SrcOpIdx1) const {
|
||||
return findCommutedOpIndices(MI.getDesc(), SrcOpIdx0, SrcOpIdx1);
|
||||
}
|
||||
|
|
|
@ -242,7 +242,7 @@ public:
|
|||
return commuteOpcode(MI.getOpcode());
|
||||
}
|
||||
|
||||
bool findCommutedOpIndices(MachineInstr &MI, unsigned &SrcOpIdx1,
|
||||
bool findCommutedOpIndices(const MachineInstr &MI, unsigned &SrcOpIdx1,
|
||||
unsigned &SrcOpIdx2) const override;
|
||||
|
||||
bool findCommutedOpIndices(MCInstrDesc Desc, unsigned & SrcOpIdx0,
|
||||
|
|
|
@ -677,7 +677,8 @@ MipsInstrInfo::genInstrWithNewOpc(unsigned NewOpc,
|
|||
return MIB;
|
||||
}
|
||||
|
||||
bool MipsInstrInfo::findCommutedOpIndices(MachineInstr &MI, unsigned &SrcOpIdx1,
|
||||
bool MipsInstrInfo::findCommutedOpIndices(const MachineInstr &MI,
|
||||
unsigned &SrcOpIdx1,
|
||||
unsigned &SrcOpIdx2) const {
|
||||
assert(!MI.isBundle() &&
|
||||
"TargetInstrInfo::findCommutedOpIndices() can't handle bundles");
|
||||
|
|
|
@ -148,7 +148,7 @@ public:
|
|||
MachineInstrBuilder genInstrWithNewOpc(unsigned NewOpc,
|
||||
MachineBasicBlock::iterator I) const;
|
||||
|
||||
bool findCommutedOpIndices(MachineInstr &MI, unsigned &SrcOpIdx1,
|
||||
bool findCommutedOpIndices(const MachineInstr &MI, unsigned &SrcOpIdx1,
|
||||
unsigned &SrcOpIdx2) const override;
|
||||
|
||||
/// Perform target specific instruction verification.
|
||||
|
|
|
@ -448,7 +448,8 @@ MachineInstr *PPCInstrInfo::commuteInstructionImpl(MachineInstr &MI, bool NewMI,
|
|||
return &MI;
|
||||
}
|
||||
|
||||
bool PPCInstrInfo::findCommutedOpIndices(MachineInstr &MI, unsigned &SrcOpIdx1,
|
||||
bool PPCInstrInfo::findCommutedOpIndices(const MachineInstr &MI,
|
||||
unsigned &SrcOpIdx1,
|
||||
unsigned &SrcOpIdx2) const {
|
||||
// For VSX A-Type FMA instructions, it is the first two operands that can be
|
||||
// commuted, however, because the non-encoded tied input operand is listed
|
||||
|
|
|
@ -252,7 +252,7 @@ public:
|
|||
unsigned isStoreToStackSlot(const MachineInstr &MI,
|
||||
int &FrameIndex) const override;
|
||||
|
||||
bool findCommutedOpIndices(MachineInstr &MI, unsigned &SrcOpIdx1,
|
||||
bool findCommutedOpIndices(const MachineInstr &MI, unsigned &SrcOpIdx1,
|
||||
unsigned &SrcOpIdx2) const override;
|
||||
|
||||
void insertNoop(MachineBasicBlock &MBB,
|
||||
|
|
|
@ -1970,7 +1970,8 @@ X86InstrInfo::findThreeSrcCommutedOpIndices(const MachineInstr &MI,
|
|||
return true;
|
||||
}
|
||||
|
||||
bool X86InstrInfo::findCommutedOpIndices(MachineInstr &MI, unsigned &SrcOpIdx1,
|
||||
bool X86InstrInfo::findCommutedOpIndices(const MachineInstr &MI,
|
||||
unsigned &SrcOpIdx1,
|
||||
unsigned &SrcOpIdx2) const {
|
||||
const MCInstrDesc &Desc = MI.getDesc();
|
||||
if (!Desc.isCommutable())
|
||||
|
|
|
@ -254,7 +254,7 @@ public:
|
|||
/// findCommutedOpIndices(MI, Op1, Op2);
|
||||
/// can be interpreted as a query asking to find an operand that would be
|
||||
/// commutable with the operand#1.
|
||||
bool findCommutedOpIndices(MachineInstr &MI, unsigned &SrcOpIdx1,
|
||||
bool findCommutedOpIndices(const MachineInstr &MI, unsigned &SrcOpIdx1,
|
||||
unsigned &SrcOpIdx2) const override;
|
||||
|
||||
/// Returns an adjusted FMA opcode that must be used in FMA instruction that
|
||||
|
|
Loading…
Reference in New Issue