Use the presence of the __compact_unwind section to indicate that a target
authorBill Wendling <isanbard@gmail.com>
Thu, 23 Jun 2011 05:13:28 +0000 (05:13 +0000)
committerBill Wendling <isanbard@gmail.com>
Thu, 23 Jun 2011 05:13:28 +0000 (05:13 +0000)
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

include/llvm/Target/TargetAsmInfo.h
include/llvm/Target/TargetLoweringObjectFile.h
lib/CodeGen/TargetLoweringObjectFileImpl.cpp
lib/MC/MCDwarf.cpp
lib/Target/TargetLoweringObjectFile.cpp

index 1dc725a89336bb6f1de025283670fe0172bebabe..abaed81198907d9a6cf2c28f4e573466de22675e 100644 (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);
   }
index a3d1f372b435b53dc15600735aa4e77cf21c5f14..2e1d6b97e733592d388fa4b8786ca78f74d156a7 100644 (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; }
index df42b2ca0b5699c411ec40d3dde5ae4c81ed47f9..f2eb5cf0f57feb210c239926eb9619a609f30dac 100644 (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 =
index 937dad41026be6bff73b52c138773edc8c7aa0b2..dd63c15018d02ceab6be802f4ff6462443653714 100644 (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;
 
index 130a553e292a9f41f772e66afa1bbfcd6b9a7e68..9f87c071643063c4ff78249c23fc51df0f24fe19 100644 (file)
@@ -61,7 +61,6 @@ TargetLoweringObjectFile::TargetLoweringObjectFile() : Ctx(0) {
   
   IsFunctionEHFrameSymbolPrivate = true;
   SupportsWeakOmittedEHFrame = true;
-  SupportsCompactUnwindInfo = false;
 }
 
 TargetLoweringObjectFile::~TargetLoweringObjectFile() {