diff options
Diffstat (limited to 'llvm/lib/CodeGen/CommandFlags.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/CommandFlags.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/CommandFlags.cpp b/llvm/lib/CodeGen/CommandFlags.cpp index c1365f4..02ae722 100644 --- a/llvm/lib/CodeGen/CommandFlags.cpp +++ b/llvm/lib/CodeGen/CommandFlags.cpp @@ -210,6 +210,9 @@ codegen::RegisterCodeGenFlags::RegisterCodeGenFlags() { clEnumValN(FramePointerKind::All, "all", "Disable frame pointer elimination"), clEnumValN(FramePointerKind::NonLeaf, "non-leaf", + "Disable frame pointer elimination for non-leaf frame but " + "reserve the register in leaf functions"), + clEnumValN(FramePointerKind::NonLeafNoReserve, "non-leaf-no-reserve", "Disable frame pointer elimination for non-leaf frame"), clEnumValN(FramePointerKind::Reserved, "reserved", "Enable frame pointer elimination, but reserve the frame " @@ -687,6 +690,8 @@ void codegen::setFunctionAttributes(StringRef CPU, StringRef Features, NewAttrs.addAttribute("frame-pointer", "all"); else if (getFramePointerUsage() == FramePointerKind::NonLeaf) NewAttrs.addAttribute("frame-pointer", "non-leaf"); + else if (getFramePointerUsage() == FramePointerKind::NonLeafNoReserve) + NewAttrs.addAttribute("frame-pointer", "non-leaf-no-reserve"); else if (getFramePointerUsage() == FramePointerKind::Reserved) NewAttrs.addAttribute("frame-pointer", "reserved"); else if (getFramePointerUsage() == FramePointerKind::None) |
