LLVM API Documentation
00001 //=====-- XCoreTargetAsmInfo.h - XCore asm properties ---------*- C++ -*--====// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file contains the declaration of the XCoreTargetAsmInfo class. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef XCORETARGETASMINFO_H 00015 #define XCORETARGETASMINFO_H 00016 00017 #include "llvm/Target/ELFTargetAsmInfo.h" 00018 00019 namespace llvm { 00020 00021 // Forward declarations. 00022 class XCoreTargetMachine; 00023 class XCoreSubtarget; 00024 00025 class XCoreTargetAsmInfo : public ELFTargetAsmInfo { 00026 private: 00027 const XCoreSubtarget *Subtarget; 00028 public: 00029 explicit XCoreTargetAsmInfo(const XCoreTargetMachine &TM); 00030 00031 virtual const Section* SelectSectionForGlobal(const GlobalValue *GV) const; 00032 virtual std::string printSectionFlags(unsigned flags) const; 00033 const Section* MergeableConstSection(const GlobalVariable *GV) const; 00034 inline const Section* MergeableConstSection(const Type *Ty) const; 00035 const Section* MergeableStringSection(const GlobalVariable *GV) const; 00036 virtual const Section* 00037 SelectSectionForMachineConst(const Type *Ty) const; 00038 virtual unsigned 00039 SectionFlagsForGlobal(const GlobalValue *GV = NULL, 00040 const char* name = NULL) const; 00041 }; 00042 00043 } // namespace llvm 00044 00045 #endif