9#ifndef LLVM_MC_MCELFSTREAMER_H
10#define LLVM_MC_MCELFSTREAMER_H
34 std::unique_ptr<MCObjectWriter> OW,
35 std::unique_ptr<MCCodeEmitter>
Emitter);
58 Align ByteAlignment)
override;
62 bool KeepOriginalSym)
override;
65 Align ByteAlignment)
override;
67 void emitIdent(
StringRef IdentString)
override;
74 void finishImpl() final;
106 bool OverwriteExisting);
108 bool OverwriteExisting);
110 StringRef StringValue,
bool OverwriteExisting);
113 createAttributesSection(Vendor, Section,
Type, AttributeSection,
Contents);
119 createAttributesWithSubsection(AttributeSection, Section,
Type,
124 AttributeItem *getAttributeItem(
unsigned Attribute);
126 void createAttributesSection(
StringRef Vendor,
const Twine &Section,
129 void createAttributesWithSubsection(
140 GNUAttributes.push_back(Item);
146 void finalizeCGProfile();
148 bool SeenIdent =
false;
153 std::unique_ptr<MCObjectWriter> OW,
154 std::unique_ptr<MCCodeEmitter>
Emitter,
bool IsThumb,
dxil DXContainer Global Emitter
This file defines the SmallVector class.
static const uint32_t IV[8]
Functions, function parameters, and return types can have attributes to indicate how they should be t...
Generic interface to target specific assembler backends.
MCCodeEmitter - Generic instruction encoding interface.
Context object for machine code objects.
SmallVector< AttributeItem, 64 > Contents
void emitAttributesSection(StringRef Vendor, const Twine &Section, unsigned Type, MCSection *&AttributeSection)
void setAttributeItems(unsigned Attribute, unsigned IntValue, StringRef StringValue, bool OverwriteExisting)
~MCELFStreamer() override=default
void emitGNUAttribute(unsigned Tag, unsigned Value) override
Emit a .gnu_attribute directive.
void emitAttributesSection(MCSection *&AttributeSection, const Twine &Section, unsigned Type, SmallVector< AttributeSubSection, 64 > &SubSectionVec)
void setAttributeItem(unsigned Attribute, unsigned Value, bool OverwriteExisting)
void reset() override
state management
MCELFStreamer(MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter)
Base class for the full range of assembler expressions which are needed for parsing.
Instances of this class represent a single low-level machine instruction.
void reset() override
state management
MCObjectStreamer(MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter)
Defines the object file and target independent interfaces used by the assembler backend to write nati...
Instances of this class represent a uniqued identifier for a section in the current translation unit.
Generic base class for all target subtargets.
Represent a reference to a symbol from inside an expression.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Represents a location in source code.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Represent a constant reference to a string, i.e.
Target - Wrapper for Target specific information.
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI MCELFStreamer * createARMELFStreamer(MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool IsThumb, bool IsAndroid)
FunctionAddr VTableAddr Count
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.
This struct is a compact representation of a valid (non-zero power of two) alignment.
ELF object attributes section emission support.
AttributeItem(Types Ty, unsigned Tg, unsigned IV, std::string SV)
enum llvm::MCELFStreamer::AttributeItem::Types Type
@ NumericAndTextAttributes
ELF object attributes subsection support.
SmallVector< AttributeItem, 64 > Content