introduce a new RoundUpAlignment helper function, use it to
[oota-llvm.git] / include / llvm / Target / DarwinTargetAsmInfo.h
index 769273d618566726964008edd3f46b082ca6780f..5813ce35057076bc1525f882cc9505e4f296982e 100644 (file)
@@ -12,8 +12,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_ELF_TARGET_ASM_INFO_H
-#define LLVM_ELF_TARGET_ASM_INFO_H
+#ifndef LLVM_DARWIN_TARGET_ASM_INFO_H
+#define LLVM_DARWIN_TARGET_ASM_INFO_H
 
 #include "llvm/Target/TargetAsmInfo.h"
 #include "llvm/Target/TargetMachine.h"
 namespace llvm {
   class GlobalValue;
   class GlobalVariable;
+  class Type;
+  class Mangler;
 
-  class DarwinTargetAsmInfo: public TargetAsmInfo {
+  struct DarwinTargetAsmInfo: public TargetAsmInfo {
     const Section* TextCoalSection;
+    const Section* ConstTextCoalSection;
     const Section* ConstDataCoalSection;
     const Section* ConstDataSection;
     const Section* DataCoalSection;
+    const Section* FourByteConstantSection;
+    const Section* EightByteConstantSection;
+    const Section* SixteenByteConstantSection;
 
     explicit DarwinTargetAsmInfo(const TargetMachine &TM);
     virtual const Section* SelectSectionForGlobal(const GlobalValue *GV) const;
     virtual std::string UniqueSectionForGlobal(const GlobalValue* GV,
                                                SectionKind::Kind kind) const;
+    virtual bool emitUsedDirectiveFor(const GlobalValue *GV,
+                                      Mangler *Mang) const;
     const Section* MergeableConstSection(const GlobalVariable *GV) const;
+    const Section* MergeableConstSection(const Type *Ty) const;
     const Section* MergeableStringSection(const GlobalVariable *GV) const;
-  protected:
-    const TargetMachine* ETM;
+    const Section* SelectSectionForMachineConst(const Type *Ty) const;
   };
 }
 
 
-#endif // LLVM_ELF_TARGET_ASM_INFO_H
+#endif // LLVM_DARWIN_TARGET_ASM_INFO_H