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.

llvm-svn: 133685
This commit is contained in:
Bill Wendling 2011-06-23 05:13:28 +00:00
parent 084db10d4d
commit 9af2fa9d1b
5 changed files with 8 additions and 23 deletions

View File

@ -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);
}

View File

@ -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; }

View File

@ -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 =

View File

@ -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;

View File

@ -61,7 +61,6 @@ TargetLoweringObjectFile::TargetLoweringObjectFile() : Ctx(0) {
IsFunctionEHFrameSymbolPrivate = true;
SupportsWeakOmittedEHFrame = true;
SupportsCompactUnwindInfo = false;
}
TargetLoweringObjectFile::~TargetLoweringObjectFile() {