aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/TargetOptionsImpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/CodeGen/TargetOptionsImpl.cpp')
-rw-r--r--llvm/lib/CodeGen/TargetOptionsImpl.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/TargetOptionsImpl.cpp b/llvm/lib/CodeGen/TargetOptionsImpl.cpp
index c33bf8b..16d86b4 100644
--- a/llvm/lib/CodeGen/TargetOptionsImpl.cpp
+++ b/llvm/lib/CodeGen/TargetOptionsImpl.cpp
@@ -30,7 +30,7 @@ bool TargetOptions::DisableFramePointerElim(const MachineFunction &MF) const {
StringRef FP = FPAttr.getValueAsString();
if (FP == "all")
return true;
- if (FP == "non-leaf")
+ if (FP == "non-leaf" || FP == "non-leaf-no-reserve")
return MF.getFrameInfo().hasCalls();
if (FP == "none" || FP == "reserved")
return false;
@@ -45,6 +45,7 @@ bool TargetOptions::FramePointerIsReserved(const MachineFunction &MF) const {
return StringSwitch<bool>(FPAttr.getValueAsString())
.Cases({"all", "non-leaf", "reserved"}, true)
+ .Case(("non-leaf-no-reserve"), MF.getFrameInfo().hasCalls())
.Case("none", false);
}