diff options
| author | 2017-01-14 19:55:43 +0000 | |
|---|---|---|
| committer | 2017-01-14 19:55:43 +0000 | |
| commit | bd3306aecb3a15e8967143b8cdbbccf2b1b19b74 (patch) | |
| tree | 309a8132b44564b9e634c0da6815187ce8eab27c /gnu/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h | |
| parent | killp -a should not kill the window if only one pane. (diff) | |
| download | wireguard-openbsd-bd3306aecb3a15e8967143b8cdbbccf2b1b19b74.tar.xz wireguard-openbsd-bd3306aecb3a15e8967143b8cdbbccf2b1b19b74.zip | |
Import LLVM 3.9.1 including clang and lld.
Diffstat (limited to 'gnu/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h')
| -rw-r--r-- | gnu/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/gnu/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h b/gnu/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h index da0eeeb3fd2..cbc00da88c5 100644 --- a/gnu/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h +++ b/gnu/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h @@ -1,4 +1,4 @@ -//===-- HexagonTargetAsmInfo.h - Hexagon asm properties --------*- C++ -*--===// +//===-- HexagonTargetObjectFile.h -----------------------------------------===// // // The LLVM Compiler Infrastructure // @@ -16,24 +16,31 @@ namespace llvm { class HexagonTargetObjectFile : public TargetLoweringObjectFileELF { - MCSectionELF *SmallDataSection; - MCSectionELF *SmallBSSSection; - public: void Initialize(MCContext &Ctx, const TargetMachine &TM) override; - /// IsGlobalInSmallSection - Return true if this global address should be - /// placed into small data/bss section. - bool IsGlobalInSmallSection(const GlobalValue *GV, - const TargetMachine &TM, - SectionKind Kind) const; - bool IsGlobalInSmallSection(const GlobalValue *GV, - const TargetMachine &TM) const; - - bool IsSmallDataEnabled () const; MCSection *SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, - Mangler &Mang, - const TargetMachine &TM) const override; + Mangler &Mang, const TargetMachine &TM) const override; + + MCSection *getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind, + Mangler &Mang, const TargetMachine &TM) const override; + + bool isGlobalInSmallSection(const GlobalValue *GV, const TargetMachine &TM) + const; + + bool isSmallDataEnabled() const; + + unsigned getSmallDataSize() const; + + private: + MCSectionELF *SmallDataSection; + MCSectionELF *SmallBSSSection; + + unsigned getSmallestAddressableSize(const Type *Ty, const GlobalValue *GV, + const TargetMachine &TM) const; + + MCSection *selectSmallSectionForGlobal(const GlobalValue *GV, + SectionKind Kind, Mangler &Mang, const TargetMachine &TM) const; }; } // namespace llvm |
