aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2011-06-23 05:13:28 +0000
committerBill Wendling <isanbard@gmail.com>2011-06-23 05:13:28 +0000
commit4c0c446d7458ffcfbe108ea71f1915f387e150e7 (patch)
tree3186a506cfd7c5d774595193e844dc9e0f8d9de8
parent9dbbd87938a0dc2ffe23f4205ec61618e052ca92 (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.h4
-rw-r--r--include/llvm/Target/TargetLoweringObjectFile.h7
-rw-r--r--lib/CodeGen/TargetLoweringObjectFileImpl.cpp17
-rw-r--r--lib/MC/MCDwarf.cpp2
-rw-r--r--lib/Target/TargetLoweringObjectFile.cpp1
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() {