//
//===----------------------------------------------------------------------===//
-#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