mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-29 22:30:33 +00:00
Get rid of one getStackAlignment(). RegisterInfo shouldn't need to know about stack alignment.
llvm-svn: 133679
This commit is contained in:
parent
538dc8cc6f
commit
71256b6030
@ -2082,7 +2082,8 @@ void X86InstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
|
||||
const MachineFunction &MF = *MBB.getParent();
|
||||
assert(MF.getFrameInfo()->getObjectSize(FrameIdx) >= RC->getSize() &&
|
||||
"Stack slot too small for store");
|
||||
bool isAligned = (RI.getStackAlignment() >= 16) || RI.canRealignStack(MF);
|
||||
bool isAligned = (TM.getFrameLowering()->getStackAlignment() >= 16) ||
|
||||
RI.canRealignStack(MF);
|
||||
unsigned Opc = getStoreRegOpcode(SrcReg, RC, isAligned, TM);
|
||||
DebugLoc DL = MBB.findDebugLoc(MI);
|
||||
addFrameReference(BuildMI(MBB, MI, DL, get(Opc)), FrameIdx)
|
||||
@ -2114,7 +2115,8 @@ void X86InstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
|
||||
const TargetRegisterClass *RC,
|
||||
const TargetRegisterInfo *TRI) const {
|
||||
const MachineFunction &MF = *MBB.getParent();
|
||||
bool isAligned = (RI.getStackAlignment() >= 16) || RI.canRealignStack(MF);
|
||||
bool isAligned = (TM.getFrameLowering()->getStackAlignment() >= 16) ||
|
||||
RI.canRealignStack(MF);
|
||||
unsigned Opc = getLoadRegOpcode(DestReg, RC, isAligned, TM);
|
||||
DebugLoc DL = MBB.findDebugLoc(MI);
|
||||
addFrameReference(BuildMI(MBB, MI, DL, get(Opc), DestReg), FrameIdx);
|
||||
|
@ -60,7 +60,6 @@ X86RegisterInfo::X86RegisterInfo(X86TargetMachine &tm,
|
||||
const X86Subtarget *Subtarget = &TM.getSubtarget<X86Subtarget>();
|
||||
Is64Bit = Subtarget->is64Bit();
|
||||
IsWin64 = Subtarget->isTargetWin64();
|
||||
StackAlign = TM.getFrameLowering()->getStackAlignment();
|
||||
|
||||
if (Is64Bit) {
|
||||
SlotSize = 8;
|
||||
@ -557,6 +556,7 @@ bool X86RegisterInfo::canRealignStack(const MachineFunction &MF) const {
|
||||
bool X86RegisterInfo::needsStackRealignment(const MachineFunction &MF) const {
|
||||
const MachineFrameInfo *MFI = MF.getFrameInfo();
|
||||
const Function *F = MF.getFunction();
|
||||
unsigned StackAlign = TM.getFrameLowering()->getStackAlignment();
|
||||
bool requiresRealignment = ((MFI->getMaxAlignment() > StackAlign) ||
|
||||
F->hasFnAttr(Attribute::StackAlignment));
|
||||
|
||||
@ -632,6 +632,7 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
|
||||
// We need to keep the stack aligned properly. To do this, we round the
|
||||
// amount of space needed for the outgoing arguments up to the next
|
||||
// alignment boundary.
|
||||
unsigned StackAlign = TM.getFrameLowering()->getStackAlignment();
|
||||
Amount = (Amount + StackAlign - 1) / StackAlign * StackAlign;
|
||||
|
||||
MachineInstr *New = 0;
|
||||
@ -927,10 +928,10 @@ namespace {
|
||||
virtual bool runOnMachineFunction(MachineFunction &MF) {
|
||||
const X86TargetMachine *TM =
|
||||
static_cast<const X86TargetMachine *>(&MF.getTarget());
|
||||
const X86RegisterInfo *X86RI = TM->getRegisterInfo();
|
||||
const TargetFrameLowering *TFI = TM->getFrameLowering();
|
||||
MachineRegisterInfo &RI = MF.getRegInfo();
|
||||
X86MachineFunctionInfo *FuncInfo = MF.getInfo<X86MachineFunctionInfo>();
|
||||
unsigned StackAlignment = X86RI->getStackAlignment();
|
||||
unsigned StackAlignment = TFI->getStackAlignment();
|
||||
|
||||
// Be over-conservative: scan over all vreg defs and find whether vector
|
||||
// registers are used. If yes, there is a possibility that vector register
|
||||
|
@ -56,10 +56,6 @@ private:
|
||||
///
|
||||
unsigned SlotSize;
|
||||
|
||||
/// StackAlign - Default stack alignment.
|
||||
///
|
||||
unsigned StackAlign;
|
||||
|
||||
/// StackPtr - X86 physical register used as stack ptr.
|
||||
///
|
||||
unsigned StackPtr;
|
||||
@ -75,8 +71,6 @@ public:
|
||||
/// register identifier.
|
||||
static unsigned getX86RegNum(unsigned RegNo);
|
||||
|
||||
unsigned getStackAlignment() const { return StackAlign; }
|
||||
|
||||
/// getDwarfRegNum - allows modification of X86GenRegisterInfo::getDwarfRegNum
|
||||
/// (created by TableGen) for target dependencies.
|
||||
int getDwarfRegNum(unsigned RegNum, bool isEH) const;
|
||||
|
Loading…
Reference in New Issue
Block a user