Add DW_AT_APPLE_omit_frame_ptr to encode -fomit-frame-pointer flag.
authorDevang Patel <dpatel@apple.com>
Mon, 19 Apr 2010 19:14:02 +0000 (19:14 +0000)
committerDevang Patel <dpatel@apple.com>
Mon, 19 Apr 2010 19:14:02 +0000 (19:14 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101805 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/Dwarf.h
lib/CodeGen/AsmPrinter/DwarfDebug.cpp
lib/Support/Dwarf.cpp

index 31f4fd223dc59e36dbbe4b509ab82563f00b54df..3d25e0368b5aab214845fd9a45431fbf441ada1e 100644 (file)
@@ -230,6 +230,7 @@ enum dwarf_constants {
   DW_AT_APPLE_block = 0x3fe4,
   DW_AT_APPLE_major_runtime_vers = 0x3fe5,
   DW_AT_APPLE_runtime_class = 0x3fe6,
+  DW_AT_APPLE_omit_frame_ptr = 0x3fe7,
 
   // Attribute form encodings
   DW_FORM_addr = 0x01,
index 454aa5633bd05251b6e7b710c3e290106b0849ec..23f08f1df5cc4df008d90aa5617b9fd11b646929 100644 (file)
@@ -28,6 +28,7 @@
 #include "llvm/Target/TargetLoweringObjectFile.h"
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/Target/TargetRegisterInfo.h"
+#include "llvm/Target/TargetOptions.h"
 #include "llvm/Analysis/DebugInfo.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/StringExtras.h"
@@ -1249,6 +1250,10 @@ DIE *DwarfDebug::createSubprogramDIE(const DISubprogram &SP, bool MakeDecl) {
 
   // DW_TAG_inlined_subroutine may refer to this DIE.
   ModuleCU->insertDIE(SP.getNode(), SPDie);
+  
+  if (NoFramePointerElim == false)
+    addUInt(SPDie, dwarf::DW_AT_APPLE_omit_frame_ptr, dwarf::DW_FORM_flag, 1);
+
   return SPDie;
 }
 
index d1230b9de8ad627d78a1708623b7bade54c4f8af..9a6285b6630770178de565b19ffc67919dc6e766 100644 (file)
@@ -196,8 +196,9 @@ const char *llvm::dwarf::AttributeString(unsigned Attribute) {
   case DW_AT_APPLE_flags:                return "DW_AT_APPLE_flags";
   case DW_AT_APPLE_isa:                  return "DW_AT_APPLE_isa";
   case DW_AT_APPLE_block:                return "DW_AT_APPLE_block";
-  case DW_AT_APPLE_major_runtime_vers:  return "DW_AT_APPLE_major_runtime_vers";
+  case DW_AT_APPLE_major_runtime_vers:   return "DW_AT_APPLE_major_runtime_vers";
   case DW_AT_APPLE_runtime_class:        return "DW_AT_APPLE_runtime_class";
+  case DW_AT_APPLE_omit_frame_ptr:       return "DW_APPLE_omit_frame_ptr";
   }
   return 0;
 }