mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
[VE] Clean canRealignStack implementation
Old canRealignStack calls TRI::canRealignStack and hasReservedCallFrame. But, this hasReservedCallFrame return true whenever for VE since VE allocates call frame all the time. It means this canRealignStack is identical to TRI::canRealignStack. This patch removes VE's canRealignStack and let caller call TRI::canRealignStack directly. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D91929
This commit is contained in:
parent
79162fb8e4
commit
2e32cdcd1f
@ -174,26 +174,3 @@ void VERegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
|||||||
Register VERegisterInfo::getFrameRegister(const MachineFunction &MF) const {
|
Register VERegisterInfo::getFrameRegister(const MachineFunction &MF) const {
|
||||||
return VE::SX9;
|
return VE::SX9;
|
||||||
}
|
}
|
||||||
|
|
||||||
// VE has no architectural need for stack realignment support,
|
|
||||||
// except that LLVM unfortunately currently implements overaligned
|
|
||||||
// stack objects by depending upon stack realignment support.
|
|
||||||
// If that ever changes, this can probably be deleted.
|
|
||||||
bool VERegisterInfo::canRealignStack(const MachineFunction &MF) const {
|
|
||||||
if (!TargetRegisterInfo::canRealignStack(MF))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// VE always has a fixed frame pointer register, so don't need to
|
|
||||||
// worry about needing to reserve it. [even if we don't have a frame
|
|
||||||
// pointer for our frame, it still cannot be used for other things,
|
|
||||||
// or register window traps will be SADNESS.]
|
|
||||||
|
|
||||||
// If there's a reserved call frame, we can use VE to access locals.
|
|
||||||
if (getFrameLowering(MF)->hasReservedCallFrame(MF))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
// Otherwise, we'd need a base pointer, but those aren't implemented
|
|
||||||
// for VE at the moment.
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
@ -40,8 +40,6 @@ public:
|
|||||||
RegScavenger *RS = nullptr) const override;
|
RegScavenger *RS = nullptr) const override;
|
||||||
|
|
||||||
Register getFrameRegister(const MachineFunction &MF) const override;
|
Register getFrameRegister(const MachineFunction &MF) const override;
|
||||||
|
|
||||||
bool canRealignStack(const MachineFunction &MF) const override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace llvm
|
} // namespace llvm
|
||||||
|
Loading…
Reference in New Issue
Block a user