1 //===---- DarwinTargetAsmInfo.h - Darwin asm properties ---------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines target asm properties related what form asm statements
11 // should take in general on Darwin-based targets
13 //===----------------------------------------------------------------------===//
15 #ifndef LLVM_DARWIN_TARGET_ASM_INFO_H
16 #define LLVM_DARWIN_TARGET_ASM_INFO_H
18 #include "llvm/Target/TargetAsmInfo.h"
26 struct DarwinTargetAsmInfo : public TargetAsmInfo {
27 const Section* TextCoalSection;
28 const Section* ConstTextCoalSection;
29 const Section* ConstDataCoalSection;
30 const Section* ConstDataSection;
31 const Section* DataCoalSection;
32 const Section* FourByteConstantSection;
33 const Section* EightByteConstantSection;
34 const Section* SixteenByteConstantSection;
36 explicit DarwinTargetAsmInfo(const TargetMachine &TM);
37 virtual const Section* SelectSectionForGlobal(const GlobalValue *GV) const;
38 virtual std::string UniqueSectionForGlobal(const GlobalValue* GV,
39 SectionKind::Kind kind) const;
40 virtual bool emitUsedDirectiveFor(const GlobalValue *GV,
42 const Section* MergeableConstSection(const GlobalVariable *GV) const;
43 const Section* MergeableConstSection(const Type *Ty) const;
44 const Section* MergeableStringSection(const GlobalVariable *GV) const;
45 const Section* SelectSectionForMachineConst(const Type *Ty) const;
50 #endif // LLVM_DARWIN_TARGET_ASM_INFO_H