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.