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