1f4a2713aSLionel Sambuc //===-- HexagonTargetAsmInfo.h - Hexagon asm properties --------*- C++ -*--===// 2f4a2713aSLionel Sambuc // 3f4a2713aSLionel Sambuc // The LLVM Compiler Infrastructure 4f4a2713aSLionel Sambuc // 5f4a2713aSLionel Sambuc // This file is distributed under the University of Illinois Open Source 6f4a2713aSLionel Sambuc // License. See LICENSE.TXT for details. 7f4a2713aSLionel Sambuc // 8f4a2713aSLionel Sambuc //===----------------------------------------------------------------------===// 9f4a2713aSLionel Sambuc 10*0a6a1f1dSLionel Sambuc #ifndef LLVM_LIB_TARGET_HEXAGON_HEXAGONTARGETOBJECTFILE_H 11*0a6a1f1dSLionel Sambuc #define LLVM_LIB_TARGET_HEXAGON_HEXAGONTARGETOBJECTFILE_H 12f4a2713aSLionel Sambuc 13f4a2713aSLionel Sambuc #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" 14f4a2713aSLionel Sambuc #include "llvm/MC/MCSectionELF.h" 15f4a2713aSLionel Sambuc 16f4a2713aSLionel Sambuc namespace llvm { 17f4a2713aSLionel Sambuc 18f4a2713aSLionel Sambuc class HexagonTargetObjectFile : public TargetLoweringObjectFileELF { 19f4a2713aSLionel Sambuc const MCSectionELF *SmallDataSection; 20f4a2713aSLionel Sambuc const MCSectionELF *SmallBSSSection; 21f4a2713aSLionel Sambuc public: 22*0a6a1f1dSLionel Sambuc void Initialize(MCContext &Ctx, const TargetMachine &TM) override; 23f4a2713aSLionel Sambuc 24f4a2713aSLionel Sambuc /// IsGlobalInSmallSection - Return true if this global address should be 25f4a2713aSLionel Sambuc /// placed into small data/bss section. 26f4a2713aSLionel Sambuc bool IsGlobalInSmallSection(const GlobalValue *GV, 27f4a2713aSLionel Sambuc const TargetMachine &TM, 28f4a2713aSLionel Sambuc SectionKind Kind) const; 29f4a2713aSLionel Sambuc bool IsGlobalInSmallSection(const GlobalValue *GV, 30f4a2713aSLionel Sambuc const TargetMachine &TM) const; 31f4a2713aSLionel Sambuc 32f4a2713aSLionel Sambuc bool IsSmallDataEnabled () const; 33f4a2713aSLionel Sambuc const MCSection *SelectSectionForGlobal(const GlobalValue *GV, 34*0a6a1f1dSLionel Sambuc SectionKind Kind, Mangler &Mang, 35*0a6a1f1dSLionel Sambuc const TargetMachine &TM) const override; 36f4a2713aSLionel Sambuc }; 37f4a2713aSLionel Sambuc 38f4a2713aSLionel Sambuc } // namespace llvm 39f4a2713aSLionel Sambuc 40f4a2713aSLionel Sambuc #endif 41