LLVM: lib/Object/RecordStreamer.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_LIB_OBJECT_RECORDSTREAMER_H
10#define LLVM_LIB_OBJECT_RECORDSTREAMER_H
11
18#include
19
20namespace llvm {
21
24
26public:
29
30private:
33
34
35
37
38
39 State getSymbolState(const MCSymbol *Sym);
40
41 void markDefined(const MCSymbol &Symbol);
43 void markUsed(const MCSymbol &Symbol);
44 void visitUsedSymbol(const MCSymbol &Sym) override;
45
46public:
48
55 Align ByteAlignment) override;
56
57
58
59
65
66
68 bool KeepOriginalSym) override;
69
70
71
73
74
78
79
82};
83
84}
85
86#endif
This file defines the StringMap class.
This file defines the DenseMap class.
This file implements a map that provides insertion order iteration.
Functions, function parameters, and return types can have attributes to indicate how they should be t...
Context object for machine code objects.
Base class for the full range of assembler expressions which are needed for parsing.
Instances of this class represent a uniqued identifier for a section in the current translation unit.
MCStreamer(MCContext &Ctx)
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
This class implements a map that also provides access to all stored values in a deterministic order.
A Module instance is used to store all the information related to an LLVM module.
decltype(SymverAliasMap)::const_iterator const_symver_iterator
Definition RecordStreamer.h:80
void emitZerofill(MCSection *Section, MCSymbol *Symbol, uint64_t Size, Align ByteAlignment, SMLoc Loc=SMLoc()) override
Emit the zerofill section and an optional symbol.
void endCOFFSymbolDef() override
Marks the end of the symbol definition.
Definition RecordStreamer.h:64
bool emitSymbolAttribute(MCSymbol *Symbol, MCSymbolAttr Attribute) override
Add the given Attribute to Symbol.
void emitCommonSymbol(MCSymbol *Symbol, uint64_t Size, Align ByteAlignment) override
Emit a common symbol.
void emitELFSymverDirective(const MCSymbol *OriginalSym, StringRef Name, bool KeepOriginalSym) override
Record .symver aliases for later processing.
State
Definition RecordStreamer.h:27
@ DefinedWeak
Definition RecordStreamer.h:27
@ Used
Definition RecordStreamer.h:27
@ Global
Definition RecordStreamer.h:27
@ UndefinedWeak
Definition RecordStreamer.h:28
@ DefinedGlobal
Definition RecordStreamer.h:27
@ NeverSeen
Definition RecordStreamer.h:27
@ Defined
Definition RecordStreamer.h:27
void emitAssignment(MCSymbol *Symbol, const MCExpr *Value) override
Emit an assignment of Value to Symbol.
iterator_range< const_symver_iterator > symverAliases()
void emitCOFFSymbolStorageClass(int StorageClass) override
Emit the storage class of the symbol.
Definition RecordStreamer.h:62
StringMap< State >::const_iterator const_iterator
Definition RecordStreamer.h:75
void beginCOFFSymbolDef(const MCSymbol *Symbol) override
Start emitting COFF symbol definition.
Definition RecordStreamer.h:61
RecordStreamer(MCContext &Context, const Module &M)
void emitLabel(MCSymbol *Symbol, SMLoc Loc=SMLoc()) override
Emit a label for Symbol into the current section.
void emitSubsectionsViaSymbols() override
Emit a .subsection_via_symbols directive.
Definition RecordStreamer.h:60
void flushSymverDirectives()
void emitCOFFSymbolType(int Type) override
Emit the type of the symbol.
Definition RecordStreamer.h:63
Represents a location in source code.
StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...
StringMapIterBase< ValueTy, true > const_iterator
StringRef - Represent a constant reference to a string, i.e.
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
A range adaptor for a pair of iterators.
This is an optimization pass for GlobalISel generic memory operations.
This struct is a compact representation of a valid (non-zero power of two) alignment.