mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-29 13:24:25 +00:00
PEI now passes a RegScavenger ptr to eliminateFrameIndex.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34707 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -38,8 +38,6 @@ public:
|
|||||||
|
|
||||||
~ARMRegisterInfo();
|
~ARMRegisterInfo();
|
||||||
|
|
||||||
RegScavenger *getRegScavenger() const;
|
|
||||||
|
|
||||||
/// getRegisterNumbering - Given the enum value for some register, e.g.
|
/// getRegisterNumbering - Given the enum value for some register, e.g.
|
||||||
/// ARM::LR, return the number that it corresponds to (e.g. 14).
|
/// ARM::LR, return the number that it corresponds to (e.g. 14).
|
||||||
static unsigned getRegisterNumbering(unsigned RegEnum);
|
static unsigned getRegisterNumbering(unsigned RegEnum);
|
||||||
@ -76,13 +74,16 @@ public:
|
|||||||
|
|
||||||
BitVector getReservedRegs(const MachineFunction &MF) const;
|
BitVector getReservedRegs(const MachineFunction &MF) const;
|
||||||
|
|
||||||
|
bool requiresRegisterScavenging() const;
|
||||||
|
|
||||||
bool hasFP(const MachineFunction &MF) const;
|
bool hasFP(const MachineFunction &MF) const;
|
||||||
|
|
||||||
void eliminateCallFramePseudoInstr(MachineFunction &MF,
|
void eliminateCallFramePseudoInstr(MachineFunction &MF,
|
||||||
MachineBasicBlock &MBB,
|
MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator I) const;
|
MachineBasicBlock::iterator I) const;
|
||||||
|
|
||||||
void eliminateFrameIndex(MachineBasicBlock::iterator II) const;
|
void eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||||
|
RegScavenger *RS = NULL) const;
|
||||||
|
|
||||||
void processFunctionBeforeCalleeSavedScan(MachineFunction &MF) const;
|
void processFunctionBeforeCalleeSavedScan(MachineFunction &MF) const;
|
||||||
|
|
||||||
|
@ -245,8 +245,8 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
|
|||||||
//variable locals
|
//variable locals
|
||||||
//<- SP
|
//<- SP
|
||||||
|
|
||||||
void
|
void AlphaRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||||
AlphaRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II) const {
|
RegScavenger *RS) const {
|
||||||
unsigned i = 0;
|
unsigned i = 0;
|
||||||
MachineInstr &MI = *II;
|
MachineInstr &MI = *II;
|
||||||
MachineBasicBlock &MBB = *MI.getParent();
|
MachineBasicBlock &MBB = *MI.getParent();
|
||||||
|
@ -57,7 +57,8 @@ struct AlphaRegisterInfo : public AlphaGenRegisterInfo {
|
|||||||
MachineBasicBlock &MBB,
|
MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator I) const;
|
MachineBasicBlock::iterator I) const;
|
||||||
|
|
||||||
void eliminateFrameIndex(MachineBasicBlock::iterator II) const;
|
void eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||||
|
RegScavenger *RS = NULL) const;
|
||||||
|
|
||||||
//void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
|
//void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
|
||||||
|
|
||||||
|
@ -167,7 +167,8 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
|
|||||||
MBB.erase(I);
|
MBB.erase(I);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IA64RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II)const{
|
void IA64RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||||
|
RegScavenger *RS)const{
|
||||||
unsigned i = 0;
|
unsigned i = 0;
|
||||||
MachineInstr &MI = *II;
|
MachineInstr &MI = *II;
|
||||||
MachineBasicBlock &MBB = *MI.getParent();
|
MachineBasicBlock &MBB = *MI.getParent();
|
||||||
|
@ -56,7 +56,8 @@ struct IA64RegisterInfo : public IA64GenRegisterInfo {
|
|||||||
MachineBasicBlock &MBB,
|
MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator MI) const;
|
MachineBasicBlock::iterator MI) const;
|
||||||
|
|
||||||
void eliminateFrameIndex(MachineBasicBlock::iterator MI) const;
|
void eliminateFrameIndex(MachineBasicBlock::iterator MI,
|
||||||
|
RegScavenger *RS = NULL) const;
|
||||||
|
|
||||||
void emitPrologue(MachineFunction &MF) const;
|
void emitPrologue(MachineFunction &MF) const;
|
||||||
void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
|
void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
|
||||||
|
@ -623,8 +623,8 @@ void PPCRegisterInfo::lowerDynamicAlloc(MachineBasicBlock::iterator II) const {
|
|||||||
MBB.erase(II);
|
MBB.erase(II);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void PPCRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||||
PPCRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II) const {
|
RegScavenger *RS) const {
|
||||||
// Get the instruction.
|
// Get the instruction.
|
||||||
MachineInstr &MI = *II;
|
MachineInstr &MI = *II;
|
||||||
// Get the instruction's basic block.
|
// Get the instruction's basic block.
|
||||||
|
@ -76,7 +76,8 @@ public:
|
|||||||
bool usesLR(MachineFunction &MF) const;
|
bool usesLR(MachineFunction &MF) const;
|
||||||
|
|
||||||
void lowerDynamicAlloc(MachineBasicBlock::iterator II) const;
|
void lowerDynamicAlloc(MachineBasicBlock::iterator II) const;
|
||||||
void eliminateFrameIndex(MachineBasicBlock::iterator II) const;
|
void eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||||
|
RegScavenger *RS = NULL) const;
|
||||||
|
|
||||||
/// determineFrameLayout - Determine the size of the frame and maximum call
|
/// determineFrameLayout - Determine the size of the frame and maximum call
|
||||||
/// frame size.
|
/// frame size.
|
||||||
|
@ -155,8 +155,8 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
|
|||||||
MBB.erase(I);
|
MBB.erase(I);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void SparcRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||||
SparcRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II) const {
|
RegScavenger *RS) const {
|
||||||
unsigned i = 0;
|
unsigned i = 0;
|
||||||
MachineInstr &MI = *II;
|
MachineInstr &MI = *II;
|
||||||
while (!MI.getOperand(i).isFrameIndex()) {
|
while (!MI.getOperand(i).isFrameIndex()) {
|
||||||
|
@ -60,7 +60,8 @@ struct SparcRegisterInfo : public SparcGenRegisterInfo {
|
|||||||
MachineBasicBlock &MBB,
|
MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator I) const;
|
MachineBasicBlock::iterator I) const;
|
||||||
|
|
||||||
void eliminateFrameIndex(MachineBasicBlock::iterator II) const;
|
void eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||||
|
RegScavenger *RS = NULL) const;
|
||||||
|
|
||||||
void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
|
void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
|
||||||
|
|
||||||
|
@ -968,7 +968,8 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
|
|||||||
MBB.erase(I);
|
MBB.erase(I);
|
||||||
}
|
}
|
||||||
|
|
||||||
void X86RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II) const{
|
void X86RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||||
|
RegScavenger *RS) const{
|
||||||
unsigned i = 0;
|
unsigned i = 0;
|
||||||
MachineInstr &MI = *II;
|
MachineInstr &MI = *II;
|
||||||
MachineFunction &MF = *MI.getParent()->getParent();
|
MachineFunction &MF = *MI.getParent()->getParent();
|
||||||
|
@ -90,7 +90,8 @@ public:
|
|||||||
MachineBasicBlock &MBB,
|
MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator MI) const;
|
MachineBasicBlock::iterator MI) const;
|
||||||
|
|
||||||
void eliminateFrameIndex(MachineBasicBlock::iterator MI) const;
|
void eliminateFrameIndex(MachineBasicBlock::iterator MI,
|
||||||
|
RegScavenger *RS = NULL) const;
|
||||||
|
|
||||||
void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
|
void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user