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
diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h
index 1dc725a..abaed81 100644
--- a/include/llvm/Target/TargetAsmInfo.h
+++ b/include/llvm/Target/TargetAsmInfo.h
@@ -83,10 +83,6 @@
     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 a3d1f37..2e1d6b9 100644
--- a/include/llvm/Target/TargetLoweringObjectFile.h
+++ b/include/llvm/Target/TargetLoweringObjectFile.h
@@ -108,10 +108,6 @@
   /// 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 @@
   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 df42b2c..f2eb5cf 100644
--- a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+++ b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
@@ -487,12 +487,8 @@
 
   // .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 @@
   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 937dad4..dd63c15 100644
--- a/lib/MC/MCDwarf.cpp
+++ b/lib/MC/MCDwarf.cpp
@@ -917,7 +917,7 @@
     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 130a553..9f87c07 100644
--- a/lib/Target/TargetLoweringObjectFile.cpp
+++ b/lib/Target/TargetLoweringObjectFile.cpp
@@ -61,7 +61,6 @@
   
   IsFunctionEHFrameSymbolPrivate = true;
   SupportsWeakOmittedEHFrame = true;
-  SupportsCompactUnwindInfo = false;
 }
 
 TargetLoweringObjectFile::~TargetLoweringObjectFile() {