Add a flag that indicates whether a target supports compact unwind info or not.
authorBill Wendling <isanbard@gmail.com>
Wed, 22 Jun 2011 23:16:51 +0000 (23:16 +0000)
committerBill Wendling <isanbard@gmail.com>
Wed, 22 Jun 2011 23:16:51 +0000 (23:16 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133662 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetLoweringObjectFile.h
lib/CodeGen/TargetLoweringObjectFileImpl.cpp
lib/Target/TargetLoweringObjectFile.cpp

index 12ea2a5756e8075cff3288ca438e7402584ca745..a3d1f372b435b53dc15600735aa4e77cf21c5f14 100644 (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; }
index 3f346a359578284b5d1f313a0f4c2e62c26a395b..df42b2ca0b5699c411ec40d3dde5ae4c81ed47f9 100644 (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);
 
index 9f87c071643063c4ff78249c23fc51df0f24fe19..130a553e292a9f41f772e66afa1bbfcd6b9a7e68 100644 (file)
@@ -61,6 +61,7 @@ TargetLoweringObjectFile::TargetLoweringObjectFile() : Ctx(0) {
   
   IsFunctionEHFrameSymbolPrivate = true;
   SupportsWeakOmittedEHFrame = true;
+  SupportsCompactUnwindInfo = false;
 }
 
 TargetLoweringObjectFile::~TargetLoweringObjectFile() {