diff options
author | Bill Wendling <isanbard@gmail.com> | 2008-07-01 23:34:48 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2008-07-01 23:34:48 +0000 |
commit | aa8f8889a861aadc061aec71fb7ed7f628848a2d (patch) | |
tree | 311af25e30747a4defe06d624952d2c40aa40bfb | |
parent | 6547e406cf934346db7a206b61bcf09635afff0d (diff) |
Darwin doesn't need exception handling information for the "move" info when
debug information is being output, because it's leet!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52994 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Target/TargetAsmInfo.h | 9 | ||||
-rw-r--r-- | lib/CodeGen/DwarfWriter.cpp | 4 | ||||
-rw-r--r-- | lib/Target/PowerPC/PPCTargetAsmInfo.cpp | 1 | ||||
-rw-r--r-- | lib/Target/TargetAsmInfo.cpp | 1 | ||||
-rw-r--r-- | lib/Target/X86/X86TargetAsmInfo.cpp | 1 |
5 files changed, 13 insertions, 3 deletions
diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h index 2fb2a68b36..aada8ff937 100644 --- a/include/llvm/Target/TargetAsmInfo.h +++ b/include/llvm/Target/TargetAsmInfo.h @@ -412,7 +412,11 @@ namespace llvm { /// DwarfExceptionSection - Section directive for Exception table. /// const char *DwarfExceptionSection; // Defaults to ".gcc_except_table". - + + /// DebugInfoRequireFrameMoveInfo - Does debugging info require frame move + /// info. + /// + bool DebugInfoRequireFrameMoveInfo; // Defaults to "true" //===--- CBE Asm Translation Table -----------------------------------===// @@ -699,6 +703,9 @@ namespace llvm { const char *getDwarfExceptionSection() const { return DwarfExceptionSection; } + bool doesDebugInfoRequireFrameMoveInfo() const { + return DebugInfoRequireFrameMoveInfo; + } const char *const *getAsmCBE() const { return AsmTransCBE; } diff --git a/lib/CodeGen/DwarfWriter.cpp b/lib/CodeGen/DwarfWriter.cpp index 68ec6c49ac..569702c59d 100644 --- a/lib/CodeGen/DwarfWriter.cpp +++ b/lib/CodeGen/DwarfWriter.cpp @@ -827,7 +827,7 @@ protected: /// AsmPrinter *Asm; - /// TAI - Target Asm Printer. + /// TAI - Target asm information. const TargetAsmInfo *TAI; /// TD - Target data. @@ -3511,7 +3511,7 @@ public: shouldEmitTable = true; // See if we need frame move info. - if (MMI->hasDebugInfo() || + if ((MMI->hasDebugInfo() && TAI->doesDebugInfoRequireFrameMoveInfo()) || !MF->getFunction()->doesNotThrow() || UnwindTablesMandatory) shouldEmitMoves = true; diff --git a/lib/Target/PowerPC/PPCTargetAsmInfo.cpp b/lib/Target/PowerPC/PPCTargetAsmInfo.cpp index 058de655ef..00e1aabdd1 100644 --- a/lib/Target/PowerPC/PPCTargetAsmInfo.cpp +++ b/lib/Target/PowerPC/PPCTargetAsmInfo.cpp @@ -66,6 +66,7 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo(const PPCTargetMachine &TM) DwarfEHFrameSection = ".section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support"; DwarfExceptionSection = ".section __DATA,__gcc_except_tab"; + DebugInfoRequireFrameMoveInfo = false; GlobalEHDirective = "\t.globl\t"; SupportsWeakOmittedEHFrame = false; diff --git a/lib/Target/TargetAsmInfo.cpp b/lib/Target/TargetAsmInfo.cpp index 2adad3d7ba..8caff91e60 100644 --- a/lib/Target/TargetAsmInfo.cpp +++ b/lib/Target/TargetAsmInfo.cpp @@ -111,6 +111,7 @@ TargetAsmInfo::TargetAsmInfo() : DwarfMacInfoSection(".debug_macinfo"), DwarfEHFrameSection(".eh_frame"), DwarfExceptionSection(".gcc_except_table"), + DebugInfoRequireFrameMoveInfo(true), AsmTransCBE(0) { } diff --git a/lib/Target/X86/X86TargetAsmInfo.cpp b/lib/Target/X86/X86TargetAsmInfo.cpp index 887c13dcc7..d0b3b818f1 100644 --- a/lib/Target/X86/X86TargetAsmInfo.cpp +++ b/lib/Target/X86/X86TargetAsmInfo.cpp @@ -124,6 +124,7 @@ X86TargetAsmInfo::X86TargetAsmInfo(const X86TargetMachine &TM) { DwarfEHFrameSection = ".section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support"; DwarfExceptionSection = ".section __DATA,__gcc_except_tab"; + DebugInfoRequireFrameMoveInfo = false; break; case X86Subtarget::isELF: |