Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(217)

Side by Side Diff: lib/CodeGen/ELFWriter.h

Issue 4295001: arm-mc-elf-s07-tew (Closed)
Patch Set: Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/llvm/Target/TargetELFWriterInfo.h ('k') | lib/CodeGen/ELFWriter.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===-- ELFWriter.h - Target-independent ELF writer support -----*- C++ -*-===// 1 //===-- ELFWriter.h - Target-independent ELF writer support -----*- C++ -*-===//
2 // 2 //
3 // The LLVM Compiler Infrastructure 3 // The LLVM Compiler Infrastructure
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file defines the ELFWriter class. 10 // This file defines the ELFWriter class.
(...skipping 17 matching lines...) Expand all
28 class ELFSection; 28 class ELFSection;
29 struct ELFSym; 29 struct ELFSym;
30 class GlobalVariable; 30 class GlobalVariable;
31 class JITDebugRegisterer; 31 class JITDebugRegisterer;
32 class Mangler; 32 class Mangler;
33 class MachineCodeEmitter; 33 class MachineCodeEmitter;
34 class MachineConstantPoolEntry; 34 class MachineConstantPoolEntry;
35 class ObjectCodeEmitter; 35 class ObjectCodeEmitter;
36 class MCAsmInfo; 36 class MCAsmInfo;
37 class TargetELFWriterInfo; 37 class TargetELFWriterInfo;
38 class TargetELFRelocHelper;
38 class TargetLoweringObjectFile; 39 class TargetLoweringObjectFile;
39 class raw_ostream; 40 class raw_ostream;
40 class SectionKind; 41 class SectionKind;
41 class MCContext; 42 class MCContext;
42 class TargetMachine; 43 class TargetMachine;
43 44
44 typedef std::vector<ELFSym*>::iterator ELFSymIter; 45 typedef std::vector<ELFSym*>::iterator ELFSymIter;
45 typedef std::vector<ELFSection*>::iterator ELFSectionIter; 46 typedef std::vector<ELFSection*>::iterator ELFSectionIter;
46 typedef SetVector<const GlobalValue*>::const_iterator PendingGblsIter; 47 typedef SetVector<const GlobalValue*>::const_iterator PendingGblsIter;
47 typedef SetVector<const char *>::const_iterator PendingExtsIter; 48 typedef SetVector<const char *>::const_iterator PendingExtsIter;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 ELFCodeEmitter *ElfCE; 87 ELFCodeEmitter *ElfCE;
87 88
88 /// TLOF - Target Lowering Object File, provide section names for globals 89 /// TLOF - Target Lowering Object File, provide section names for globals
89 /// and other object file specific stuff 90 /// and other object file specific stuff
90 const TargetLoweringObjectFile &TLOF; 91 const TargetLoweringObjectFile &TLOF;
91 92
92 /// MAI - Target Asm Info, provide information about section names for 93 /// MAI - Target Asm Info, provide information about section names for
93 /// globals and other target specific stuff. 94 /// globals and other target specific stuff.
94 const MCAsmInfo *MAI; 95 const MCAsmInfo *MAI;
95 96
97 /// TERH - Target ELF Relocation Helper - used to emit
98 /// nontrivial in-line arch-specific relocations.
99 TargetELFRelocHelper *TERH;
100
96 //===------------------------------------------------------------------===// 101 //===------------------------------------------------------------------===//
97 // Properties inferred automatically from the target machine. 102 // Properties inferred automatically from the target machine.
98 //===------------------------------------------------------------------===// 103 //===------------------------------------------------------------------===//
99 104
100 /// is64Bit/isLittleEndian - This information is inferred from the target 105 /// is64Bit/isLittleEndian - This information is inferred from the target
101 /// machine directly, indicating whether to emit a 32- or 64-bit ELF file. 106 /// machine directly, indicating whether to emit a 32- or 64-bit ELF file.
102 bool is64Bit, isLittleEndian; 107 bool is64Bit, isLittleEndian;
103 108
104 /// doInitialization - Emit the file header and all of the global variables 109 /// doInitialization - Emit the file header and all of the global variables
105 /// for the module to the ELF file. 110 /// for the module to the ELF file.
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 void EmitXXStructorList(Constant *List, ELFSection &Xtor); 240 void EmitXXStructorList(Constant *List, ELFSection &Xtor);
236 void EmitRelocations(); 241 void EmitRelocations();
237 void EmitRelocation(BinaryObject &RelSec, ELFRelocation &Rel, bool HasRelA); 242 void EmitRelocation(BinaryObject &RelSec, ELFRelocation &Rel, bool HasRelA);
238 void EmitSectionHeader(BinaryObject &SHdrTab, const ELFSection &SHdr); 243 void EmitSectionHeader(BinaryObject &SHdrTab, const ELFSection &SHdr);
239 void EmitSectionTableStringTable(); 244 void EmitSectionTableStringTable();
240 void EmitSymbol(BinaryObject &SymbolTable, ELFSym &Sym); 245 void EmitSymbol(BinaryObject &SymbolTable, ELFSym &Sym);
241 void EmitSymbolTable(); 246 void EmitSymbolTable();
242 void EmitStringTable(const std::string &ModuleName); 247 void EmitStringTable(const std::string &ModuleName);
243 void OutputSectionsAndSectionTable(); 248 void OutputSectionsAndSectionTable();
244 void RelocateField(BinaryObject &BO, uint32_t Offset, int64_t Value, 249 void RelocateField(BinaryObject &BO, uint32_t Offset, int64_t Value,
245 unsigned Size); 250 unsigned Size, const MachineRelocation &MR);
246 unsigned SortSymbols(); 251 unsigned SortSymbols();
247 CstExprResTy ResolveConstantExpr(const Constant *CV); 252 CstExprResTy ResolveConstantExpr(const Constant *CV);
248 }; 253 };
249 } 254 }
250 255
251 #endif 256 #endif
OLDNEW
« no previous file with comments | « include/llvm/Target/TargetELFWriterInfo.h ('k') | lib/CodeGen/ELFWriter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698