diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2016-02-24 21:32:58 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2016-02-24 21:32:58 +0000 |
| commit | d9c9bd8485071afb22adcd2bb08f6a8e5e587ed6 (patch) | |
| tree | 53c036d35173ba19f107d9afe07678667d270bee /lib/Target/AArch64/AArch64FrameLowering.cpp | |
| parent | 3f4bde29a30d8c43db5cbe8f5541ebc5d1fdc6af (diff) | |
Vendor import of llvm release_38 branch r261684:vendor/llvm/llvm-release_38-r261684
Notes
svn path=/vendor/llvm/dist/; revision=296003
svn path=/vendor/llvm/llvm-release_38-r261684/; revision=296004; tag=vendor/llvm/llvm-release_38-r261684
Diffstat (limited to 'lib/Target/AArch64/AArch64FrameLowering.cpp')
| -rw-r--r-- | lib/Target/AArch64/AArch64FrameLowering.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Target/AArch64/AArch64FrameLowering.cpp b/lib/Target/AArch64/AArch64FrameLowering.cpp index 11ae8005370d..3f63d049c34e 100644 --- a/lib/Target/AArch64/AArch64FrameLowering.cpp +++ b/lib/Target/AArch64/AArch64FrameLowering.cpp @@ -275,6 +275,18 @@ static bool isCSSave(MachineInstr *MBBI) { MBBI->getOpcode() == AArch64::STPDpre; } +bool AArch64FrameLowering::canUseAsPrologue( + const MachineBasicBlock &MBB) const { + const MachineFunction *MF = MBB.getParent(); + const AArch64Subtarget &Subtarget = MF->getSubtarget<AArch64Subtarget>(); + const AArch64RegisterInfo *RegInfo = Subtarget.getRegisterInfo(); + + // Don't need a scratch register if we're not going to re-align the stack. + // Otherwise, we may need a scratch register to be available and we do not + // support that for now. + return !RegInfo->needsStackRealignment(*MF); +} + void AArch64FrameLowering::emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const { MachineBasicBlock::iterator MBBI = MBB.begin(); |
