const TargetRegisterClass *RC) const = 0;
virtual void storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*,4> &NewMIs) const = 0;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const = 0;
virtual void loadRegFromStackSlot(MachineBasicBlock &MBB,
MachineBasicBlock::iterator MI,
const TargetRegisterClass *RC) const = 0;
virtual void loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*,4> &NewMIs) const = 0;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const =0;
virtual void copyRegToReg(MachineBasicBlock &MBB,
MachineBasicBlock::iterator MI,
/// possible, returns true as well as the new instructions by reference.
virtual bool unfoldMemoryOperand(MachineFunction &MF, MachineInstr *MI,
unsigned Reg, bool UnfoldLoad, bool UnfoldStore,
- SmallVector<MachineInstr*, 4> &NewMIs) const{
+ SmallVectorImpl<MachineInstr*> &NewMIs) const{
return false;
}
virtual bool unfoldMemoryOperand(SelectionDAG &DAG, SDNode *N,
- SmallVector<SDNode*, 4> &NewNodes) const {
+ SmallVectorImpl<SDNode*> &NewNodes) const {
return false;
}
}
void ARMRegisterInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
unsigned Opc = 0;
if (RC == ARM::GPRRegisterClass) {
ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
}
void ARMRegisterInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
unsigned Opc = 0;
if (RC == ARM::GPRRegisterClass) {
ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
const TargetRegisterClass *RC) const;
void storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
void loadRegFromStackSlot(MachineBasicBlock &MBB,
MachineBasicBlock::iterator MBBI,
const TargetRegisterClass *RC) const;
void loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
void copyRegToReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
unsigned DestReg, unsigned SrcReg,
}
void AlphaRegisterInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
unsigned Opc = 0;
if (RC == Alpha::F4RCRegisterClass)
Opc = Alpha::STS;
}
void AlphaRegisterInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
unsigned Opc = 0;
if (RC == Alpha::F4RCRegisterClass)
Opc = Alpha::LDS;
const TargetRegisterClass *RC) const;
void storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
void loadRegFromStackSlot(MachineBasicBlock &MBB,
MachineBasicBlock::iterator MBBI,
const TargetRegisterClass *RC) const;
void loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
MachineInstr* foldMemoryOperand(MachineInstr *MI, unsigned OpNum,
int FrameIndex) const;
}
void IA64RegisterInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
unsigned Opc = 0;
if (RC == IA64::FPRegisterClass) {
Opc = IA64::STF8;
}
void IA64RegisterInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
unsigned Opc = 0;
if (RC == IA64::FPRegisterClass) {
Opc = IA64::LDF8;
const TargetRegisterClass *RC) const;
void storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
void loadRegFromStackSlot(MachineBasicBlock &MBB,
MachineBasicBlock::iterator MI,
const TargetRegisterClass *RC) const;
void loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
void copyRegToReg(MachineBasicBlock &MBB,
MachineBasicBlock::iterator MI,
}
void MipsRegisterInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
if (RC != Mips::CPURegsRegisterClass)
assert(0 && "Can't store this register");
MachineInstrBuilder MIB = BuildMI(TII.get(Mips::SW))
}
void MipsRegisterInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
if (RC != Mips::CPURegsRegisterClass)
assert(0 && "Can't load this register");
MachineInstrBuilder MIB = BuildMI(TII.get(Mips::LW), DestReg);
const TargetRegisterClass *RC) const;
void storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
void loadRegFromStackSlot(MachineBasicBlock &MBB,
MachineBasicBlock::iterator MBBI,
const TargetRegisterClass *RC) const;
void loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
void reMaterialize(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI,
unsigned DestReg, const MachineInstr *Orig) const;
static void StoreRegToStackSlot(const TargetInstrInfo &TII,
unsigned SrcReg, int FrameIdx,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) {
+ SmallVectorImpl<MachineInstr*> &NewMIs) {
if (RC == PPC::GPRCRegisterClass) {
if (SrcReg != PPC::LR) {
NewMIs.push_back(addFrameReference(BuildMI(TII.get(PPC::STW))
}
void PPCRegisterInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
if (Addr[0].isFrameIndex()) {
StoreRegToStackSlot(TII, SrcReg, Addr[0].getFrameIndex(), RC, NewMIs);
return;
static void LoadRegFromStackSlot(const TargetInstrInfo &TII,
unsigned DestReg, int FrameIdx,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) {
+ SmallVectorImpl<MachineInstr*> &NewMIs) {
if (RC == PPC::GPRCRegisterClass) {
if (DestReg != PPC::LR) {
NewMIs.push_back(addFrameReference(BuildMI(TII.get(PPC::LWZ), DestReg),
}
void PPCRegisterInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
if (Addr[0].isFrameIndex()) {
LoadRegFromStackSlot(TII, DestReg, Addr[0].getFrameIndex(), RC, NewMIs);
return;
const TargetRegisterClass *RC) const;
void storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
void loadRegFromStackSlot(MachineBasicBlock &MBB,
MachineBasicBlock::iterator MBBI,
const TargetRegisterClass *RC) const;
void loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
void copyRegToReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
unsigned DestReg, unsigned SrcReg,
}
void SparcRegisterInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
unsigned Opc = 0;
if (RC == SP::IntRegsRegisterClass)
Opc = SP::STri;
}
void SparcRegisterInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
unsigned Opc = 0;
if (RC == SP::IntRegsRegisterClass)
Opc = SP::LDri;
const TargetRegisterClass *RC) const;
void storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
void loadRegFromStackSlot(MachineBasicBlock &MBB,
MachineBasicBlock::iterator MBBI,
const TargetRegisterClass *RC) const;
void loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*, 4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
void copyRegToReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
unsigned DestReg, unsigned SrcReg,
}
void X86RegisterInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*,4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
unsigned Opc = getStoreRegOpcode(RC);
MachineInstrBuilder MIB = BuildMI(TII.get(Opc));
for (unsigned i = 0, e = Addr.size(); i != e; ++i)
}
void X86RegisterInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*,4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
unsigned Opc = getLoadRegOpcode(RC);
MachineInstrBuilder MIB = BuildMI(TII.get(Opc), DestReg);
for (unsigned i = 0, e = Addr.size(); i != e; ++i)
bool X86RegisterInfo::unfoldMemoryOperand(MachineFunction &MF, MachineInstr *MI,
unsigned Reg, bool UnfoldLoad, bool UnfoldStore,
- SmallVector<MachineInstr*, 4> &NewMIs) const {
+ SmallVectorImpl<MachineInstr*> &NewMIs) const {
DenseMap<unsigned*, std::pair<unsigned,unsigned> >::iterator I =
MemOp2RegOpTable.find((unsigned*)MI->getOpcode());
if (I == MemOp2RegOpTable.end())
bool
X86RegisterInfo::unfoldMemoryOperand(SelectionDAG &DAG, SDNode *N,
- SmallVector<SDNode*, 4> &NewNodes) const {
+ SmallVectorImpl<SDNode*> &NewNodes) const {
if (!N->isTargetOpcode())
return false;
const TargetRegisterClass *RC) const;
void storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*,4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
void loadRegFromStackSlot(MachineBasicBlock &MBB,
MachineBasicBlock::iterator MI,
const TargetRegisterClass *RC) const;
void loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
- SmallVector<MachineOperand,4> Addr,
+ SmallVectorImpl<MachineOperand> Addr,
const TargetRegisterClass *RC,
- SmallVector<MachineInstr*,4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
void copyRegToReg(MachineBasicBlock &MBB,
MachineBasicBlock::iterator MI,
/// possible, returns true as well as the new instructions by reference.
bool unfoldMemoryOperand(MachineFunction &MF, MachineInstr *MI,
unsigned Reg, bool UnfoldLoad, bool UnfoldStore,
- SmallVector<MachineInstr*, 4> &NewMIs) const;
+ SmallVectorImpl<MachineInstr*> &NewMIs) const;
bool unfoldMemoryOperand(SelectionDAG &DAG, SDNode *N,
- SmallVector<SDNode*, 4> &NewNodes) const;
+ SmallVectorImpl<SDNode*> &NewNodes) const;
/// getCalleeSavedRegs - Return a null-terminated list of all of the
/// callee-save registers on this target.