diff options
author | Bill Wendling <isanbard@gmail.com> | 2011-06-23 05:13:28 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2011-06-23 05:13:28 +0000 |
commit | 4c0c446d7458ffcfbe108ea71f1915f387e150e7 (patch) | |
tree | 3186a506cfd7c5d774595193e844dc9e0f8d9de8 | |
parent | 9dbbd87938a0dc2ffe23f4205ec61618e052ca92 (diff) |
Use the presence of the __compact_unwind section to indicate that a target
supports compact unwind info instead of having a separate flag indicating this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133685 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Target/TargetAsmInfo.h | 4 | ||||
-rw-r--r-- | include/llvm/Target/TargetLoweringObjectFile.h | 7 | ||||
-rw-r--r-- | lib/CodeGen/TargetLoweringObjectFileImpl.cpp | 17 | ||||
-rw-r--r-- | lib/MC/MCDwarf.cpp | 2 | ||||
-rw-r--r-- | lib/Target/TargetLoweringObjectFile.cpp | 1 |
5 files changed, 8 insertions, 23 deletions
diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h index 1dc725a893..abaed81198 100644 --- a/include/llvm/Target/TargetAsmInfo.h +++ b/include/llvm/Target/TargetAsmInfo.h @@ -83,10 +83,6 @@ public: return TLOF->isFunctionEHFrameSymbolPrivate(); } - bool getSupportsCompactUnwindInfo() const { - return TLOF->getSupportsCompactUnwindInfo(); - } - const unsigned *getCalleeSavedRegs(MachineFunction *MF = 0) const { return TRI->getCalleeSavedRegs(MF); } diff --git a/include/llvm/Target/TargetLoweringObjectFile.h b/include/llvm/Target/TargetLoweringObjectFile.h index a3d1f372b4..2e1d6b97e7 100644 --- a/include/llvm/Target/TargetLoweringObjectFile.h +++ b/include/llvm/Target/TargetLoweringObjectFile.h @@ -108,10 +108,6 @@ protected: /// non-.globl label. This defaults to true. bool IsFunctionEHFrameSymbolPrivate; - /// SupportsCompactUnwindInfo - This flag is set to true if the CIE and FDE - /// information should be emitted in a compact form. - bool SupportsCompactUnwindInfo; - public: MCContext &getContext() const { return *Ctx; } @@ -133,9 +129,6 @@ public: bool getCommDirectiveSupportsAlignment() const { return CommDirectiveSupportsAlignment; } - bool getSupportsCompactUnwindInfo() const { - return SupportsCompactUnwindInfo; - } const MCSection *getTextSection() const { return TextSection; } const MCSection *getDataSection() const { return DataSection; } diff --git a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp index df42b2ca0b..f2eb5cf0f5 100644 --- a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp +++ b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp @@ -487,12 +487,8 @@ void TargetLoweringObjectFileMachO::Initialize(MCContext &Ctx, // .comm doesn't support alignment before Leopard. Triple T(((LLVMTargetMachine&)TM).getTargetTriple()); - if (T.isMacOSX()) { - if (T.isMacOSXVersionLT(10, 5)) - CommDirectiveSupportsAlignment = false; - if (!T.isMacOSXVersionLT(10, 6)) - SupportsCompactUnwindInfo = true; - } + if (T.isMacOSX() && T.isMacOSXVersionLT(10, 5)) + CommDirectiveSupportsAlignment = false; TargetLoweringObjectFile::Initialize(Ctx, TM); @@ -610,10 +606,11 @@ void TargetLoweringObjectFileMachO::Initialize(MCContext &Ctx, LSDASection = getContext().getMachOSection("__TEXT", "__gcc_except_tab", 0, SectionKind::getReadOnlyWithRel()); - CompactUnwindSection = - getContext().getMachOSection("__LD", "__compact_unwind", - MCSectionMachO::S_ATTR_DEBUG, - SectionKind::getReadOnly()); + if (T.isMacOSX() && !T.isMacOSXVersionLT(10, 6)) + CompactUnwindSection = + getContext().getMachOSection("__LD", "__compact_unwind", + MCSectionMachO::S_ATTR_DEBUG, + SectionKind::getReadOnly()); // Debug Information. DwarfAbbrevSection = diff --git a/lib/MC/MCDwarf.cpp b/lib/MC/MCDwarf.cpp index 937dad4102..dd63c15018 100644 --- a/lib/MC/MCDwarf.cpp +++ b/lib/MC/MCDwarf.cpp @@ -917,7 +917,7 @@ void MCDwarfFrameEmitter::Emit(MCStreamer &streamer, CIEKey key(frame.Personality, frame.PersonalityEncoding, frame.LsdaEncoding); const MCSymbol *&cieStart = isEH ? CIEStarts[key] : DummyDebugKey; - if (isEH && asmInfo.getSupportsCompactUnwindInfo() && + if (isEH && asmInfo.getCompactUnwindSection() && Emitter.EmitCompactUnwind(streamer, frame)) continue; diff --git a/lib/Target/TargetLoweringObjectFile.cpp b/lib/Target/TargetLoweringObjectFile.cpp index 130a553e29..9f87c07164 100644 --- a/lib/Target/TargetLoweringObjectFile.cpp +++ b/lib/Target/TargetLoweringObjectFile.cpp @@ -61,7 +61,6 @@ TargetLoweringObjectFile::TargetLoweringObjectFile() : Ctx(0) { IsFunctionEHFrameSymbolPrivate = true; SupportsWeakOmittedEHFrame = true; - SupportsCompactUnwindInfo = false; } TargetLoweringObjectFile::~TargetLoweringObjectFile() { |