Add a flag that indicates whether a target supports compact unwind info or not.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133662 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling 2011-06-22 23:16:51 +00:00
parent d6379a993c
commit 1a3ab63cb5
3 changed files with 15 additions and 4 deletions

View File

@ -107,8 +107,12 @@ protected:
/// private linkage, aka an L or .L label) or false if it should be a normal
/// 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; }
virtual ~TargetLoweringObjectFile();
@ -126,10 +130,12 @@ public:
bool getSupportsWeakOmittedEHFrame() const {
return SupportsWeakOmittedEHFrame;
}
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,8 +487,12 @@ void TargetLoweringObjectFileMachO::Initialize(MCContext &Ctx,
// .comm doesn't support alignment before Leopard.
Triple T(((LLVMTargetMachine&)TM).getTargetTriple());
if (T.isMacOSX() && T.isMacOSXVersionLT(10, 5))
CommDirectiveSupportsAlignment = false;
if (T.isMacOSX()) {
if (T.isMacOSXVersionLT(10, 5))
CommDirectiveSupportsAlignment = false;
if (!T.isMacOSXVersionLT(10, 6))
SupportsCompactUnwindInfo = true;
}
TargetLoweringObjectFile::Initialize(Ctx, TM);

View File

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