forked from OSchip/llvm-project
[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
3a302349eb
commit
677e94c0f0
|
@ -174,26 +174,3 @@ void VERegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
|||
Register VERegisterInfo::getFrameRegister(const MachineFunction &MF) const {
|
||||
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;
|
||||
|
||||
Register getFrameRegister(const MachineFunction &MF) const override;
|
||||
|
||||
bool canRealignStack(const MachineFunction &MF) const override;
|
||||
};
|
||||
|
||||
} // namespace llvm
|
||||
|
|
Loading…
Reference in New Issue