LLVM API Documentation
00001 //===-- HexagonTargetAsmInfo.h - Hexagon 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 #ifndef LLVM_LIB_TARGET_HEXAGON_HEXAGONTARGETOBJECTFILE_H 00011 #define LLVM_LIB_TARGET_HEXAGON_HEXAGONTARGETOBJECTFILE_H 00012 00013 #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" 00014 #include "llvm/MC/MCSectionELF.h" 00015 00016 namespace llvm { 00017 00018 class HexagonTargetObjectFile : public TargetLoweringObjectFileELF { 00019 const MCSectionELF *SmallDataSection; 00020 const MCSectionELF *SmallBSSSection; 00021 public: 00022 void Initialize(MCContext &Ctx, const TargetMachine &TM) override; 00023 00024 /// IsGlobalInSmallSection - Return true if this global address should be 00025 /// placed into small data/bss section. 00026 bool IsGlobalInSmallSection(const GlobalValue *GV, 00027 const TargetMachine &TM, 00028 SectionKind Kind) const; 00029 bool IsGlobalInSmallSection(const GlobalValue *GV, 00030 const TargetMachine &TM) const; 00031 00032 bool IsSmallDataEnabled () const; 00033 const MCSection *SelectSectionForGlobal(const GlobalValue *GV, 00034 SectionKind Kind, Mangler &Mang, 00035 const TargetMachine &TM) const override; 00036 }; 00037 00038 } // namespace llvm 00039 00040 #endif