0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 //===-- llvm/Target/MipsTargetObjectFile.h - Mips Object Info ---*- C++ -*-===//
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 //
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 // The LLVM Compiler Infrastructure
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 //
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 // This file is distributed under the University of Illinois Open Source
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 // License. See LICENSE.TXT for details.
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 //
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 //===----------------------------------------------------------------------===//
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9
|
77
|
10 #ifndef LLVM_LIB_TARGET_MIPS_MIPSTARGETOBJECTFILE_H
|
|
11 #define LLVM_LIB_TARGET_MIPS_MIPSTARGETOBJECTFILE_H
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 namespace llvm {
|
95
|
16 class MipsTargetMachine;
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 class MipsTargetObjectFile : public TargetLoweringObjectFileELF {
|
95
|
18 MCSection *SmallDataSection;
|
|
19 MCSection *SmallBSSSection;
|
|
20 const MipsTargetMachine *TM;
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 public:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22
|
77
|
23 void Initialize(MCContext &Ctx, const TargetMachine &TM) override;
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24
|
83
|
25 /// Return true if this global address should be placed into small data/bss
|
|
26 /// section.
|
|
27 bool IsGlobalInSmallSection(const GlobalValue *GV, const TargetMachine &TM,
|
|
28 SectionKind Kind) const;
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 bool IsGlobalInSmallSection(const GlobalValue *GV,
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 const TargetMachine &TM) const;
|
83
|
31 bool IsGlobalInSmallSectionImpl(const GlobalValue *GV,
|
|
32 const TargetMachine &TM) const;
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33
|
95
|
34 MCSection *SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
|
|
35 Mangler &Mang,
|
|
36 const TargetMachine &TM) const override;
|
83
|
37
|
|
38 /// Return true if this constant should be placed into small data section.
|
95
|
39 bool IsConstantInSmallSection(const DataLayout &DL, const Constant *CN,
|
83
|
40 const TargetMachine &TM) const;
|
|
41
|
95
|
42 MCSection *getSectionForConstant(const DataLayout &DL, SectionKind Kind,
|
|
43 const Constant *C) const override;
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 };
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 } // end namespace llvm
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 #endif
|