forked from OSchip/llvm-project
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:
parent
084db10d4d
commit
9af2fa9d1b
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -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 =
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -61,7 +61,6 @@ TargetLoweringObjectFile::TargetLoweringObjectFile() : Ctx(0) {
|
|||
|
||||
IsFunctionEHFrameSymbolPrivate = true;
|
||||
SupportsWeakOmittedEHFrame = true;
|
||||
SupportsCompactUnwindInfo = false;
|
||||
}
|
||||
|
||||
TargetLoweringObjectFile::~TargetLoweringObjectFile() {
|
||||
|
|
Loading…
Reference in New Issue